conf-proposals

https://github.com/clojureconj/clojureconj2016/wiki/Suggested-Topics
meow 2016-01-29T00:00:16.000184Z

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

meow 2016-01-29T00:00:35.000185Z

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

2016-01-29T00:01:03.000186Z

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

meow 2016-01-29T00:02:00.000188Z

or that

meow 2016-01-29T00:03:15.000189Z

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

meow 2016-01-29T00:05:09.000190Z

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

2016-01-29T00:05:33.000191Z

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

βœ… 2
meow 2016-01-29T00:07:03.000192Z

Anything else to add before I go eat dinner?

2016-01-29T00:07:44.000193Z

Nothing springs to mind right now

2016-01-29T00:07:50.000194Z

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

meow 2016-01-29T00:10:12.000195Z

cool, thanks

2016-01-29T02:37:33.000197Z

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

2016-01-29T03:01:50.000198Z

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?

meow 2016-01-29T03:32:01.000200Z

@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.

nberger 2016-01-29T03:46:11.000201Z

@cddr I love property testing talks, so go for it! πŸ‘

meow 2016-01-29T04:12:18.000202Z

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.

2016-01-29T04:13:27.000203Z

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

2016-01-29T04:13:31.000204Z

immediately

meow 2016-01-29T04:13:32.000205Z

It needs work...

meow 2016-01-29T04:13:45.000206Z

@jonahbenton: Thanks!

2016-01-29T04:14:11.000207Z

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

meow 2016-01-29T04:14:21.000208Z

the code is already done

2016-01-29T04:15:30.000209Z

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

meow 2016-01-29T04:16:10.000212Z

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

meow 2016-01-29T04:20:27.000216Z

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

meow 2016-01-29T04:24:28.000217Z

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

2016-01-29T04:33:56.000220Z

## 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).

2016-01-29T04:38:25.000222Z

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

2016-01-29T04:39:55.000223Z

Can do.

2016-01-29T05:10:32.000224Z

## 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.

2016-01-29T05:21:33.000228Z

@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.

2016-01-29T05:23:04.000229Z

Cool. Thanks for your suggestion

2016-01-29T05:23:22.000230Z

I think I agree that reads better

meow 2016-01-29T15:06:07.000232Z

Welcome @aleksander

meow 2016-01-29T15:15:50.000233Z

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-mahood 2016-01-29T15:20:01.000234Z

Abstract looks good to me.

shaun-mahood 2016-01-29T15:21:16.000235Z

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

meow 2016-01-29T15:27:02.000236Z

@shaun-mahood: tyvm

2016-01-29T17:29:01.000237Z

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.

πŸ‘ 3
shaun-mahood 2016-01-29T17:50:05.000238Z

@jaredly: That talk sounds awesome to me!

meow 2016-01-29T20:13:05.000239Z

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-mahood 2016-01-29T20:21:46.000241Z

@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?

2016-01-29T20:22:07.000243Z

I read that as tongue-in-cheek

markmandel 2016-01-29T20:24:43.000246Z

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?

markmandel 2016-01-29T20:26:28.000247Z

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

shaun-mahood 2016-01-29T20:27:39.000250Z

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.

meow 2016-01-29T20:28:57.000251Z

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

meow 2016-01-29T20:29:21.000252Z

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

shaun-mahood 2016-01-29T20:29:50.000253Z

@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.

πŸ˜„ 1
markmandel 2016-01-29T20:30:50.000254Z

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

shaun-mahood 2016-01-29T20:31:23.000255Z

@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.

markmandel 2016-01-29T20:31:45.000256Z

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

markmandel 2016-01-29T20:31:54.000257Z

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

ghadi 2016-01-29T20:32:45.000258Z

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

meow 2016-01-29T20:33:39.000259Z

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:

ghadi 2016-01-29T20:33:49.000260Z

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

markmandel 2016-01-29T20:34:16.000261Z

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

meow 2016-01-29T20:34:40.000262Z

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-mahood 2016-01-29T20:35:10.000263Z

@meow: Looks solid to me!

meow 2016-01-29T20:35:38.000264Z

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

meow 2016-01-29T20:35:56.000265Z

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

markmandel 2016-01-29T20:36:57.000266Z

At some point πŸ˜‰

shaun-mahood 2016-01-29T20:39:34.000267Z

And that point really should be today before the deadline!

markmandel 2016-01-29T20:40:28.000268Z

Hey, maybe you don't want to actually get accepted πŸ˜‰ I don't judge πŸ˜„

venantius 2016-01-29T20:40:45.000269Z

πŸ˜›

meow 2016-01-29T20:59:33.000270Z

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

2016-01-29T21:02:50.000271Z

maybe Ideas?

shaun-mahood 2016-01-29T21:03:09.000272Z

I think Ideas too

meow 2016-01-29T21:08:50.000273Z

Submitted!

🍻 5
2016-01-29T21:38:43.000274Z

me too, just now

🍹 5
meow 2016-01-29T21:43:41.000275Z

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.

meow 2016-01-29T21:54:25.000276Z

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

meow 2016-01-29T21:55:36.000278Z

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

shaun-mahood 2016-01-29T21:55:54.000279Z

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

2016-01-29T22:23:33.000280Z

πŸ˜„

2016-01-29T22:24:35.000281Z

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

meow 2016-01-29T22:50:02.000282Z

Me too. I thought I saw Feb 15 somewhere.

venantius 2016-01-29T23:07:09.000283Z

Feb 15th is the notification date