Pre-West Interview: Tom Faulhaber

April 18, 2015

This interview was graciously conducted by Nola Stowe. She's a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!

Introduction

Tom Faulhaber is the next interview participant. He is giving a talk at Clojure/West about using Clojure to create Excel spreadsheets. The background to his talk is available, if you like.

Interview with Tom Faulhaber

Nola: How did you get into Clojure?

Tom: Rich Hickey did a talk called “Clojure for Lisp Programmers.” I bookmarked that talk but avoided it because I was scared of it. The idea seemed too interesting and I was afraid I’d get sucked in.

But over Thanksgiving weekend 2009, I had some time and I watched the video. I was sucked in and I’ve been an active member of the Clojure community ever since.

Nola: What other languages did you do before?

Tom: I’ve done them all. I’m a creature of the dark ages so I started with Basic, Cobol, Fortran and early Lisps. In the early part of my career, I worked on operating systems, data bases, and networking. This was all C and later C++. Nowadays, I do primarily Clojure and R along with some Python and Scala. One of the things I’ve learned is that there’s no silver bullet language: a clear understanding of of goals and good communication trump language choice every time.

Nola: What do you like best about Clojure?

Tom: I love Clojure, the language, but what I like even better is Clojure, the community. From the very beginning, Rich has worked hard to make sure it was a community of people that was positive towards each other.

Since then, more people have taken up the mantle of making Clojure more inclusive with initiatives like ClojureBridge and diversity scholarships. In addition to the folks using their own energy to make this happen, I have been very happy with the overall supportive tone in the community with respect to these efforts.

Like all tech communities, we clearly have a long way to go, but it’s hard not to be pleased that the community is receptive to these goals and always looking for ways to be better.

Nola: What advice do you give new clojure developers?

Tom: This would be my advice for anyone learning a new language: human or computer. Take the language on its own terms and don’t try to enforce your own previous assumptions on it. For example, in Spanish the adjective usually comes after the noun. This causes a reaction in English speakers, who often think that Spanish gets it “wrong.” That’s not a productive approach to embracing the language (and, in fact, one reason to learn foreign languages is to experience those differences and thereby gain perspective).

In the case of Clojure, parenthesis, prefix notation, and lack of built-in typing come to the top of that list. When you’re learning Clojure, try really hard not to have negative opinions about these things. Accept what the experienced folks say is “best.” Later when you’re more familiar with the language, you’ll probably agree with the experts. But even if you don’t, it won’t be because you let yourself be blinded by where you came from.

Having said all that: Do use paredit. It makes dealing with the parentheses fade into the background and is available in most dev environments now.

Nola: What does your tooling look like? emacs or vim or ?

Tom: I’m an emacs user from way back. I’ve been very thankful for the work that Bozhidar Batsov, Phil Hagelberg and others have done over the years to make the Emacs Clojure environment so nice.

Nola: Your talk is about creating spreadsheets in Excel, have you spent alot of time creating spreadsheets in other languages? what benefits do you get over using clojure?

Tom: Yeah, a friend told me recently that I’ve been obsessed with Excel for a long time. I have used Excel natively and Excel from .Net (mostly through IronPython) to create live dashboards of systems and businesses in action without the overhead of building a website or buying an expensive tool.

I want to be able to use Excel for the things it’s good at and use Clojure for the things it’s good at. It turns out that they can go really well together.

For more on that, you’ll have to come to my talk which will involve live coding in both Clojure and Excel!

Nola: How would you use clojure to defeat the Kobayashi Maru ?

Tom: That’s easy - use destructuring to get the Kobayashi Maru out of the neutral zone without entering it myself:

(defn rescue-kobayashi-maru
  [neutral-zone]
  (let [{:keys [kobayashi-maru]} neutral-zone]
    kobayashi-maru))

Back in the real world, I’ve found that Clojure’s capabilities to handle super-complex deeply nested data structures gets me out of scrapes that users of other languages thought were almost impossible to deal with.

Nola: Thanks for the interview. It was very informative.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: Tyler Tallman

April 18, 2015

This interview was graciously conducted by Nola Stowe. She's a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!

Introduction

Tyler Tallman is the next interview participant. He is giving a talk at Clojure/West about Clojure to do real-time communication in the healthcare industry. The background to his talk is available, if you like.

Interview with Tyler Tallman

Nola: How did you get into Clojure?

Tyler: I had read much about it before, but Stephan Richter's demonstration of Clojure on app engine led me to binge listen to every Rich Hickey talk I could find. He had me at "epochal time model".

Nola: What languages did you do before Clojure?

Tyler: C++ python and a bit of php

Nola: What advice do you have for beginner Clojure programmers?

Tyler: Read lots of other peoples code and take the time to make at least one design as simple as you possibly can.

Nola: What is your tooling like? emacs or vim or ?

Tyler: I started on vim moved to emacs for it's clojure support and now mostly use Cursive.

Nola: You mention React in your talk description, are you using it in ClojureScript? What flavor of React are you using? (ie Om, Reagent, etc)

Tyler: We use a modified version of Quiescent. I think all the React from Clojure work will eventually grow together into a set of functions and a common macro used to generate the react class directly.

Nola: How would you use Clojure to defeat the kobayashi maru?

Tyler: Persistent data structures of course

Nola: Thanks for the interview. It was very informative.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: Bruce Hauman

April 18, 2015

Introduction

Bruce Hauman was gracious enough to give me an interview. He is giving a talk at Clojure/West about Figwheel, the ClojureScript autoreloader. The background for his talk is available, if you like.

Interview with Bruce Hauman

LispCast: How did you get into Clojure?

Bruce Hauman: I was doing Rails work and I was really burnt out. I had heard of Clojure and ClojureScript through HN and I have always been a big lisp fan. My favorite programming books were the Little Schemer series, PAIP, and SICP. I rewrote the pattern matching macro in PLTScheme (now Racket) as a hygenic macro and was its maintainer for a brief time.

My friend Tobias Crawley (of Immutant) was using Clojure as well and speaking its praises.

Yeah so I was already a crazy lisp fan and the idea that I could develop front end stuff in ClojureScript absolutely captivated me, so I started with it.

I also have to credit Simple made Easy and Rich Hickey's other inspiring talks.

LC: Why did you create Figwheel?

BH: A year ago, I was doing a lot of exploring with ClojureScript and at the time the REPL really didn't work. I would work really hard to get a REPL working and that work would be rewarded with an unstable REPL that just would freeze up at the worst time, so I gave up on it.

My motivation to write Figwheel was all about feedback. The process of repeatedly reloading the browser and manipulating a ClojureScript program into a certain state to test/verify wether a certain code section was behaving as expected was becoming absolutely intolerable. I really don't know how front end developers put up with this.

So I asked myself "Well what is the ideal experience here?." The answer was pretty clear: I want to see the effects of my code changes as soon as I save a file.

I started by doing a simple test. I reloaded whole files into the browser when they finished compiling. This brute force method worked surprisingly well. I had to think about the load time side-effects of my code more, but the feedback especially for GUI programming was absolutely awesome.

I look back now and realize I was really lucky. The Google Closure module system is very amenable to hot patching, this and ClojureScript's awesome incremental compilation made this process very straightforward. Lots of things could have made this much more difficult/impossible but everything was in place just waiting for me to put the pieces together.

LC: What were some of the challenges creating Figwheel?

BH: The hardest part initially was hooking into lein-cljsbuild to get a fast reliable after compile hook. At the time, I didn't have any experience writing Leiningen plugins and also very little time working with Clojure itself, so the going was a little rough.

Iterating on the plugin was very time consuming because I didn't how to tap into the running process with nREPL. I ran "lein figwheel" over and over again and waited for the process to boot way too many times before I decided to learn a better workflow.

I feel like this stuff is arcane knowledge in the Clojure world. Folks talk about REPL driven workflows but as a newcomer its tough to ferret out the actual workflows themselves. Once you get it, you get it, but before then it's kinda hard to discover.

The next hardest thing was hacking the Google Closure module system defined in goog/base.js to accommodate live module loading. The hooks were there but I had to do a bunch a searching to find them. It turned out that a two line hack enabled live reloading with proper downstream dependency handling. Again, I felt like I got really lucky that things were designed this way.

After that it was smooth sailing until I got fed up with how editing macros (or any clj file on a cljs path) caused lein-cljsbuild to do a complete project recompile. This caused all kinds of havoc. I had to fix this. I wanted macro editing to be just as responsive as editing cljs files. This took a bunch of time but I am super happy with the result. Whenever I edit a macro live and think about the downstream changes being made, I'm damn impressed by the power that ClojureScript offers modern front end developers. Code "transformations" that you are defining live are being applied to your running code base live in the browser!!! Dang! Think about all the design decisions that came together to make that possible. Impressive!

LC: Anything else you'd like to share?

BH: I am really looking forward to ClojureWest, if people see me walking by please don't hesitate to hit me up.

There is hopefully going to be a Figwheel Unsession that will be more interactive and more technical, if people are interested they should add their twitter handle to the unsession page.

LC: Where can people find you online?

BH:

LC: If Clojure were a food, what would it be?

BH: Foie gras corn dog.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: Christopher Small

April 16, 2015

Introduction

Christopher Small was gracious enough to agree to an interview. He's giving a talk at Clojure/West about automating a chicken coop with Clojure. The background to his talk is available, if you like.

Interview with Christopher Small

LispCast: How did you get into Clojure?

Christopher Small: I actually wrote a blog post about this.

In short, I was evaluating languages with which to implement the machine learning engine for my startup, pol.is. After having done some tinkering with Haskell and OCaml, I’d come to love functional programming, and thought it would be fun to use a functional language for this project. At the time, I wasn’t aware of FP’s strong concurrency story, but learning of it pretty naturally led me to Clojure, which we went with for a number of reasons.

Since using it, I’ve fallen more and more in love with it every day. To me Clojure is the best of two worlds: the elegance and power of functional programming combined with the relaxed, fun atmosphere of python or ruby.

I’m now thoroughly addicted.

LC: How did you get into raising chickens? And what led you to try automating some of the tasks involved?

CS: My family raised chickens when I was growing up, so I've been around them since I was little.

More recently, when I moved to Seattle I lived in a housing co-op called the Ballistic Chicken Coop, so called because we took care of half a dozen chickens. The chicken run was fully enclosed, but every now and again the raccoons would find a way in and we'd loose a chicken or two. We'd patch it up, but they'd eventually find another way in. At times we'd try closing the coop door at night and opening in the morning, but that became an orchestration nightmare for the house. Also, chickens like getting up early, and we... didn't. It occurred to me that the only way to make sure they were safe -- aside from completely redoing the run, a major project -- would be to set up an automatic door for the coop. I spent some time coming up with plans and door designs, but sadly never made the time to actually build it.

There was this chicken there we called Black Chicken. She's one of the sweetest birds I've ever seen. She would sit on my lap and let me pet her, rolling her eyes back and clucking gently. We became BFFs. But at the BCC, when chickens stop paying rent, the get "evicted". Which is to say, turned into soup. While I was there, I was able to stay the hand of death, but I knew that if I moved, I would have to take her with me.

Fortunately, my wife and I were able to find a place very close by being vacated by a friend of ours who had a small flock she needed to leave behind. However, at the new place, the top of the run wasn't fenced in like at the BCC, so we had to lock them and let them out each night and morning.

As a lazy, functional programmer, this could not stand, so I finally went to work building the automatic door.

LC: What made you choose the BeagleBone Black?

CS: The short answer is that I already had one. The long answer is the reason I had one already.

The world of physical computing boards breaks down into the microcontroller and full computer camps. The former is best exemplified by the Arduino, while the Raspberry Pi is the most popular of the latter.

Microcontroller boards are nice because they draw a lot less power, but don't come with the creature comforts of a fully fledged operating system, meaning you're stuck writing in C or C++. There is a program called Firmata one can install on their Arduino which makes it possible to control the board remotely, but that would have required an 80 ft USB cable going out to the coop. Since I wanted to try hardware programming in Clojure, this class of boards was ruled out.

While the Raspberry Pi is the most popular full computer board, the BBB has some distinct advantages. The BBB has more pins, and in particular has analog input pins built in, which I needed for this project. At the time anyway, it was also more powerful and had more RAM than the existing Pi, which is a plus for Clojure/JVM programming. However, the Pi released just this Feb 2015 has upped the ante a bit, at a lower price; I'm sure there will be some tit for tat for some time here. There are a whole host of other boards out there with their ups and downs, but without getting too far in the weeds, I chose the BBB.

LC: Where can people follow you online?

CS: I'm on Twitter and GitHub as @metasoarous, and my blog/home page is metasoarous.com.

LC: If Clojure were a food, what food would it be?

CS: Had to think about this one for a while. But I'm going to go with one of my favorite fruits: the mangosteen. It's modular, elegant, and delicious :-)


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: Nathan Sorenson

April 15, 2015

This interview was graciously conducted by Nola Stowe. She's a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!

Introduction

Nathan Sorenson is the next interview participant. He is giving a talk at Clojure/West about DSLs. The background to his talk is available, if you like.

Interview with Nathan Sorenson

Nola: How long have you been doing clojure and how did you get into it?

Nathan: I've been using Clojure for 6 years. I got into the language during grad school: the libraries I needed to use for my master's research were all on the JVM, but I was becoming frustrated with the time it took to turn my ideas into experiments in code. I found Clojure and Incanter, and the REPL-based interactive workflow I experienced was incredible. There's no way I'd have been able to spend so much time exploring my problem space without Clojure.

Nola: What languages did you do before Clojure?

Nathan: Mostly Java and C++.

Nola: Your talk is about DSLs, what other language have you used in the past if any to write DSLs?

Nathan: It's often nice to write DSLs in typed FP languages. A DSL's syntax is a quintessential example of an "algebraic data type," and ADTs combined with pattern matching will make it easy to interpret your syntax correctly. Haskell has some particularly useful features: the "deriving" mechanism, for example, gives you traversal operations for your syntax for free. Haskell also has type classes that enable an interesting style of specification called "tagless final." This approach lets you sidestep the typical interpretation overhead and compile your DSL as though it were a first-class member of the host language.

Nola: What advice would you give a new programmer to Clojure?

Nathan: I came from an imperative, object-oriented mindset and had to do a great deal of un-learning before I could grok the basics of functional programming. I personally found classic Scheme books like The Little Schemer and SICP helpful in this journey. However, everyone learns differently based on where they are coming from, so it's important not to get frustrated if you don't find someone's advice, book recommendations, or metaphors useful!

Nola: What is the average airspeed velocity of an unladen Clojure REPL?

Nathan: Lots of people get distracted quibbling about the difference between European REPLs and African REPLs but that's the wrong idea. The trick is to decomplect the question into three simpler ones: what are the average airspeeds of the Starling, the Kestrel, and the Identity bird?

Nola: Thanks for the interview. It was very informative.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: James MacAulay

April 15, 2015

Introduction

James MacAulay is the next interview participant. He is giving a talk at Clojure/West about Functional Reactive Programming with the clojure library Zelkova. The background to his talk is available, if you like.

Interview with James MacAulay

Nola: How long have you been doing clojure and how did you get into it?

James: I've been writing Clojure in my spare time on-and-off for about three years.

In late 2011 I was on a small team developing a JavaScript MVC framework, and we had this problem of managing state in the browser over long periods of time. Our response was to let mutation happen all over the place and keep track of it all with a network of observed properties. It felt fun and empowering at first, but unfortunately it resulted in systems that were very difficult to reason about.

At some point I looked at the system and realized that all it needed to do was handle external events one at a time, and render some views based on those events. It was all starting to look like one big function to me...so I figured I should give a serious look at what functional programming was all about. Clojure had some really compelling answers to the questions I had, and soon I was hooked.

Nola: Any suggestions for someone wanting to dive into clojure?

James: If you're coming from an Object-Oriented background, take your time just getting used to writing different kinds of functions without relying on mutable state. The more you do it, the more fun it is, and it ends up being a really valuable habit to have when writing software in any language.

Nola: What languages did you do before clojure?

James: Mainly Ruby and JavaScript. In university it was Java more than anything else, but we were exposed to a number of other languages in smaller doses: Scheme, Prolog, C, x86 Assembly are the ones I'm most thankful for. When I first got interested in functional programming I dug into Haskell for a bit before Clojure really grabbed me.

Nola: Your talk is about Zelkova which is heavily inspired by Elm. Have you done much with Elm or implemented Functional Reactive Programming in other languages?

James: I first really got the Elm bug at Strange Loop 2013, where I saw Evan Czaplicki live code the Mario demo first-hand. I started playing with both Elm and Bacon.js, a JavaScript FRP library. Last summer I decided to try my hand at implementing FRP in Clojure, and figured I should read Evan's thesis to see how Elm works. I hadn't implemented any kind of FRP before, but Clojure seemed like a great language to do it in.

My experience with the Elm thesis was very similar to the one Eric Normand described having at around the same time – the code in the paper was just begging for a core.async implementation. I started hacking away, and learned a ton about both Elm and core.async in the process.

At Strange Loop 2014, I got to meet Evan and we had a really great chat about Elm and my work on porting its FRP system to Clojure and ClojureScript. He encouraged me to share my work and clarified a lot of things for me, and I've been poking away at Zelkova ever since.

Nola: What is the average airspeed velocity of an unladed Clojure REPL?

James: I try not to throw my laptop across the room when I get frustrated :)

Nola: Thanks for the interview. It was very informative.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Interview: Zach Tellman

April 15, 2015

This interview was graciously conducted by Nola Stowe. She's a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!

Introduction

Zach Tellman is the next interview participant. He is giving a talk at Clojure/West about queueing theory and its applications. The background to his talk is available, if you like.

Interview with Zach Tellman

Nola: How long have you been doing Clojure and how did you get into it?

Zach: About six years, four years professionally. I started looking at Clojure around the time Tom Faulhaber (author of clojure.pprint, and some other stuff), who I worked with at the time, invited Rich Hickey to give a talk at our office. It was on chunked seqs, if I recall correctly, and way over my head. But it got me interested, and here I am.

Nola: Any suggestions for someone wanting to dive into Clojure?

Zach: I've always learned by doing. I'll come up with a project, and learn what I need to know on the way. The more it forces you to learn, the better. My first project in Clojure, which I started the same week I read Stu Halloway's Clojure book, was way over-ambitious, but I learned a ton doing it.

Nola: What languages did you do before Clojure?

Zach: In school, C++ and Java. For work, C# and Java. In my own time I've poked at Erlang, OCaml, Ruby, and a few others.

Nola: Can you describe a good use-case for Clojure that you see has an advantage over another language?

Zach: Clojure's a data-oriented language, it excels at taking data in one shape and transforming it into another. While this isn't all we do in our day-to-day software, it's an awful lot of it. Lately, though, I've been interested in the problems that fall outside of that category, which is in part what my talk is about.

Nola: Emacs or Vim or ?? Can you describe your typical workflow?

Zach: I use Emacs, where I know about five commands, plus paredit. I don't particularly like it, but I don't dislike it enough to switch to something else.

Nola: Thanks for the interview. It was very informative.


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Prep: Nathan Sorenson

April 15, 2015

Talk: Domain Specific Type Systems

Nathan Sorenson's talk at Clojure/West is about type systems for DSLs.

Background

Clojure is a dynamically typed language. The types are encoded in the classes of objects. However, when we develop a DSL, we are designing a new language and are free to build in a static type system for that DSL. Nathan Sorenson's talk addresses some of the hardest but most important work in developing a type system: the error messages and interoperability. And it seems practical: he'll be developing a query DSL for Datomic.

If you're new to macros, you may want to read the macro chapter from Clojure for the Brave and True. If you're really interested in Type Theory, you're in for a treat with this recording of Robert Harper.

About Nathan Sorenson

GitHub - Twitter


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Prep: James MacAulay

April 15, 2015

Talk: Composing interactive applications with Zelkova

James MacAulay's talk at Clojure/West is about Zelkova, his Functional Reactive Programming library.

Background

Zelkova is a Functional Reactive Programming (FRP) library inspired by the Elm FRP model. FRP is a model for building composable "signals" that maintain the state of the system over time. The talk promises to show us how to use it with Om to create interactive applications.

There are many resources out there, but I recommend this talk about Functional Reactive Programming in Elm by Elm's creator Evan Czaplicki. It shows the possibilities of FRP. His thesis, which describes the basic constructs of Elm, is surprisingly approachable. I recommend that highly. Also, James MacAulay himself did a Papers We Love presentation about it, which is worth watching.

About James MacAulay

GitHub - Twitter


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like

Pre-West Prep: Zach Tellman

April 15, 2015

Talk: Everything Will Flow

Zach Tellman's talk at Clojure/West is about applying Queueing Theory to Clojure code.

Background

Zach Tellman is known for his philosophical talks. They connect a broad range of ideas. This talk is about Queueing Theory, which has its roots in telephone network analysis. Since core.async channels are essentially queues, knowledge of how queues behave is fundamental to using the library well.

The Wikipedia page on Queueing Theory is informative. There is kind of a longer lecture if you're interested in going for an hour on the topic. Finally, I recommend this talk from the React conference, which touches on queueing theory in computer systems.

About Zach Tellman

Homepage - GitHub - Twitter


This post is one of a series called Pre-West Prep.

For more inspiration, history, interviews, and trends of interest to Clojure programmers, get the free Clojure Gazette.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Clojure Gazette shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/West is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/West or Cognitect. It is simply me (and helpers) curating and organizing public information about the conference.

You might also like