Pre-West Interview: Yoko Harada

April 10, 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

Yoko Harada is the next interview participant. She is giving a talk at Clojure/West about developing the ClojureBridge curriculum. The background to her talk is available, if you like.

Interview with Yoko Harada

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

Yoko: My experience is quite sparse, but I've been using Clojure for about 4 years. Since I'm a JVM language lover, I had a great interest in Clojure, which was very different from other JVM languages. I started ClojureScript integrating Ruby gem at first.

Nola: What languages did you do before Clojure?

Yoko: Mostly, Java and Ruby.

Nola: What are your thoughts on Clojure being a first language or do you think its more suited to someone who has some experience in programming?

Yoko: It depends. Thinking of the time I was a student, for some folks, lisp was the first language and did well using Lisp. For many people, Clojure coding is not similar to how they think. For example, in OOP, "I have a cup of soup. let's add some spice", in Lisp, "Let's add something and other stuff, what about soup and spice." Sometime, the latter is productive in coding while sometime, the former is. I admit OOP is natural for vast majority. But, at the same time, I don't think programming experience will help to think like Lisp.

Nola: What kinds of help do you need for ClojureBridge?

Yoko:

  1. spread the word
  2. plan to organize ClojureBridge
  3. have experiences of organizing, TAing, and others of ClojureBridge
  4. involve yourself in ClojureBridge curriculum improvements based on the experience
  5. become a ClojureBridge board member
  6. become a ClojureBridge mentor and help people who firstly organize ClojureBridge
  7. donate and support ClojureBridge financially. The workshop needs venue, some food and. sometime, coaches/TAs' travel expense

Nola: What is your favorite clojure library?

Yoko: Hoplon

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


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Anthony Marcar

April 10, 2015

Introduction

Anthony Marcar generously agreed to do an interview about his talk at Clojure/West. The background to the talk is available, if you like.

Interview

LispCast: How did you get into Clojure?

Anthony Marcar: About 4 years ago, I decided that java wasn’t cutting it for me. I needed a new language, but I wanted to be on the JVM. So Scala and Clojure were the obvious contenders. I decided to spend 3 months building an online card game in both languages to see which I liked more. Scala at first was easier to get into, whereas Clojure was thoroughly alien. But over time, In Scala, I found I was spending more time building abstract Type graphs and waiting for compiles to finish, whereas in Clojure I was having a lot of fun and moving faster. I also loved the emphasis on immutability in Clojure. After that I was hooked.

LC: Clojure is relatively new, so you don't really get many experience reports of large production systems. When you hear someone talking about Clojure who has used it maybe only hobby projects or small projects, what are the common things that strike you as untrue?

AM: I don’t know if "untrue" is the right way to put it, but things people generally haven’t thought about before embarking on larger Clojure projects are things like how do you deploy your application, how do you go about logging and monitoring? How do you protect your application from going down if downstream dependencies start timing out? And how do you grow a code base across multiple projects? There still aren’t many resources in the Clojure space to answer these kinds of questions.

LC: Have you had experience bringing programmers who don't know Clojure onto your team? What were the challenges? What surprised you?

AM: Yes I have had rubyists, node.js and python people join the team. Not surprisingly the JVM was a big challenge. Things like the local maven repository, logging, and common java libraries can be hard to grasp. I was however surprised how easily everyone picked up on Clojure’s fundamentals such as immutability. I guess it’s because that’s what attracted them to the language in the first place.

LC: Do you think Clojure is a good fit for large companies with lots of software?

AM: Clojure is great for large companies. I think it’s greatest asset is its focus on data structures. In big companies, this is a big deal as there are layers and layers of legacy systems, each with their own outdated data formats and protocols. Clojure's focus on data transformations and concurrency makes it perfect for working with many different services to produce the right business outcome. That, combined with the the fact that it runs on the JVM makes it perfect for large companies.

LC: Do you have any advice for the folks out there working for big companies who want to introduce Clojure to their work?

AM: If you want to introduce Clojure at a large company, get ready for a very tough road ahead. Work from both the bottom and top of the organization. Try and find the engineers who are always looking at new technologies. The kind who get home and build side projects. Then infect them. At the same time, scour the organization for VPs, or SVPs who "get" technologists. Buy them a beer. Ask them to be a champion for you, to protect you every time a more "traditional" team tries to block your progress. You’ll need all the help you can get and will have to work well past your normal hours, but it’s worth it.

If you want to take a shortcut, build a company that does Clojure, and then get acquired by said big company ;)

LC: Is there anything else you'd like to add?

AM: All I would add is that working in Clojure is extremely fun. If you’re not already working in it full time, go and apply for a job somewhere where you can!

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

AM: An ice cream sandwich. Because it’s awesome. That is all.


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Luke Vanderhart

April 09, 2015

This summary was graciously written 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!

Talk: The ReactJS Landscape

Luke Vanderhart's talk at Clojure/West is about the ReactJS Landscape.

Background

ReactJS appeared from Facebook last year in silence and without fanfare (from my view anyways!) but recent months has had an explosion on the web frameworks space, in particular in Clojure because of the common thread of immutablility running through the core concepts.

Since Facebook announced it in June, we have seen several incarnations of React in Clojure: Om, Quiescent, and Reagent.

Why it matters

ReactJS is the View in MVC apps and is a declarative library for describing a user interface, it can figure out what parts of the application to redraw on an update. With the popularity of single page applciations this is key to making a fast and responsive user interface.

About Luke Vanderhart

Github - Twitter

Luke is the co-author of two books: Clojure Cookbook and ClojureScript Up And Running.

You might also like

Pre-West Interview: Brandon Bloom

April 09, 2015

Introduction

Brandon Bloom generously agreed to do an interview about his talk at Clojure/West. The background to the talk is available, if you like.

Interview

LispCast: How did you get into Clojure?

Brandon Bloom: From 2009 to 2011, I encountered a couple of Rich's talks and writings. Each time I would look at Clojure briefly, but it never really clicked. When ClojureScript was released, my startup was heavily using CoffeeScript, so I decided to take a more serious peek at this new alternative. I immediately fell in love with Clojure and started contributing to ClojureScript. My startup never did get a chance to use ClojureScript, but Clojure on the JVM quickly became one of my favorite tools for prototypes and experiments, and I've lately, I've used it for serious business with some frequency.

LC: You will be talking about the CircleCI frontend, written in ClojureScript and Om. Om is less than 18 months old, and yet it is used in production systems and I assume replaced their previous frontend system. Can you speak to this decision? How was it evaluated?

BB: I honestly can't speak to the decision to use Om. That was made before I got involved. What I can say is that CircleCI was already a big Clojure user and their front end used to be CoffeeScript based. Daniel Woelfel deserves all the credit for choosing Om and delivering a production system with it. I got involved much later.

LC: What were some of the challenges that you faced when developing with such a new library as Om?

BB: Om is/was still evolving. It's got bugs, misfeatures, and other problems. Luckily, I've had the luxury of regular face time with David Nolen, Om's author, out at the Kitchen Table Coders studio in Brooklyn. I think that it's important for new library producers/consumers to interact regularly. Beyond that, the design patterns aren't established yet. It's difficult to simultaneously think deep thoughts about a challenging design space such as UI code, while also building a useful UI for your product. Sometimes, you just need to hack it and you can't be afraid to dig in to the library code while you're hacking it. After that, you need to reflect on whether your solution actually makes sense: Often it doesn't!

LC: What are some improvements to Om you would like to see?

BB: That's a tough question to answer constructively, since David has already picked all of the low hanging fruit that I've pointed out to him. Overall, Om is an absolute delight. That said, it's clearly a first real attempt at the React style of UI development in Clojure. Some parts of Om, like cursors, just never made much sense. Other parts feel like missed opportunities to truly capitalize on ClojureScript's strengths. At this point, my feedback could be rolled in to notes for a second attempt at this style of UI framework in Clojure.

David has made the very pragmatic decision to assume React.js as a long term dependency. However, once you really get in to the weeds hacking on a UI, it becomes clear, at least it did to me, that less layers is always a good thing. Overall, a virtual DOM implementation is pretty easy, although getting it to perform well is tricky. I'd really like to see a ClojureScript library that drops the React.js dependency in favor of a more direct mapping to Clojure idioms.

The dichotomy between primitive elements and Om components (created via om/build) has got to go. It hurts modularity and refactorability. But I also don't particularly like some users' insistence on hiccup forms for a variety of reasons.

The "no local state" descriptors thing should definitely be the only way Om operate.

The "world in an atom" model isn't quite structured enough. We need something more database-like to manage client/server synchronization. Facebook's Relay is impressive and, if you squint right, their GraphQL looks a lot like Datomic's Pull API. I know that Sean Grove has been experimenting with a DataScript-backed UI. I think that somebody needs to ship a prescriptive framework here that integrates a client-side database with the view layer.

I've also got extensive notes for an alternative events system.

Beyond that, toolability is critical. The framework needs a way to design and test an individual component in the browser. You should have to go out of your way to break that, not go out of your way to enable it.

LC: Where can people follow you online?

BB:

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

BB: Certainly not a burrito.


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Gary Fredericks

April 09, 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

Gary Fredericks is the next interview participant. He is giving a talk at Clojure/West about Random number generation. The background to his talk is available, if you like.

Interview with Gary Fredericks

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

Gary: I started using Clojure in 2009 at my first full-time software job. The person I reported to was interested in experimenting with new languages.

Nola: What languages did you do before Clojure?

Gary: I learned Clojure in parallel with Ruby, Erlang, and Scala; prior to that I had only programmed as a hobby (TI-BASIC and JavaScript, both due to platform monopoly), for undergrad CS classes (Java), and for a couple minor jobs (both with C++).

Nola: What editor do you use and what is a typical workflow?

Gary: I use emacs with cider, making heavy use of the repl and in-buffer evaluation (especially dedicated scratch files for more serious efforts). I also try to invest in improving my clojure environment via my leiningen profiles and a repl utilities library.

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

Gary: I think Clojure has a pretty general-purpose emphasis. The result is if you buy its value proposition you'll want to use it for a broad range of things, and if you don't you'll probably not want to use it for anything, as the cost of using a less popular language will be too high.

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

Gary:

$ time echo '(System/exit 0)' | java -jar clojure-1.6.0.jar
Clojure 1.6.0 user=>
real 0m0.928s user 0m1.431s sys 0m0.053s

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


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Zachary Kim

April 09, 2015

Talk: No-strings mobile app development for Clojure

Zachary Kim's talk at Clojure/West is about writing native mobile applications in Clojure.

Background

Clojure on mobile is getting a lot of attention recently. ClojureScript has always allowed for WebKit development on the iPhone. Kevin Lynagh wrote Weathertron, released in June 2013, which used ClojureScript and Angular.js. And more recently Mike Fikes has created an Objective-C/ClojureScript bridge called Goby. And of course, there's a lot of excitement now about React Native and the ClojureScript workflow for using that. Mike Fikes is also working on a ClojureScript REPL for iOS. Zachary Kim does not give us any clues in the talk description, so we'll just have to make do with these.

About Zachary Kim

Homepage - GitHub - Twitter


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Tyler Tallman

April 08, 2015

Talk: Composable Healthcare

Tyler Tallman's talk at Clojure/West is about how to model complex problems in Clojure.

Background

Medical care is incredibly complex, and is only getting worse. Most medical record software is like a basic CRUD app. It stores the information the doctor puts in and displays it when asked. But as the amount of information increases, something more needs to happen. How can the computer system support the doctor making ever more complex decisions? How can it support the host of medical professionals that provide care? And what role can Clojure play in that process?

I don't have any background information for this one. But I know Tyler personally and this is a fascinating story of rules engines, complex data formats, visualizations, and composable abstractions.

About Tyler Tallman

GitHub - Twitter


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Soren Macbeth

April 06, 2015

Talk: Data Science on Clojure

Soren Macbeth's talk at Clojure/West is about data crunching in Clojure.

Background

Clojure's prowess in the world of data and distributed systems is pretty awesome. This talk is about two open source libraries for crunching lots of data in Clojure. One is called marceline, the other is flambo. Both are wrappers for distributed computation libraries. For background, you may want to watch a talk by Nathan Marz on Storm.

About Soren Macbeth

Homepage - Twitter - GitHub


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Timothy Gardner and Ramsey Nasser

April 06, 2015

Talk: Games and 3D Graphics in Arcadia

Timothy Gardner and Ramsey Nasser's talk at Clojure/West is about Arcadia, the integration of Clojure and Unity 3D.

Background

It took a lot of work to get Clojure running with Unity 3D. For one, Unity 3D is based on .NET, so the version of Clojure for the CLR had to be updated and retrofitted to work with it. But Unity 3D is a very popular game engine that exports to lots of major platforms, including consoles. This gives Clojure an inroad into even more systems. I've always wanted to program games, and this gives me hope that I'll do it one day.

For background, the two speakers have given several talks about Arcadia. At Strange Loop 2014, at CodeMesh 2014, and at the Clojure NYC Meetup.

About Timothy Gardner

Homepage - Twitter - GitHub

About Ramsey Nasser

Homepage - Twitter - GitHub


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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: Sean Johnson

April 06, 2015

Talk: Pattern Matching in Clojure: Best Practices

Sean Johnson's talk at Clojure/West is about pattern matching in Clojure.

Background

The built-in pattern matching in Clojure is not as powerful as in Haskell and Erlang. But, being a Lisp, it's easy to write a pattern matching macro. Which has been done, it's called core.match, and it's great. This talk is an experience report from using pattern matching in Clojure. Check out Pattern Matching & Predicate Dispatch, a talk by core.match's creator, David Nolen.

About Sean Johnson

Homepage - Twitter - GitHub


This post is one of a series called Pre-West Prep, which is also published by email. It's all about getting ready for the upcoming Clojure/West, organized by Cognitect. Conferences are ongoing conversations and explorations. Speakers discuss trends, best practices, and the future by drawing on the rich context built up in past conferences and other media.

That rich context is what Pre-West Prep is about. I want to enhance everyone's experience at the conference by surfacing that context. With just a little homework, we can be better prepared to understand and enjoy the talks and the hallway conversations.

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