Fork me on GitHub
#conf-proposals
<
2016-01-29
>
meow00:01:16

@shaun-mahood: Much appreciated. I'm sure I'll be working on it until the last minute.

meow00:01:35

How's this for a title: Reifying Online Group Chat Conversations

jamesnvc00:01:03

(reify IConversation (braid-it-up []))

meow00:01:15

My presentation with have plenty of moarji, I can guarantee that much.

meow00:01:09

@jamesnvc: What do you think are the core technologies that should be listed as critical to how you guys are developing Braid?

jamesnvc00:01:33

I’d say clojure(script), om, datomic

meow00:01:03

Anything else to add before I go eat dinner?

jamesnvc00:01:44

Nothing springs to mind right now

jamesnvc00:01:50

I need to eat dinner too, I will think about it

meow00:01:12

cool, thanks

cddr02:01:33

@meow: You know there's already a game called Braid

cddr03:01:50

I have not seen many property tests out in the open so it can be hard to know where to start writing test.check generators for your day job. I recently built a pretty cool property check at work that people might find interesting. What do you folks think?

meow03:01:01

@cddr: Yes. But I didn't name the project. I think it's kind of funny. Especially since I'm looking forward to playing "The Witness", also by Jonathan Blow.

nberger03:01:11

@cddr I love property testing talks, so go for it! 👍

meow04:01:18

First draft of my polygon talk proposal abstract:

Polygons, Lots of Polygons

Polygons, and polygon meshes, have interesting geometric properties that can be manipulated by algorithms to create unusual geometric shapes for 3D printing, game content, and virtual reality. See how Clojure code can apply Conway polyhedron operators and Catmull-Clark subdivision smoothing to Platonic solids to produce full-color X3D files for 3D printing at Shapeways. And then see how that same code can generate content for virtual reality platforms. You will learn how to generate lots of polygons, all from the Clojure REPL.

jonahbenton04:01:27

@meow: that reads like a winner to me, I am immediate interested

meow04:01:32

It needs work...

jonahbenton04:01:11

would be very cool to be able to produce a printable shape from the repl

meow04:01:21

the code is already done

jonahbenton04:01:30

perhaps someone could be convinced to provide a printer for the conference

meow04:01:10

My designs can only be printed on a commercial printer that costs about $30,000.

meow04:01:27

I don't have code for the virtual reality stuff yet, but I've created lots of X3D files, all from the repl.

meow04:01:28

They could be printed on a low-end printer, they just wouldn't be full-color.

cddr04:01:56

## Real Life clojure.test

Many developers will agree with the proposition that a good property test
greatly increases one's confidence that the code under test will function
correctly. But how do you take a user story and build the corresponding
property test. This talk goes beyond sorting integers to explore a non-trivial
real world example from the world of fin-tech (maintaining a clawback ledger).

jonahbenton04:01:25

@cddr can you describe a clawback ledger? in a way that sets up the risks that insufficient property coverage may expose the company to?

cddr05:01:32

## Real Life test.check

Many developers will agree with the proposition that a good property test greatly increases one's confidence that the code under test will function correctly. But how do you take a user story and build the corresponding property test. This talk goes beyond sorting integers to explore a non-trivial real world example from the world of fin-tech.

Sometimes a borrowers' repayment "bounces" after the money has already been distributed to investors. Rather than asking investors to give back the money, it is customary to maintain a "clawback ledger" and create transactions that debit money earned from other investments until their balance arrives back at zero.  Any mistakes result in embarrassing conversations with investors and costly data fixes.

jonahbenton05:01:33

@cddr- cool, get the second paragraph. To my eyes, I would like to read that first and then get a punchline like- Property tests have proven invaluable to ensure the correctness of this ledger and have found bugs that could have led to $XX in losses. In a talk that goes well beyond the usual examples involving sorting integers, come hear how we have learned to take user stories and turn them into property tests that deliver when it comes to reducing risk and increasing confidence. Just a suggestion. I'm always personally interested in being situated directly in real world scenarios.

cddr05:01:04

Cool. Thanks for your suggestion

cddr05:01:22

I think I agree that reads better

meow15:01:50

Here is my abstract for my polygon talk:

Polygons, Lots of Polygons

Polygons, and polygon meshes, have interesting geometric properties that can be manipulated by algorithms to create unusual geometric shapes for 3D printing, game content, and virtual reality. See how Clojure code can apply Conway polyhedron operators and Catmull-Clark subdivision smoothing to Platonic solids to produce full-color X3D files for 3D printing at Shapeways. And then see how that same code can generate content for virtual reality platforms. You will learn how to generate lots of polygons, all from the Clojure REPL. If you like funky eye-candy, nerdy art, clever generative design, or the aesthetics of algorithms, this is the session for you.
Now I need to work on the "3 main ideas an attendee will learn and/or be able to apply after seeing your talk." Any suggestions?

shaun-mahood15:01:01

Abstract looks good to me.

shaun-mahood15:01:16

Ideas I can maybe see in there - real life application of interesting algorithms in Clojure, generative design, using Clojure to build 3D shapes with no intermediate libraries

jaredly17:01:01

Here’s what I’ve got so far:

## Bootstrapped ClojureScript for Fun and Learning

The arrival of ClojureScript bootstrapping with version 1.7 last july has opened up a world of possibilities, making ClojureScript more accessible than ever before. Get an in-depth look at a web-based integrated learning environment for ClojureScript, with LightTable-style inline eval, a super-powered REPL, and special support for Quil, WebGL, and UI development. I'll also talk about the experience of teaching my 11-year-old brother how to program using this environment, and how it shaped the project.

shaun-mahood17:01:05

@jaredly: That talk sounds awesome to me!

meow20:01:05

I think I'm about to submit this:

Braid Chat: Reifying Online Group Conversations

Slack is a popular chat application that was spun out of the development of an online game. Braid is taking the opposite approach - beginning life as a chat application that will evolve into a full-blown virtual reality and gaming platform. Braid is an open-source group chat application for teams and communities, designed to promote productive conversations and aiming to be an alternative to Slack for open source groups such as the Clojurian community. For rapid development and flexibility, Braid is leveraging Clojure, ClojureScript, Om, and Datomic. And with its innovative approach to conversation management, Braid is anything but an IRC clone.

1. Learn new ways to think about messages, chat, conversations, tags, threads, channels, rooms, groups, teams, organizations, federation, balkanization and community.

2. Learn the architecture and design of a system built using Clojure, ClojureScript, Om and Datomic.

3. Learn how to participate in the development process of Braid itself.

shaun-mahood20:01:46

@meow: The only thing in there I don't see the link to is the evolution into vr and gaming - how does that apply to the talk?

jaredly20:01:07

I read that as tongue-in-cheek

markmandel20:01:43

So I've been debating submitting a talk on essentially wrapping Clojure around http://www.grpc.io/ - so how you can use it for straight RPC, but also bi/directional streaming. Could be an interesting exploration of Java interop and probably core.async at the same time (for async rpc calls). It would be fun for me to write, but would people be interested you think?

markmandel20:01:28

Something like "High Speed Microservices with gRPC and Clojure" (or something like that)

shaun-mahood20:01:39

Tough to tell the difference in text and without context, and it reminds me of the sort of uninformed PR explosion of VR and things like Second Life news articles - where corporations throw on meaningless buzzwords to get in on the latest bandwagon. Not that @meow is particularly corporate, but as a statement for someone who doesn't know anything about him or Braid it seems like it needs a little something more or different. But I also might be the only one who thinks that, so ignore me if it doesn't make sense.

meow20:01:57

No, the Braid guys feel the same way so the first two sentences are coming out.

meow20:01:21

I'm quite serious about the goal, but I might be the only one at this point that has that vision.

shaun-mahood20:01:50

@markmandel: Being totally uninformed about the specifics, that seems like it fits with a lot of the previous talks at the Conj and Clojure/West. Looks really interesting to me.

markmandel20:01:50

Sweet. Okay, time to find some time today to write it

shaun-mahood20:01:23

@meow: Maybe you can get the oculus rift version of Braid ready for April simple_smile Unrelated to the conf, it would be interesting at some point to hear your thoughts related to both of those ideas.

markmandel20:01:45

I have a gRPC demo which isn't Clojure based which is all about multiplplayer, real time Simon says (the 80s electronic game) ...

markmandel20:01:54

I wonder if I could write a Clojure client for it. That would be neat.

ghadi20:01:45

I'd welcome a talk on gRPC, though I know a lot of people in the community have opinions about static typing on the wire. I'd leave core.async out of it though

meow20:01:39

The VR stuff is likely a year or two out. But I do have a vision and am glad to discuss over scotch and cigars. simple_smile

ghadi20:01:49

People who love gRPC seem to really love it... but required reading would be @stuarthalloway from his Narcissistic Design talk re: static types across process boundaries

markmandel20:01:16

Nice - more popular than I would have thought. Cool - I'll get on it.

meow20:01:40

Now the abstract looks like this:

Braid Chat: Reifying Online Group Conversations

Braid is an open-source group chat application for teams and communities, designed to promote productive conversations and aiming to be an alternative to Slack for open source groups such as the Clojurian community. From its inception Braid was intended to be a showcase of the awesomeness of Clojure/script and the ability of the Clojure community to satisfy its own needs. For rapid development and flexibility, Braid is leveraging Clojure, ClojureScript, Om, and Datomic. And with its innovative approach to conversation management, Braid is anything but an IRC clone. Come explore new ways of thinking about messages, chat, conversations, tags, threads, channels, rooms, groups, teams, organizations, federation, balkanization and community.

shaun-mahood20:01:10

@meow: Looks solid to me!

meow20:01:38

thanks, appreciate the feedback and willingness to tell me what sucked. simple_smile

meow20:01:56

at some point you give up and just hit submit, right?

markmandel20:01:57

At some point 😉

shaun-mahood20:01:34

And that point really should be today before the deadline!

markmandel20:01:28

Hey, maybe you don't want to actually get accepted 😉 I don't judge 😄

meow20:01:33

Not sure if I should submit this under Experience Report or Ideas

jaredly21:01:50

maybe Ideas?

shaun-mahood21:01:09

I think Ideas too

meow21:01:50

Submitted!

jaredly21:01:43

me too, just now

meow21:01:41

This is where I'm at with my other proposal:

Polygons, Lots of Polygons

Polygons, and polygon meshes, have interesting geometric properties that can be manipulated by algorithms to create unusual geometric shapes for 3D printing, game content, and virtual reality. See how Clojure code can apply Conway polyhedron operators and Catmull-Clark subdivision smoothing to Platonic solids to produce full-color X3D files for 3D printing at Shapeways. And then see how that same code can generate content for virtual reality platforms. You will learn how to generate lots of polygons, all from the Clojure REPL. If you like funky eye-candy, nerdy art, clever generative design, or the aesthetics of algorithms, this is the session for you.

1 - How to use Clojure and core.matrix to output 3D shapes with no other intermediate libraries.

2 - How to apply geometry and color algorithms to real-world art and design.

3 - How to apply functional programming techniques to the challenges of parametric 3D modeling.

meow21:01:25

And I just hit submit so it's too late to change.

meow21:01:36

A big thank you to everyone that helped me out. I couldn't have done it without you. simple_smile

shaun-mahood21:01:54

Same here! Really helpful to have a few more sets of eyes.

jaredly22:01:35

although the email I received said Feb 27????

meow22:01:02

Me too. I thought I saw Feb 15 somewhere.

venantius23:01:09

Feb 15th is the notification date