Previous Meetings
(def shef 1)
12th November - 6:30pm - Electric Works
To kick things off we'll be doing some introductions, and then launching into a round-table discussion on "What's good about functional programming". We may even talk about some bad things too!
We'll also be dicussing future plans for the group, so if you've got any great ideas - bring them along.
(def shef 2)
10th December - 6:30pm - Electric Works
This month we'll be running a practical session, solving some sample
problems using lists, recursion and traditional functional approaches.
The problems will be suitable for newcomers to functional programming,
but we'll also have some slightly trickier problems for those of you with
a bit more experience.
The problems are available here
(def shef 3)
14th January - 6:30pm - Electric Works
This month we'll be looking through some of the solutions to last month's
problems, and planning out some sessions for the months ahead.
Some sample solutions are available on GitHub
(def shef 4)
C# is a functional language. No, really.
11th February - 6:30pm - Electric Works
This month John Stovin will be
talking to us about LINQ in C# and also giving us a little flavour of F#.
(def shef 5)
XMonad
11th March - 6:30pm - Electric Works
This month Lewis Cowper is
going to tell us all about XMonad - the Haskell based window manager.
(def shef 6)
Parallelism and Concurrency in Haskell
13th May - 6:30pm - Electric Works
You can never have too much Haskell, so this month we have
Andrei Pambuccian talking
to us about parallelism and concurrency.
Haskell features certain approaches to paralellism and concurrency that are specific to functional programming languages, enabling the programmer to quickly switch between sequential and parallel code. The presentation will explore parallel programming via the built-in monad Eval, the Strategy type and the monad Par, each of whom has its own trade-offs in terms of performance, maintainability and ease of implementation, then go into threading via Concurrent Haskell and finally describe the Haskell bindings for OpenCL. Sample code and performance statistics will be available for each of the methods described.
(def shef 7)
An introduction to the Rust programming language
10th June - 6:30pm - Electric Works
Something a bit different this month, we have
Dave King talking to us about
something not entirely functional programming, but interesting and relevant
regardless.
Mozilla Research are building an experimental web browser named
Servo.
While experienced with large C and C++ codebases they have avoided these languages for Servo.
Instead developing it in Rust,
a relatively new language also from Mozilla Research.
Rust is a systems level language with a focus on being a "safe, concurrent, practical language". Many features of Rust are drawn from the functional programming world such as algebraic data types and type inference.
Other features include:
- pattern matching
- closures
- zero-cost abstractions
- guaranteed memory safety
- optional garbage collection
- concurrency without data races
- minimal runtime
- efficient C bindings
(def shef 8)
Scala gives you Option[S]
8th July - 6:30pm - Electric Works
This month Ian Murray is going
to be giving a brief introduction to Scala, including it's approach to
mixing OO- and FP-like language features. Scala encourages, but
does not enforce, use of several aspects from functional
programming. By being able to express different styles of programming,
Scala is able to offer developers new to FP a more gradual learning curve,
while still offering the purer functional programmer plenty to
chew on.
Scala is a strongly- and
statically-typed functional programming language that runs on the JVM, but
also provides object-like features to try and provide the user with the
best of both worlds.
(def shef 9)
A Summer Social
12th August - 6:30pm - Rutland Arms
There's no official speaker this month, instead we'll be making the most of
the British summer by hanging out in a beer garden. There'll still be plenty
of functional chatter, and we'll be back with a proper talk in September.
(def shef 10)
Channels in Go
9th September - 6:30pm - Electric Works
This month Luke Roberts will be
telling us all about Go's channels, and the benefits that they bring.
Channels are an abstraction around asynchronous message passing that can
make code that deals with concurrency much easier to reason about.
(def shef 11)
Strange Loop Movie Night
14th October - 6:30pm - Electric Works
Strangeloop is an awesome
conference that features, among many other topics, lots of great practical
and theoretical talks about Functional Programming. It was held on the 18th
and 19th of September, and lucky for us they're publishing the recordings of
every single talk already!
We ended up watching and dsicussing the following two talks:
You can see the other available videos on the
Strange Loop YouTube Channel and the full list of all sessions is on
the main strangeloop website.
(def shef 12)
Straightforward UIs with ClojureScript
11th November - 6:30pm - Electric Works
Entry to the Electric Works will be around the back after 5:30pm, head up
the stairs by the car park entrance and follow the building around to your
right.
This month I'll be doing a bit
of a practical session.
ClojureScript is a variant of
Clojure that runs compiles down to javascript and runs in the browser.
Being a lisp that promotes immutable datastructures, it enables some
really powerful approaches to building clean and simple user interfaces.
We'll be making use of some fancy live-reloading tools and judicious
separation of state and behaviour in order to build up a functional user
interface. For simplicity we'll be implementing TodoMVC.
Don't worry if you're not really a frontend person,
we'll make sure there's plenty of sample code so you can focus on the
important bits.
To assist with setup and save time on the night, please ensure you have
Java JRE 7 or 8 installed, as well as leiningen.
The code for this workshop can be found at
the github repo.
(def shef 13)
Interesting features of Scheme
13th January - 6:30pm - Electric Works
Entry to the Electric Works will be around the back after 5:30pm, head up
the stairs by the car park entrance and follow the building around to your
right.
This month, in a continuation of our unofficial "Neat things in language
X" series, Caolan will be talking
to us about some of the more interesting features of
Scheme.
The example code shown is going to be in
Chicken Scheme, so feel free to
brush up a little bit beforehand.
(def shef 14)
Rich Hickey's Greatest Hits
10th February - 6:30pm - Union St
Note that this month we have a new larger venue! We'll gather in the
lobby from about 6:15 before heading upstairs once people arrive.
After the success of the last movie night, we return with another:
Rich Hickey, creator of Clojure is well known for his very well laid out
and generally excellent technical talks.
We'll be selecting from the handily prepared Rich Hickey's
Greatest Hits. Be prepared to hear about how we can simplify what
we're doing to build software, and how to spend more time thinking. There
might be some mention of Functional Programming and Lisps in there too.
(def shef 15)
No Talk in March
10th March - 6:30pm - Sheffield Tap
No talk this month, but there will be an informal social gathering in the
Sheffield Tap with a drink or two and the usual functional programming
chit-chat.
(def shef 16)
A taste of Erlang
14th April - 6:30pm - Union St
Another entry for our "Neat things in language X" series,
James Wheare will be introducing
us to the weird and wonderful world of
Erlang. There may even be a guest
appearance of Erlang: The Movie.
(def shef 17)
The Magic of Hot Code Reloading
12th May - 6:30pm - Union St
Glen Mailer will be showing off a bit of hot reloading magic.
- Edit file.
- Save file.
- Compile code.
- Reload browser.
- Click around and interact with the page.
- Somehow get back to the exact same state.
- Check result.
- Not quite right.
- Go back to step 1, do not pass go, do not collect £200.
Interpreted languages, fast compile times & fast test suites are great
at reducing the feedback cycle, but those aren't the only areas where
feedback is important.
What if you could edit your code and see the effects immediately?
Going from step 1 to step 7 in the scenario above without having to do
anything in between. How would having that sort of instant feedback affect
the way you work?
I'll show how this can be achieved in a few different common (and
uncommon) programming languages, and what sort of concessions (if any) you
have to make in your code to make it work.
This isn't just a crazy fringe idea: it's been around in some form or
another for ages, and it's something we can and should be using right now.
(def shef 18)
An introduction to F# by way of turtles
9th June - 6:30pm - Union St
F# is a statically-typed, open source, functional-first language on the CLR which combines
functional idioms such as immutability and
pattern matching with advanced features like type providers and asynchronous workflows, while remaining accessible to the
less functionally-inclined by including a healthy dose of OO and everything that comes with the .net ecosystem.
In this session, Grant Crofton will be showing everyone how awesome it
is by using it to write a simple Logo interpreter,
commonly used to draw stuff with Turtles. This may or may not include any live coding, depending on how much he wants the audience to suffer..
(def shef 19)
The ClojureScript Experience
14th July - 6:30pm - Union St
We haven't had a practical session for a while, and as there was quite a small turnout to (def shef 12), I've decided to re-use the exercise from that one again.
We'll be working on a small TodoMVC implementation written using Reagent and ClojureScript. No previous knowledge is required, but it will help if you have Leiningen installed before you arrive.
The guide for the workshop is available on github
(def shef 20)
Graph Databases and Markov Chains for AI
(without much I)
8th September - 6:30pm - Union St
This month we'll be hearing from
Gary Martin:
When we look to start a new programming project, we often take the tools we
already know for granted and reach for the tools that we know. This is as true
for databases as it is for programming languages. In this talk we are going to
look at using a graph database as an appropriate storage model for Markov chains
and conversation simulation.
(def shef 21)
PureScript and functional programming on the web.
13th October - 6:30pm - Union St
Becky Conning will be getting us excited about PureScript and functional programming on the web.
Becky has used Javascript for everything for quite a while and over time has found the approaches and technologies that were helping her the most have their roots in functional programming. Today she works for SlamData writing web application tests and features using PureScript every day.
Purescript is written in and inspired by Haskell. Luckily for us web developers, Purescript modules compile to CommonJS modules making it surprisingly easy to interface between Javascript and Purescript in both directions.
There are also versions of Purescript in development that compile to Python and C++.
Becky will be sharing her excitement about the possibilities of functional programming for application development with you and we’ll building a small application to help get you motivated.
So whether you’re a Javascript developer, a seasoned functional programmer or just interested in applications come on down and get excited about Purescript and functional programming for applications!
(def shef 22)
Strangeloop Movie Night
10th November - 6:30pm - Union St
It's that time of year again!
Strangeloop is an awesome
conference that features, among many other topics, lots of great practical
and theoretical talks about Functional Programming. I was lucky enough to
attend, and they've published the recordings of every single talk already,
so we all get to benefit without the crippling cost of international
airfare.
I'll be picking out a shortlist of the best, we'll select which talk or
talks to watch on the night, so if you have any suggestions let me know on
twitter or just bring it up when you arrive.
You can see the videos on the
Strange Loop 2015 YouTube Playlist and the full list of all sessions
is on
the main strangeloop website.
(def shef 23)
Happy New Year
12th January - 6:30pm - Union St
This month we're just doing a little get together to kick off the new year,
and find out what people would like to hear about in the forthcoming months.
Please drop by and get involved!
(def shef 24)
From techno to textiles: live coding pattern in Haskell
9th February - 6:30pm - Union St
This month Alex McLean will be talking to us
about music, in his own words:
I've been writing code to make music since around the year 2000, at first in
Perl but more recently in Haskell, in
particular developing the free/open source Tidal environment since around 2010. Tidal
represents musical pattern as pure functions from time to events, providing
an expressive language for sequencing, combining and transforming patterns.
I've performed widely with Tidal in a range of collaborations, including as
part of the Algorave movement that I co-founded.
In this talk I'll demonstrate Tidal, go through the way that pattern is
represented and try to unearth how pure functional programming has made it
possible. I'll try to make it interesting for people new to programming and
functional programming, as well as the more experienced. If there's time and
interest I can also talk about related research I'm involved with in
representing the structure of textiles in a similar manner.
(def shef 25)
Not a proper meetup
8th March - 6:30pm - Rutland Arms
This month no-one is available to organise a proper meetup, so instead we'll just head to the Rutland Arms for some functional programming chatter.
We'll be back in April with something practical to whet your appetites.
(def shef 26)
Something practical
12th April - 6:30pm - Union St
This month we'll be working on something practical you can sink your teeth into and get a flavour of somewhat-real-world functional programming.
The plan is to take a task that we'd normally think of as something that fits object oriented programming very well, and see how to approach it with our functional hats on.
The format will be small groups split by choice of language, so hopefully there should be something to interest everyone. I can guarantee some Clojure, for anything else it'll depend who shows up. Bring your laptops!
(def shef 27)
Follow-up to our practical
10th May - 6:30pm - Union St
This month we'll be sharing our experiences and code from the various solutions and approaches people took last month.
The practical session we did was on Blackjack, and the variety of approaches and languages people took was impressive.
(def shef 28)
A practical guide to creating UI apps in F#
14th June - 6:30pm - Union St
This month we've got Ben Robinson giving us a talk:
Traditionally when creating UI apps we end up having maintain lots of mutating (and fragile) state. So we will creating a simple desktop application from the ground up using using a Functional Reactive Programming style (and judiciously borrowing ideas ideas from modern frameworks like React/Flux) that is declarative and easy to understand.
(def shef 29)
Try Elm Yourselves
12th July - 6:30pm - Union St
This month will be a practical session, so bring your laptops! We'll be exploring Elm - a strongly typed functional programming language that targets the browser and focuses on being accessible to newcomers.
(def shef 30)
The Never Changing Face of Immutability
9th August - 6:30pm - Union St
This month we have an out-of-towner coming in to talk, Chris Howe-Jones.
This talk should be a great introduction to functional and immutable thinking, so please do bring your mutable-OO friends along too! Chris doesn't want to give too much away, but he did have this to say:
This talk explores the changes in technology over time and how this has led to a rise in a different way of managing state within applications.
(def shef 31)
Strangeloop 2016 Movie Night
11th October - 6:30pm - Union St
It's that time of year again!
Strangeloop is an awesome
conference that features, among many other topics, lots of great practical
and theoretical talks about Functional Programming. I was lucky enough to
attend, and they've published the recordings of the talks already,
so we all get to benefit without the crippling cost of international
airfare.
I'll be picking out a shortlist of the best, we'll select which talk or
talks to watch on the night, so if you have any suggestions let me know on
twitter or just bring it up when you arrive.
You can see the list of videos on the
Strange Loop 2016 YouTube Playlist and the full list of all sessions
is on
the main strangeloop website.