online fun with functional programming

201 views
Skip to first unread message

Tony Morris

unread,
Feb 9, 2013, 2:27:56 AM2/9/13
to scala-fu...@googlegroups.com
Hey guys,
Occasionally I will write a twittle something like "in one hour we will
be doing an online interactive code session on ... using scala." I do
this sporadically and I do it for fun. Examples in the past have been;
memoisation using the state monad, what does monad mean? Most people
enjoy it, including me and some people are so inspired that they ask for
more reading material and I direct them to Paul and Runar's awesome book[1]

When I do this, I don't do it with much organisation in mind, but I was
thinking maybe some of you might have better ideas. For example, I use
IRC for discussion while using titanpad.com for interactive code, then a
small script to compile and run that code locally. Once we are right
into it, there is almost always at least 3 people editing code (and so
it doesn't always compile!), but we work within that. There are also
limitations with regard to time zones (I am in UTC+10).

Anyway, maybe you might have a suggestion of:

* better tools for conducting these interactive code sessions (better
than titanpad+IRC)
* topics that can be both fun and interesting to discover in about one
hour e.g. it has been suggested that the next one is on comonads.
* anything else that keeps alive the fun and interest!

Scratchya!

[1] http://www.manning.com/bjarnason/


--
Tony Morris
http://tmorris.net/

Ivan Meredith

unread,
Feb 9, 2013, 10:24:47 PM2/9/13
to scala-fu...@googlegroups.com
Comonads would be great. Infact co-anything sounds good as I have been
struggling with them.
> --
> You received this message because you are subscribed to the Google Groups "scala-functional" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to scala-function...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Karl Roberts

unread,
Feb 9, 2013, 10:26:46 PM2/9/13
to scala-fu...@googlegroups.com
Hi Tony et al.

At a Syd js  night I saw a demo of ShareJS http://sharejs.org/  (code on github) which uses Operational Transformation (OT) to have "eventual consistency"

Anyway, it's pretty cool and many people can live edit the same document or chat with it (try it ;-) )...

As an interesting side note, the guy doing the talk said he originally wrote the OT code in about 250 lines of coffeescript... but then re-wrote it in 550 ish lines of C code because NodeJS processing the back end was too slow he could only do a few thousand OT's a second, so he butchered his algorithm  into C...

It might be interesting to use/subvert ShareJS to re-hack OT in scala in as few lines as possible and still get high performance without resorting to C?

What do you think?

Karl Roberts


Michael Slinn

unread,
Feb 9, 2013, 11:29:34 PM2/9/13
to scala-fu...@googlegroups.com
Etherpad/Titanpad seems similar to Google Hangout with Google Drive, minus the video conferencing and the ability to screen share. There are a lot of apps available for Google Hangout that might prove to be useful. We use this setup frequently for collaboration.

Mike

tperrett

unread,
Feb 9, 2013, 11:29:55 PM2/9/13
to scala-fu...@googlegroups.com
+1 

Tony Morris

unread,
Feb 10, 2013, 2:29:28 AM2/10/13
to scala-fu...@googlegroups.com
Yeah OT is something I have been meaning to look up.

Jon-Anders Teigen

unread,
Feb 10, 2013, 10:30:57 AM2/10/13
to scala-fu...@googlegroups.com

Alois Cochard

unread,
Feb 11, 2013, 5:25:13 AM2/11/13
to scala-fu...@googlegroups.com
This is really a cool concept, I'm looking forward joining one of these sessions! :-)

Tony Morris

unread,
Feb 11, 2013, 5:26:52 AM2/11/13
to scala-fu...@googlegroups.com
Well I am about to head off for a couple of weeks, so there won't be anything until I get back at least.

I don't suppose there are any FPers in Vanuatu or New Caledonia? Would be totally cool if there were!
--
You received this message because you are subscribed to the Google Groups "scala-functional" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-function...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Ricardo Ferreira

unread,
Feb 11, 2013, 5:29:23 AM2/11/13
to scala-fu...@googlegroups.com
Hey Tony,

I had the chance to go through this last session on titanpad. Really nice of you! Thanks!

Whatever platform you choose, please take in consideration some kind of history feature, or something that allows for "playback" of the session.


Regards,

Ricardo

Tony Morris

unread,
Feb 11, 2013, 5:31:27 AM2/11/13
to scala-fu...@googlegroups.com
Yeah great point. It would be very helpful to be able to replay the code with accompanying dialogue. I don't know of any way to do that, as well as keep the code compiling.

Ben James

unread,
Feb 11, 2013, 11:21:12 AM2/11/13
to scala-fu...@googlegroups.com
I suggest "implementing the Game of Life using comonads". (Maybe after the basics of comonads have been covered.)

Ben


On Saturday, 9 February 2013 07:27:56 UTC, Tony Morris wrote:

John Nilsson

unread,
Feb 11, 2013, 1:56:14 PM2/11/13
to scala-fu...@googlegroups.com

In the past I've used gobby for this kind of thing. On the plus side are syntax highlighting and a local copy of the file. The down side is that it requires an installation of gobby for participants.

BR
John

Matthew Pocock

unread,
Feb 11, 2013, 2:42:06 PM2/11/13
to scala-fu...@googlegroups.com

Isn't there a generalisation of this that plays a decent game of go?

Sent from my android - may contain predictive text entertainment.

Reply all
Reply to author
Forward
0 new messages