New capstone app for curriculum

12 views
Skip to first unread message

Bridget Hillyer

unread,
Aug 15, 2014, 1:30:32 PM8/15/14
to clojurebridg...@googlegroups.com
Hi all.

Yoko and I have decided to start working on a new app that will be what students build at the end of the ClojureBridge workshop. We are using Quil. Here is the repo:


What motivated our choice of Quil for the app were the following:

* Provide attendees with immediate feedback (an image drawn on the screen)
* Fun, wow factor
* Easy to use API
* Amenable to creating a very simple beginner version of the app and a more complicated advanced version
* Not a web app, so we can simplify the workshop by removing all of the web app-related concepts and machinery

Would love feedback! And help, thoughts, etc.

Bridget

Bridget Hillyer

unread,
Sep 9, 2014, 5:04:27 PM9/9/14
to clojurebridg...@googlegroups.com
Drum roll please....

Introducing... 

... the first draft of the new ClojureBridge capstone app.

Yoko wrote it, based on an idea by Russ Olsen. I wrote the curriculum narrative.


It is VERY SIMPLE, meeting the requirement of being something we can fit into the one-day workshop. But it is simple enough that we can add more to it. My suggestion is to add additional Quil sketches that build up from what is in lines.clj. An example is already there, circles.clj, which is what comes with running the quil Leiningen template.

Please kick the tires! Preferably, running through the curriculum narrative linked to from the README.

Bridget

David Chambers

unread,
Sep 14, 2014, 2:44:56 PM9/14/14
to clojurebridg...@googlegroups.com
I just followed the instructions in the README and created quite a work of art:


This is an excellent exercise. Well done, Bridget and Yoko!

My one reservation is that drawing APIs often require interacting with hidden state. Quil does:

(q/stroke 255 0 0)

Not only are we calling a function for its side effects, we don't see these side effects until we call some other function.

The earlier part of the curriculum features lots of pure functions, so I'm not too concerned. I really enjoyed creating my "painting"; I'm sure others will too. :)

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.

se...@corfield.org

unread,
Sep 15, 2014, 12:44:55 AM9/15/14
to clojurebridg...@googlegroups.com
> I just followed the instructions in the README and created quite a work of art:

My creative skills didn’t get me any art but I certainly had a lot of fun with the Quil-based capstone app 😊

> This is an excellent exercise. Well done, Bridget and Yoko!

Indeed! It’s easy to get up and running and it provides quick and fun feedback.

>​ My one reservation is that drawing APIs often require interacting with hidden state.

Yeah, I couldn’t put my finger on what seemed odd about it but you’re right that, stylistically, Quil is very different to what students learn in the class.

It will be interesting to see how students react to the two different styles and what questions arise.

Any thoughts from Bridget and/or Yoko on this?

Sean

Bridget Hillyer

unread,
Sep 21, 2014, 8:17:42 PM9/21/14
to clojurebridg...@googlegroups.com
I see what you're saying regarding state and Quil. Not to mention - drawing is essentially one big exercise in side effects. And, yes, this is stylistically very different from the rest of the curriculum.

This has been rolling around in the back of my mind over the last week. Not quite sure what to do about it except for run the experiment at a workshop and see what happens.

Bridget

Bridget Hillyer

unread,
Sep 23, 2014, 2:06:23 PM9/23/14
to clojurebridg...@googlegroups.com
I thought about this a bit and talked in person with some Clojure folks about it. 

When you do a draw, that is one instant/snapshot in time, so the creation of that drawing is functional. I think that addng the call to stroke to the draw function might alleviate some of the weirdness around that. 

I added a function that generates a color value based on a mouse position. That function is purely functional, so it reinforces that piece of the curriculum. I added it to the curriculum section as a Bonus exercise.

Would love to get more feedback. It's a very small app, so it's quick to take a look at. https://github.com/ClojureBridge/drawing

But I propose to go ahead and update the main curriculum (after this weekend in case anyone is using the central repo to pull their workshop curriculum) with these changes. I have this staged in my fork: I separated the global-growth curriculum narrative into the global-growth repo and updated the main curriculum outline to reflect that and link to the new capstone app with global-growth as an alternative capstone app.

David Chambers

unread,
Sep 23, 2014, 2:10:22 PM9/23/14
to clojurebridg...@googlegroups.com
I think that addng the call to stroke to the draw function might alleviate some of the weirdness around that.

Agreed. Great idea.

I have this staged in my fork

We'll use your fork at the SF workshop this week. :)

Bridget Hillyer

unread,
Sep 23, 2014, 9:18:44 PM9/23/14
to clojurebridg...@googlegroups.com
On Tue, Sep 23, 2014 at 2:10 PM, David Chambers <d...@davidchambers.me> wrote:
I think that addng the call to stroke to the draw function might alleviate some of the weirdness around that.

Agreed. Great idea.

I have this staged in my fork

We'll use your fork at the SF workshop this week. :)

Noted! I just double-checked that it makes sense. You may want to fork my repo yourself. Something to watch for: I have no idea if the slides match anything in the curriculum at this point. 

Bridget Hillyer

unread,
Sep 24, 2014, 5:19:32 PM9/24/14
to clojurebridg...@googlegroups.com
Kyle asked me to merge my changes reflecting the new Quil app back into the main ClojureBridge/curriculum repo. I had to check with Edinburgh who is also planning to use ClojureBridge/curriculum this weekend, and they forked it in its current state. So they are taken care of.

Just double-checking - would you like me to go ahead and merge my changes into the ClojureBridge/curriculum now?
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

David Chambers

unread,
Sep 24, 2014, 5:54:53 PM9/24/14
to clojurebridg...@googlegroups.com
Just double-checking - would you like me to go ahead and merge my changes into the ClojureBridge/curriculum now?

Yes, please do. This will avoid confusion for students who search for "ClojureBridge" on GitHub and land at ClojureBridge/curriculum.

Thanks, Bridget!

To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.

Bridget Hillyer

unread,
Sep 24, 2014, 5:59:38 PM9/24/14
to clojurebridg...@googlegroups.com
Pull request sent. May I have two +1s?

Sean Corfield

unread,
Sep 24, 2014, 7:50:00 PM9/24/14
to clojurebridg...@googlegroups.com
You have a +1 from me since it's almost entirely a pure removal, with just links to the READMEs added in place of that.

Sean
signature.asc

Bridget Hillyer

unread,
Sep 24, 2014, 9:25:13 PM9/24/14
to clojurebridg...@googlegroups.com
Merged!

The only thing that is missing is there are no slides for the new capstone app. Feel free to add some! Or figure out how to do it without slides.

I flipped through the rest of the slides, and I think they are pretty close to the rest of the curriculum narrative. 
Reply all
Reply to author
Forward
0 new messages