This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-21
Channels
- # aws (2)
- # bangalore-clj (1)
- # beginners (25)
- # boot (2)
- # cider (176)
- # clara (73)
- # cljs-dev (6)
- # cljsrn (31)
- # clojure (40)
- # clojure-greece (9)
- # clojure-india (1)
- # clojure-italy (14)
- # clojure-nl (9)
- # clojure-russia (4)
- # clojure-uk (156)
- # clojurescript (124)
- # core-async (37)
- # cursive (2)
- # data-science (2)
- # datomic (22)
- # emacs (3)
- # fulcro (32)
- # graphql (6)
- # java (3)
- # lein-figwheel (19)
- # lumo (29)
- # nyc (1)
- # off-topic (9)
- # onyx (15)
- # portkey (12)
- # precept (2)
- # re-frame (15)
- # reagent (10)
- # rum (7)
- # schema (2)
- # shadow-cljs (48)
- # tools-deps (35)
- # yada (1)
morrrrrrrning
Morningtide salutations.
looks like I get to do some serverless and actual code this week \o/
but it's javascript/node probs ๐
cba doing it in python tbh
I got mobbed by squirrels for nuts in a park in Stoke once. It was cute until one of them bit me on the ankle, and when it turned around it noticeable had myx...
Morning
The squirrels mobbed you for "buts"?
๐
They sound real gangsterish
long shot, but... anybody used this? https://github.com/nervous-systems/serverless-cljs-plugin
one of the python devs on that team really wants to learn clojure so maybe I can swing it
otherwise I'll have to just JS it
๐ Often easier to beg forgiveness than to seek permission. Sometimes you just gotta, for the sake of your sanity.
I guess a lot depends upon the environment. No scope for it in my current role.
I don't think anyone's suggesting that a massive project should be started in Clojure without business buy-in. But the joy of microservices, serverless etc is you can probably implement it in Clojure in a day to demonstrate it, then reimplement in another language for comparison (or t'other way around)
As a bonus, a good proof of concept really helps in obtaining buy-in.
Never having had the luxury of a full-time Clojure gig, my incursions have been limited to "one-off" tasks like data migration where no-one's going to have to maintain the code. ๐ My attempts to evangelise haven't gone down too weil - eliciting responses such as "that just makes my eyes bleed!".
the problem with a full-time clj gig is that your next gig isn't full time clj haha
and you're like "why the er, fudge can't I dev in the repl?"
seriously, TDD < RDD by such a huge margin
have you tried using a repl and spec at the same time? Itโs been quite nice iโve found. Create the spec for the function / create the function and try exercising the spec / running the function etc. I think it adds a new layer to RDD
I've done some stuff for spec yeah
although I think I prefer schema at the mo
ah interesting, i used schema a little, but found specโs test data generation to be so useful!
the generation is delivered by another library (I forget which) but Schema uses it for test data generation as well
I think for me Schema makes more instant sense and is easier to reason about
spec is fiddly
ahhh nice nice. Defo agree. I read the spec guide about 10 times and i still havenโt gotten it 100%. I think schema is real easy to pick up tbh.
^ this is the one I think
v nice
give it a try, personally it was simpler than spec... I didn't realise it was avail until after I did my last spec thing and I was kicking myself
I like the sound of HDD, but there's no room for a hammock here.
I do seriously miss the REPL when in exile.
not having a flexible feedback path so tightly coupled to the lang is painful when you're out of land
two samples of the pool of programmers : [A] # of people i have ever managed to convince lisps are a good idea ? 1 maybe 2 [B] # of interviews required to find a single good-fit dev in clojure vs ruby or java: <5 vs >10
I think it's the python paradox maybe
TL;DR - good devs want to go towards FP
anecdotally I hear this is the case with advertising scala jobs to java devs
the most motivated java devs want to crosstrain out of pure java (so I'm told by people building scala teams)
(they said they've found it relatively easy to hire good folks)
rather, part of what makes a good dev is the interest and courage to push their boundaries
> I would disagree with โgood devs want to go towards FPโ oh yeah, I just mean in the original article the hypothesis is good devs want to do python
and this makes them learn new languages that arenโt โdefaultโ for whatever they work with.
I'm just 1:1 equating it to the argument. I know plenty of amazing OO guys
(although I am an FP evangelist because I'm a poor programmer and it makes me better)
thus, if you seek for programmers who are proficient at a non-default language, by definition youโll find someone who self-educated, rather than was spoon-fed and stopped there.
^ absolutely
It manifests in other areas of life too, though not necessarily consistently; you canโt say that if X is non-default then theyโre better than default Yโฆ but they probably had to give it more thought before they made that decision.
> (although I am an FP evangelist because Iโm a poor programmer and it makes me better) Nah ๐ Using tools that make you better is the definition of a good programmer. You see a problem, you create a solution.
> It manifests in other areas of life too, though not necessarily consistently; you canโt say that if X is non-default then theyโre better than default Yโฆ but they probably had to give it more thought before they made that decision. that's interesting... kinda sounds similar to the whole hacker ethic thing I guess
tinkerers gonna tinker
also that david nolen talk
Not sure if itโs about tinkerersโฆ just different interests and having to justify them, or deal with things not being built for you and so not being smooth
one of the juniors I work with recently built her own keyboard, and that's kinda why I suspect she's going to be an amazing engineer
Classic example would be โa woman engineerโ in a field that is male dominated (something people donโt realise is that it can be hard to make friends in your profession if you donโt share default hobbies like playing shooter games and lifting.)
at my place it's 50-50
music is the most common
cycling probably second(?)
Iโm used to being the only woman in the engineering, or if thereโs someone else theyโre in design, manual QA or data science
but for truly universal hobbies I think exercise (yoga, but running/cycling would work as well), and funnily enough theatre
@U79NZHC6A 50/50 is amazing haha
yeah it's really cool
My last job was the only one in my career where I worked on a team that was > 50% female. Current workplace is probably the least diverse I've known.
having the diversity is awesome. You don't realise what you've been missing if you were in a less diverse team before
True - there's definitely a different dynamic.
our community is a bit more friendly I think
I find idea generation and different perspectives to be quite refreshing. Also it reduces laddish culture to some extent, which is always good
I'm a hothead and I know I'm a lot calmer
but also just yeah having a different perspective on things
we're also moderately good on LGBT+ diversity too and that has a huge effect on things like UI work, language and that
I see - itโs interesting that gender influences idea generation. Iโve never seen myself as tending towards different tech solutions because of my gender. Makes me want to do a study ๐
I think ideas/perspective/life experiences can potentially give you different approaches to problem solving
IME itโs more seniority (been there, done that, seen the side-effects, are we sure we want to do that?) but maybe?
@U79NZHC6A I'm sure you've told me before, but where are you working?
I find it hard to draw any inference from my experience on a mainly female team - but then we were disadvantaged by not being co-located (London and Manchester). However, I concur with @U79NZHC6A - a diverse team definitely raises awareness of (e.g.) just how un-inclusive many web forms are.
@U0525KG62 Co-op Digital in Manchester
we're I think 18 permies, 9 identifying as female and two new joiners (both female juniors) incoming in the next couple of months
yeah I mean long term she's probably going to want to go somewhere that's a bit more challenging. We only have two speeds - low hanging/easy fruit and really really really hard legacy architecture
so there's a lot of fresh faces and enthusiasm in the web camp (former) and a lot of grey hair in the latter tho
Found one of my first ever computer programs the other day. Damned if I can tell what it did - it's on a punched tape. ๐ข
oh wow - what system was it for @rhinocratic ? i think i missed out on the punched card era by a couple of years - my first professional programs were all entered on VT320 amberscreen terminals attached to a DEC mini (cross-compiling to 186), but consequently no souvenirs
I honestly can't remember - it was owned by Burnley College, and our secondary school computer club was allowed occasional use of it (and also the one at Blackburn College, which used cards rather than tape). I think we ran BASIC code on the Burnley machine, but on the Blackburn one we were mainly supplying parameters to pre-existing programs, which some poor soul (possibly a student) would have to transfer onto cards. There would then be a wait of a few weeks before receiving a printout saying that the job had fallen over. It lacked the immediacy of the REPL, for sure!
Things improved a lot when I saved up enough for a Microtan 65. Think it's still gathering dust in the attic. :thinking_face:
started working on a project this week that I've been trying to get momentum on for the past month or so.
previously been using luminus or some other template, and just gotten lost in mounds of everything.
this week, just did lein new myproject
and oh my so much easier. I actually know what stuff does now!
@xlevus That's why I always recommend beginners in Clojure don't just lein new luminus myapp
and try to build an end-to-end web app -- these large framework-y library collections have so much "magic" interacting that even if a beginner successfully gets a web app running, they often have no idea how/why it works.
Start from the basics: an empty app project, add Ring as a dependency and get a simple "Hello, World!" page served, add Compojure or Bidi and get some simple routes working, add java.jdbc
and a DB driver and get some simple CRUD stuff working. Then maybe go through a modern ClojureScript "getting started" tutorial and ramp up with cljs too.
And only at that point start looking at the all-in-one libraries/frameworks -- when you understand the basics and can see what, say, Luminus adds to that model.
(but of course "everyone" comes to Clojure(Script) and wants to build an SPA immediately, because they know Ruby on Rails or whatever makes web dev "easy" -- rather than "simple")
yeah, I built a rough idea of how Luminus was held together, and how things worked. but i didn't touch every bit of it all the time, and couldn't keep it all in the noggin at once.
still, pretty much going from 0 to luminus, with a few steps in the process and skipping the 'fundamentals', but eh. it's either that, or just do it in my mother tongue and not learn Clojure.
I think building from scratch once is very important, the basics are entirely skipped when people do that. Then they have no idea why nothing works, or where to look to find out more. They're at the top of their jenga tower, and the foundations are invisible.
i dunno, when you start out with rails you don't (i didn't) have much idea of what works where and how, and yet it's still a pretty good experience
i did quite a lot of ag
on my first few rails projects tho
@mccraigmccraig Rails is exactly the "magic" I'm criticizing here. Sure, you can get simple stuff up and running quickly -- it's Easy(tm) -- but as soon as you need to do something not on the happy path, there's a huge mountain to climb in understanding parts of Rails. It's not Simple(tm).
I think a part of the problem is Luminus isn't a framework. It's a template. You need to read the documentation of 50 different micro-libraries and work out how the lego pegs fit together or which bits of tape hold them together instead. I think Clojure could do with a more structured framework to hide a lot of that away. Even if it's mapping calls in places. Sure it's not idiomatic, but it'd bring some 'legitimacy' (and legitimacy being, how low is the bar to entry, which imo is pretty high at the moment).
sure, there's lots of magic in rails, but i don't think that's bad per se: as magic goes, rails is quite easy to explore, and quite easy to change (until you get all tangled up in impossible to follow monkey patches, but that's more ruby's fault than rails)
The person we brought up to speed was initially working on etl pipelines so you could see all the moving parts
I find that compojure-api is a good mini web stack for showing new people as it's so simple but tbh I've had zero luck onboarding folk to clj after much trying
@xlevus i did an ORM thing too a while back... still very much in use
Jenga was a very conscious analogy I chose. There's lots of parts. You either build a tower once to get a rough idea of how it fits together, or you start at the top and try to flap about.
is not an ORM but I liked a lot the honeysql
project, is very helpful do some dynamic queries
yeah, my project sits on top of honeysql. Originally I was generating sql by hand but oh lord. Honeysql just does quoting so much better. also, much easier to extend
At an F# talk and the enthusiasm for the lang vs actual jobs situation seems even more acute than
At least with F# you've got some sort of Segue into it. "Oh yeah we do .Net stuff... I guess you can do that in F#, it'll work with our existing stuff" vs Clojure "uwotm8? Brackets?"
Yeah the devs here seem to say they'll spike something in F# and then it gets rewritten