admin-announcements

Announcements from the Clojurians Admin Team (@U11BV7MTK @U077BEWNQ @U050TNB9F @U0ETXRFEW @U04V70XH6 @U8MJBRSR5 and others)
grounded_sage 2015-10-21T01:57:26.000450Z

does anyone know how I can do % keyframes with Garden?

jimmy 2015-10-21T09:40:46.000456Z

common_creative: you can use a map with string key like this { "5%" { }}

grounded_sage 2015-10-21T14:04:57.000458Z

Thanks @nxqd I am in bed now but will give this a spin tomorrow.

ul 2015-10-21T15:13:55.000462Z

Anybody from Montenegro here? I will visit your country next month, will be happy to meet and share experience!

sventechie 2015-10-21T15:24:21.000463Z

I want to make the case for a switch to Clojure in my small company. I need to see some info about average transition time for Ruby developers (or in general). I don’t see any blog posts in my initial searches. Any tips?

mpenet 2015-10-21T15:27:08.000464Z

it depends: if they are "on their own" it will take a short amount of time for them to get started, but they will produce poor quality/un-idiomatic code

mpenet 2015-10-21T15:27:30.000465Z

try to have one experienced person do code reviews and/or pair prog.

mpenet 2015-10-21T15:27:43.000466Z

it's pretty fast then

mpenet 2015-10-21T15:28:30.000467Z

it also depends if they were exposed to a functional language before, and so on. It's hard to give even an average

sventechie 2015-10-21T15:41:48.000468Z

Yeah, I’ve been working in Clojure for a while, so I hope to help them transition. I’m estimating 6 weeks to get comfortable and 80%+ productive. I suppose the best thing is to start writing code and modifying existing idiomatic code.

sventechie 2015-10-21T15:43:06.000469Z

But the increased amount of functionality I was able to produce far outweighed my loss in productivity, even after just a couple of weeks.

mdaines 2015-10-21T15:50:57.000470Z

And how small is small (development team)? Something to consider/look into is the randori style, where you have the whole team working together for at least a couple hours driving the development of something with you acting as the expert when they have questions.

mdaines 2015-10-21T15:51:19.000472Z

And, of course, is everyone already on board with the idea?

mpenet 2015-10-21T15:53:41.000473Z

sventechie: yes, get them to read/modify good quality code first, then one thing that worked for ppl around me was to give them small scope projects to work on their own with frequent code reviews. this way to get exposed to every aspect of the ecosystem (lein, java interop, ring, etc) and learn as they go.

sventechie 2015-10-21T15:59:59.000474Z

@mdaines: Re: size, we currently have two devs that are within the company and a few consulting. As for them being on board with it, as I said before I’m looking to make the case for it, so I’m still in the initial stages. Thanks for the randori development idea — I had not heard of it before.

shaun-mahood 2015-10-21T16:09:13.000475Z

@sventechie: Any front end development? Clojurescript with Figwheel and Devcards pretty much sells itself once you use it for any amount of time.

colin.yates 2015-10-21T16:13:27.000476Z

@sventechie: I find the answer is far more about the developers ability to change their thinking than it is about changing the tooling.. If they can comfortably think about ‘immutable data going through a sequence of transformations’, map, reduce, filter etc. then they are off to a good start. On the other hand if they view the world through nouns then that will be hard work.

colin.yates 2015-10-21T16:14:26.000477Z

I would also be careful about showing them too much idiomatic Clojure as to be blunt it can be very opaque until fundamentals are understood.

colin.yates 2015-10-21T16:15:56.000478Z

I have experienced three above-average devs pick up Clojure like a fish takes to water, but one of them was a PhD physics guy, another was a PhD Comp Sci guy and the third shall not be named :simple_smile:. I have also failed miserably to get other devs sufficiently capable of wielding Clojure.

sventechie 2015-10-21T16:17:34.000479Z

I think Rubyists writing modern idiomatic Rails apps should have some head start on some concepts. But you’re right it is the thinking that is hardest. One big appeal of Clojure is the lack of complicated syntax.

sventechie 2015-10-21T16:18:53.000480Z

I certainly found some good simple idiomatic Clojure early on. I don’t think partials and higher order functions are necessary to a simple codebase, for instance (at least not many of them). And macros are also quite tricky.

sventechie 2015-10-21T16:19:25.000481Z

I’m not sure about the frontend part — I found Clojurescript a harder transition, although I love the devcards and fighwheel.

colin.yates 2015-10-21T16:19:30.000482Z

yeah, run away from macros :simple_smile:.

sarcilav 2015-10-21T16:20:08.000483Z

my two cents here, I’ve been teaching a couple of friends clojure (and lfe), and the ones that comes from rails/ruby have found land of lisp a good book to understand the basics

sarcilav 2015-10-21T16:20:41.000484Z

with the plus that land of lisp is ‘light' to read

sventechie 2015-10-21T16:21:26.000485Z

Thanks, I haven’t seen that one — here’s the Clojure code: https://github.com/quux00/land-of-lisp-in-clojure

shaun-mahood 2015-10-21T16:26:38.000487Z

@sventechie: Interesting, I've found it a lot easier to transition to clojurescript than clojure - I started learning right as things started really going well in cljs-land, though, so that may have something to do with it.

sventechie 2015-10-21T16:27:33.000488Z

@shaun-mahood: Did you use Om/Reagent right away? Had you been using Angular?

shaun-mahood 2015-10-21T16:31:36.000489Z

@sventechie: I found Om pretty difficult to get started, jumped into Reagent with no problem though using re-frame to help structure the app

mcgivernsa 2015-10-21T16:32:50.000490Z

I also found cljs easier than clj, but I think the crucial part of that was knowing JS + the browser environment better than Java + JVM

shaun-mahood 2015-10-21T16:35:38.000491Z

Built out one app, then rebuilt it, now I'm pretty comfortable with CLJS. Still have issues with JS interop, can't quite wrap my head around it. I'm more satisfied with my front end code than my back end code in Clojure, which is a super weird state to be in. I've never used Angular for real, I couldn't find a JS framework that I was willing to commit to when I could still get everything done reasonably quickly and well using JS and jQuery. I also develop in Windows and had no Java or JVM experience when I started, which added a pretty big overhead to Clojure but almost no extra issues to CLJS.

shaun-mahood 2015-10-21T16:40:45.000492Z

@sventechie: I also had no functional programming experience, but was always a little leery to jump full steam into OO and was uncomfortable with the trade offs it requires - my code has always been a bit non-idiomatic and has a lot of carry over from assembly and C programming (which makes me feel way, way older than I am). The Clojure syntax and approach really just sort of fit into my brain, at least the basic parts of it, and that's even considering I absolutely hated working in LISP when I've had to in the past.

wambat 2015-10-21T16:58:33.000493Z

Hi guys! I've made a simple 3d game demo in Clojure and JME3, built on library which tries to mimic Om for managing scenegraph. https://www.youtube.com/watch?v=_HzWjtlabCQ . GH links are in description, sorry for broken English.

👍 1
2015-10-21T17:36:37.000496Z

I'm struggling to find if there's a practical use for core.async that's not a vending machine or kitchen-related example. Would this be an example of a real world use case: A form is entered by the user on a web form, the data from the form will populate 10 database tables after passing through several dozen transformations/computations on that data that was entered; the user should be able to submit and then have the form cleared for another entry to begin. So the database work and computation is sent off for asynchronous processing. The user can start entering a new form. If that's a good use, why not just use a simple future?

dnolen 2015-10-21T17:40:18.000497Z

@wambat: looks interesting, will have to watch that more closely later

shaun-mahood 2015-10-21T17:48:28.000498Z

@tom: It seems to me that core.async is used pretty often in other libraries - re-frame, devcards, and figwheel all use it. All of the things I initially thought I would use core.async have so far been handled by another library that uses core.async under the hood.

donaldball 2015-10-21T17:57:33.000499Z

core.async could allow you to control the level of concurrency you allow, providing back pressure to the client in the case of too much work, and might allow for cleaner shutdown behavior if you can’t wait for the futures to resolve

2015-10-21T19:01:30.000502Z

@wambat: Nice :simple_smile: nice Emacs status bar also

wambat 2015-10-21T20:36:00.000503Z

@nha: The status bar is spacemacs' default.

2015-10-21T20:36:22.000504Z

@wambat: ah ok thanks

dave 2015-10-21T23:15:16.000510Z

it just occurred to me that i never posted this here -- it's a music programming language i've been developing, implemented in clojure. contributions would be super welcome, if anyone here is interested in hacking on music-related clojure projects! http://github.com/alda-lang/alda

👍 5
dave 2015-10-21T23:15:49.000512Z

we also have a channel: #C0AGEL9L1