Skip to content
Pawel Slusarz edited this page Sep 26, 2015 · 115 revisions

This wiki page is for suggestions for Strange Loop 2015 "Unsessions". We work hard at Strange Loop to put on a great program but sometimes there are topics that just don't make it to the schedule. During the conference we'll have several rooms reserved for sessions planned by YOU.

  • When: Friday Sept 25th, 7-10 pm (in 60 min slots)
  • Where: Union Station DoubleTree
  • Equipment: A projector will be available in each of the provided rooms. You supply the brainssss.

Unsessions have been scheduled. If you would like to add an additional unsession, please add your proposal to the end of the page and contact info@thestrangeloop.com.

Unsession proposals

### Q&A: Transitioning from JS to Elm in Production
  • Scheduled: IL Central, 7 pm

  • Hosted by: Richard Feldman

  • Description: We've been using the Elm programming language in production for months at NoRedInk. Students answer millions of questions per day on our site, and when we introduced Elm our team had only one experienced functional programmer, yet we managed to gently incorporate it to our code base and reap the benefits of its phenomenal design.

    If that sounds good to you, but you have questions about how your team could do the same, or if the Saturday talk piqued your interest and you'd like to know more, or even if you're just wondering what it's like to use a pure functional programming language with immutability everywhere, no side effects anywhere, and 100% type inference in a large-scale production setting...then by all means, please drop in!

    This unsession will be all about answering your specific questions in as much depth as possible.

  • Interest: @robertjlooby @kai3x5 @seancorfield @NewDocument2 @queertypes @ajhager @DarrenN @ggarnier @honkfestival @elowing

### Continuous Delivery and Dependency Management walk into a bar...
  • Scheduled: IL Central, 8 pm
  • Hosted by: @pslusarz
  • Slides: google doc
  • Description: This talk comes from my personal frustration with Continuous Delivery book's superficial treatment of dependency management and the fact that 5 years later no tool exists which would allow us to manage continuous integration (and delivery) of software dependencies. As soon as we allow modules (or services) into our architecture, they form dependency graphs, and propagating breaking and non-breaking changes in those graphs is a difficult problem. A few months ago I sat down to write a dependency integrator for my company's jars (Java's binary libraries), thinking I'd be done in a week. It did not happen, but I learned a few things. If your dependency graph looks like this, you may want to partake in this sharing of practical (and theoretical) advice on how to manage it.

Real world dependencies

Need more? Here's some code and a couple of blog posts: 1, 2.

  • Interest: @MichaelDrogalis @glenjamin @benschumacher @ggarnier @manderson202 @rcasto @duncanmak @seancorfield @brentvukmer @elowing @coasting
### History and Philosophy of Types
  • Scheduled: NY Central, 8 pm

  • Hosted by: Tomas Petricek (@tomaspetricek)

  • Description: What are types? We can try to answer this question with a formal definition. But there are numerous incompatible definitions and they fail to capture important aspects of what types actually are - how are they used in practice, how we talk about them and how we think about them. Why we often cannot even find a common language when talking about types?

    To think about these questions, we need to step outside of the neat world of mathematics. My proposal is to seek the bigger picture through history and philosophy of science. I'll introduce the history of types and explore how different people in different times thought about types over the last 100 years. Then, I'm going to discuss a number of theories from philosophy of science that explain some of the interesting historical developments, incompatibilities and changes in meaning.

    Expect a (hopefully!) lively discussion involving the most famous works on types in mathematics and computer science (including Bertrand Russell's "Principia Mathematica" and Alonzo Church's simple theory of types), but also amazing ideas from philosophy (like Imre Lakatos's theory of research programmes and Paul Feyerabend's epistemological anarchism).

    Looking at philosophy of science also helps us understand why there are so many misunderstandings and why answering the question "what are types?" is difficult. It turns out that this is normal and even necessary thing in science. In fact, as historical evidence suggests, having a clear and precise formal definitions can "hamper the growth of knowledge" (Lakatos) and "deflect the course of investigation into narrow channels of things already understood" (Feyerabend).

    (This unsession proposal is partly based on my two essays - Against the definition of 'type' and What can programming language research learn from the philosophy of science?; I would like to share some my initial thoughts on the topic and leave plenty of time for discussion.)

  • Interest: @rachelreese @dyokomizo @queertypes @geoffjentry @MikeMKH @hypotext @marcsaegesser @honkfestival @chris_saunders @manderson202 @duncanmak @coasting @fogus @brentvukmer @mariusbutuc

### Building Large Systems with Go
  • Scheduled: IL Central, 9 pm

  • Hosted by: Mark Mandel

  • Description: Go has exploded in its usage across companies as well as open source projects. We’re seeing it being used actively by Docker, Dropbox, CoreOS, CloudFlare, SendGrid and of course Google. It clearly has a place for building large scale, distributed systems.

    That being said, it is such a relatively new language, that not many core best practices have managed to permeate the Go ecosystem and it can be challenging to work out the “best way” to develop your next large (or even small) scale application in Go.

    To get things started, we’ll spend part of the session discussing successful techniques for building large scale distributed Go applications that I’ve personally found successful as well as those that can be found in the wild. The other part will be open to questions and discussion of approaches that other people wish to share with the room.

    Bring your experiences and opinions on what has worked for you, and what hasn’t, including:

    • Build Tools / Dependency Management (gb, wgo, godep, etc)
    • Communication mechanisms (json, protobuf, gob)
    • Application architectures (microservices vs monoliths)
    • Libs and Frameworks (Revel, Gorilla, Gin, Negroni, etc)
    • Hosting/Platforms (Cloud Platforms, Iaas vs Paas, Docker, etc)
    • Go core features (Interfaces, net.Context, net/http)
    • Code Organisation (few packages or many etc)

    Plenty of time for group deliberation and debate will be provided!

  • Interest: @ggarnier @seancorfield @mariusbutuc

### Live interactive coding Q & A
  • Scheduled: Jeffersonian, 8 pm
  • Hosted by: Bruce Hauman
  • Description: This session will be a follow up to my "Literate interactive coding: Devcards" session.

Figwheel is a tool that I've written to eliminate the "reload" and "state manipulation" part of the "code", "reload", "manipulate state", and "verify" coding workflow that dominates web development today.

Hot reloading greatly increases feedback and flow while developing web UIs. This is an absolutely necessary next step for developing in the browser. This can be done today and is being done by many ClojureScript developers who use Figwheel and/or the ClojureScript REPL.

But what comes next? There is still a glaring source of friction that hasn't been addressed. We all develop inside the environment of the main application. This is amazingly constraining. How likely are we to express our ideas when we are inside a house of cards?

The session will start with an example of live interactive coding and how it is done with Figwheel and Devcards. After that I plan to open up to questions from the room.

  • Interest: @chance_russell_, @hby, @tcrawley, @duncanmak, @gigasquid, @brentvukmer, @nodename
### Building Better Substrates for Computing
  • Scheduled: Jeffersonian, 7 pm

  • Hosted by: Daniel Yokomizo

  • Description: A series of short presentations (5 min) and an open discussion on what are we thinking about when we ponder on how the current computing experience can be improved. Please add your presentation title/description below.

    • Programming the 2030 Computer, @dyokomizo
    • Information-Centric Computing, @briantrice (data management and analytics/viz background)
    • Programmable Notations, @briantrice (intro to @vito's Atomy)
    • Computing Systems, not Computer Programs, @fare (thinking dynamically)
    • Computing with continuous functions instead of numbers, @jrus
  • Interest: @duncanmak @briantrice

### CAP is broken, and it's time to replace it
  • Scheduled: NY Central, 9 pm
  • Hosted by: Martin Kleppmann
  • Paper:A Critique of the CAP Theorem”, arXiv:1509.05393 [cs.DC]
  • Description: The CAP Theorem, as proposed by Brewer and formalized by Gilbert and Lynch, has been subject of much debate and confusion over the last few years. The confusion arises partly from the definitions of “consistency,” “availability” and “partition tolerance,” which are not as intuitive or precise as one might hope, and which are therefore prone to being misinterpreted. I will also argue that there are some formal problems with Gilbert and Lynch's proof which weaken the result. With so many problems, it is becoming doubtful whether CAP is still useful for reasoning about systems.
  • The trade-off between consistency guarantees and tolerance of network faults is real, but we need better tools for reasoning about these trade-offs. In this session I will show some formal results from distributed systems theory that I have found useful: they focus the discussion on latency (which has been described as the “missing piece of the CAP theorem”). We'll then open up for discussion, and hopefully together we can work towards replacing CAP with something better: something more precise, more intuitive, and more relevant to practice.
  • Interest: @duncanmak @_utanapishtim @tyler_treat @seantallen @codeslinger @dyokomizo @gigasquid @tetriscode @mrallen1 @hpgrahsl @brentvukmer @stephenpiment @coasting @jaykreps
### Artificial Evolution in Clojure
  • Scheduled: Jeffersonian, 9 pm
  • Hosted by: Alan Shaw
  • Description: Demonstration of the Clevolution app and how it uses the underlying Clisk DSL, and how I've just scratched the surface of the principles that can be used to produce cool images.

The primary reference I use is Karl Sims' 1991 SIGGRAPH paper Artificial Evolution for Computer Graphics, where he presents work on images, animations, etc., realized at Thinking Machines Corporation on the Connection Machine.

I would like to discuss directions for improving and extending the work. Hope to attract anyone who's done FP generative art.There are domains I'd love to explore, such as mathematical creatures, and who knows what else.

Also follow @tweegeemee on Twitter!

  • Interest: @cgore
### The State of Modern Common Lisp
  • Scheduled: Frisco/Burlington, 7 pm
  • Hosted by: Chris Carpenter
  • Description: Very informal discussion about the current state of the Common Lisp language and how it holds up against modern Lisps like Clojure and other modern languages such as Ruby, Python, Haskell, and Erlang.

I plan on this being very audience participation heavy as I am far from a Common Lisp expert, but I will be prepared with some statistics and my own perspective as someone currently learning the language.

I imagine a large part of this discussion will be the state of the community and hiring.

  • Interest: @kaarchie, @cgore, @briantrice, @statonjr, @king_cons
### An introduction to Java 8 Lambdas and Streams
  • Scheduled: New York Central, 7 pm
  • Hosted by: Jeff Gardner
  • Description: An introduction to two new language features in Java 8, lambdas ands streams. I will provide an overview of the new features along with some background on how you can leverage them as a developer.

The discussion will also examine some of the design decisions made to bring functional programming paradigms to the object-oriented Java language.

  • Interest:
### Swift 2 Q&A
  • Proposed: Frisco/Burlington, 9 pm

  • Hosted by: Marc Prud'hommeaux

  • Description: A free-form Q&A and demo of Apple's Swift language, version 2 of which was released just last week. The session will be driven by user questions, and there will be plenty of live coding using Xcode Playgrounds. Object-oriented, functional, and imperative programmers are all welcome!

  • Interest:

Clone this wiki locally