clojure-europe

For people in Europe... or elsewhere... UGT https://indieweb.org/Universal_Greeting_Time
kardan 2021-02-26T04:54:48.150Z

Good morning

RAMart 2021-02-26T06:06:02.150300Z

Hi everyone!

mpenet 2021-02-26T06:47:07.150400Z

Very happy with google nest wifi. It just works and requires no fiddling

👍 1
agigao 2021-02-26T07:05:15.150800Z

Morning!

agigao 2021-02-26T07:05:50.151400Z

Is there a way to share/bulk export personal 4clojure solutions from the web-page?

djm 2021-02-26T07:08:13.151700Z

👋

dharrigan 2021-02-26T07:15:38.151900Z

Morning!

mccraigmccraig 2021-02-26T07:24:50.152100Z

måning!

thomas 2021-02-26T08:30:33.152500Z

morning

mpenet 2021-02-26T08:31:12.152800Z

hola

javahippie 2021-02-26T08:33:07.153100Z

Morning!

borkdude 2021-02-26T09:01:52.153300Z

Morning!

2021-02-26T09:25:00.153500Z

morning

jkxyz 2021-02-26T09:46:57.153700Z

Good morning!

agigao 2021-02-26T10:26:51.155200Z

How do you tolerate w/code or not well implemented features by junior devs that management want to take it into production without a proper code review?

thomas 2021-02-26T10:36:38.156800Z

difficult one.... sometimes shipping it and fixing it later might be the right thing to do... but most of the time it isn't. I guess the best advice that I can give you is that management can at least make informed decision. So let them know.

javahippie 2021-02-26T10:37:49.157300Z

Is it “technical debt” bad, or “won’t work properly” bad?

agigao 2021-02-26T11:09:45.158100Z

“Not sure if it works properly” bad 😆

agigao 2021-02-26T11:10:44.159100Z

Yup, informed the management and merged/deployed.

agigao 2021-02-26T11:10:50.159300Z

Thanks for pointers!

borkdude 2021-02-26T11:11:02.159500Z

"Testing in production"

agigao 2021-02-26T11:11:17.159800Z

Yup))

dharrigan 2021-02-26T11:12:13.160600Z

We do that all the time

dharrigan 2021-02-26T11:12:21.160900Z

Our test environment is our production environment

dharrigan 2021-02-26T11:12:31.161300Z

Simply due to the relentless push to deliver

RAMart 2021-02-26T11:12:36.161400Z

@chokheli is this software running in a nuclear plant? And... where is it located? 😁

1
RAMart 2021-02-26T11:13:59.162400Z

Now your Avatar makes sense. 😜

😆 2
dharrigan 2021-02-26T11:14:28.163700Z

I've had that for years and years 🙂

djm 2021-02-26T11:14:34.164100Z

We have a relentless push to deliver, combined with a very slow release/QA process

djm 2021-02-26T11:14:41.164400Z

Worst of both world?

dharrigan 2021-02-26T11:14:50.164800Z

It's a perfect example of manic

javahippie 2021-02-26T11:15:11.165400Z

I sometimes wonder if we as DEVs are too quick to judge sometimes. My current project is going on for 2,5 years now, and the mood in the DEV team is bad. Pressure is quite high, we deliver all the features, but not “properly”, there could be more tests, could be more docs, more quality overall. But … the users love the software, we are in time and budget, can react to quick changes… What exactly is so bad? Sure, I’m fixing performance bugs now for 4 weeks, but the software is usable and running

👍 1
dharrigan 2021-02-26T11:15:49.166Z

Indeed. The presure is coming from externals - the C-levels, the project managers, not from internal pressure.

dharrigan 2021-02-26T11:16:24.166500Z

It's the relentless drive to deliver new things, new features, new new new new - when all the customer wants is just working software.

dharrigan 2021-02-26T11:16:44.167Z

However, gotta justify those business lunches somehow!

agigao 2021-02-26T11:17:32.167600Z

@ramart not yet, most likely soon it’ll be deployed into broadcasting company in the US soil :D

dharrigan 2021-02-26T11:17:55.168200Z

Something that I recall from years ago, which I'm sure most people here can relate to, is that we didn't get into programming to increase the bottom line.

dharrigan 2021-02-26T11:18:10.168500Z

We got into programming because we love doing it.

mpenet 2021-02-26T11:18:28.168800Z

"Featuritis"

mpenet 2021-02-26T11:18:56.169Z

> "term used to describe https://en.wikipedia.org/wiki/software which over-emphasizes new features to the detriment of other design goals, such as simplicity, compactness, stability, or https://en.wikipedia.org/wiki/software_bug reduction."

1
mpenet 2021-02-26T11:19:18.169500Z

that sums it up quite well

mpenet 2021-02-26T11:20:02.170500Z

I guess that's where having skilled managers/higher ups matters

2021-02-26T11:20:02.170600Z

speaking as someone trapped on both sides, it depends a bit on what is stopping sales from happening

mpenet 2021-02-26T11:20:10.170800Z

true

borkdude 2021-02-26T11:21:10.171900Z

I think devs can also help suggesting alternatives to "more features" like offering "decomplected" features instead, which do not always require you to build more

2021-02-26T11:22:18.172700Z

the problem with building a product is that your knowledge is always partial, so making decisions is difficult

dharrigan 2021-02-26T11:23:26.173400Z

I often find however that very often programmers know the business much much better than the customers (internally/externally) because we write the software that makes the business work!

2021-02-26T11:24:57.173800Z

brb

dharrigan 2021-02-26T11:25:21.174300Z

I read this the other day <https://www.bbc.co.uk/news/business-56130187> about a boss who has no HR or IT departments (he runs a uk start-up for energy).

dharrigan 2021-02-26T11:27:17.175700Z

I was very doubtful that there is no IT department - it may be outsourced for sure, but I'm very doubtful that a company in a regulated industry, has no IT support.

javahippie 2021-02-26T11:27:23.175800Z

That’s why many companies were successful with moving the developer teams closer to the customers

kardan 2021-02-26T11:34:02.177700Z

Personally I don’t love PR reviews. To me it’s just a symptom of lack of quality gates and/or enough communication when the feature was build. But that is my opinionated 2 cents 🙂 (saying this as someone who use PR reviews because of the same reasons…)

javahippie 2021-02-26T11:37:57.178500Z

I also don’t like PR Reviews, I also advocate for trunk-based development and against feature branches in all smaller teams

dharrigan 2021-02-26T11:40:34.179200Z

I like developing on master/main* (pick your perference). Branches, unless carefully curated, have a strong tendancy to be long lived.

javahippie 2021-02-26T11:41:49.179700Z

Had many discussions about this. If they get stuck, I hit them over the head with Martin Fowler 😄 https://martinfowler.com/articles/branching-patterns.html

javahippie 2021-02-26T11:43:30.180600Z

Once had a three day consulting-gig to create a new branching strategy for a shop switching from “Code on Network Drive” to Git. They were bummed when the strategy was “You are only 5 people, push to main” (of course, for releasing etc. there was a lot more defined, it was not only that)

mpenet 2021-02-26T12:05:29.180900Z

I love pr reviews!

mpenet 2021-02-26T12:05:47.181300Z

so many things learned/shared during these, it's crazy valuable imho

dharrigan 2021-02-26T12:06:16.181700Z

Unforutnately, at our place, we have a tendancy to bikeshed

dharrigan 2021-02-26T12:07:00.182300Z

People often loose sight of the goal and too often focus on the minutiae

mpenet 2021-02-26T12:07:44.183200Z

some stuff can be ignored, personally i just prefix useless stuff with nit: ...

mpenet 2021-02-26T12:07:53.183600Z

some people can value these tips, some don't

mpenet 2021-02-26T12:08:00.183900Z

it's all good

mpenet 2021-02-26T12:08:05.184300Z

not blocking in any case

javahippie 2021-02-26T12:08:08.184400Z

Dropping PR Reviews does not necessarily mean dropping code reviews altogether!

dharrigan 2021-02-26T12:08:17.184600Z

It often becomes personal too

dharrigan 2021-02-26T12:08:31.185100Z

Perhaps there's merit in a totally ML approach?

dharrigan 2021-02-26T12:08:37.185400Z

dispassionate

dharrigan 2021-02-26T12:08:56.185800Z

perhaps we need a ML version of clj-kondo 🙂

borkdude 2021-02-26T12:09:19.186400Z

Just make one microservice per person, solution to everything

mpenet 2021-02-26T12:09:23.186600Z

ML as in machine learning?

mpenet 2021-02-26T12:09:49.186900Z

or the language

borkdude 2021-02-26T12:10:08.187400Z

I think he means machine learning.

mpenet 2021-02-26T12:10:28.187900Z

some stuff gets quite complicated, I wouldn't trust today ml with that, especially some obscure domain rules

mpenet 2021-02-26T12:10:36.188100Z

(at least today)

mpenet 2021-02-26T12:10:56.188900Z

it's moving the problem to the specification part, which has to be good anyway, but by nature never is 100% complete

mpenet 2021-02-26T12:11:09.189400Z

things tend to change over time heh

mpenet 2021-02-26T12:12:30.190Z

CodeScene is doing interesting work around some of these problems, but I don't think they're into automating code reviews

borkdude 2021-02-26T12:13:26.190500Z

At work we do PRs if the dev in question feels like they want a PR review. Else it's just commit to the dev branch

borkdude 2021-02-26T12:14:12.191600Z

Or for new people, maybe in the first few weeks, we do PRs to get them started

mpenet 2021-02-26T12:14:22.191800Z

we are relatively strict here: 2 approvals and approvers also have some ownership on the code reviewed. But there are exceptions (bump deps & trivial stuff)

dharrigan 2021-02-26T12:14:42.192600Z

Machine Learning

borkdude 2021-02-26T12:14:51.192900Z

@mpenet yeah, it depends, you are working on critical infra probably

ericdallo 2021-02-26T12:15:12.193300Z

at Nubank we ask for at least 1 approval, no matter the project/dev

2
borkdude 2021-02-26T12:15:33.193800Z

Maybe when we have bigger teams we'll have to start doing this

javahippie 2021-02-26T12:16:13.195200Z

Does anybody do pair programming? Might be an alternative to code reviews

mpenet 2021-02-26T12:16:23.195500Z

@borkdude kinda, I mean you can wreak havoc if you are careless, it's true for any directly client facing/used service, especially when money/owned resources/privacy is involved

ericdallo 2021-02-26T12:16:43.195900Z

yes, even so someone not from the pair needs to review the code

dharrigan 2021-02-26T12:16:50.196100Z

bbl - lunchipoos

javahippie 2021-02-26T12:17:02.196500Z

@ericdallo Wow, that’s strict

borkdude 2021-02-26T12:17:22.197400Z

We have good QA before everything is deployed to prod, it has at least several people looking at it (from a user standpoint)

dharrigan 2021-02-26T12:17:22.197500Z

pair programming - nice in theory, terrible in practice.

ericdallo 2021-02-26T12:17:40.198300Z

IMO it works very well here, the reviews are very good

dharrigan 2021-02-26T12:17:42.198600Z

I can expound later - but right now, the offspring is demanding to be fed

mpenet 2021-02-26T12:17:58.199100Z

depends with who, I am not a fan but it can work if there's some synergy with the other set of hands/brain

javahippie 2021-02-26T12:18:39.200Z

Talked to a guy doing mob programming, “Pass the keyboard” on with 4-5 devs. Every commit (after test suites) at their project goes directly to Prod. Super uneasy feeling at first, but they say that their quality actually improved

mpenet 2021-02-26T12:20:18.201300Z

we do something else, it's strictly something I personally do with another dev at work, we basically stay on the same meet all day and share issues/problems when they arise and sometime brainstorm on solutions on the spot, but no pairing involved.

mpenet 2021-02-26T12:20:40.201700Z

not policy or anything, I just like to have a non-rubbery rubber-duck

mpenet 2021-02-26T12:20:48.202Z

and same for him I guess

borkdude 2021-02-26T12:20:54.202200Z

@mpenet Does this mean you have something like Zoom open all day?

mpenet 2021-02-26T12:20:58.202400Z

meet

borkdude 2021-02-26T12:21:05.202700Z

is this something like Zoom?

mpenet 2021-02-26T12:21:10.202900Z

we just recycle our daily meet for that

mpenet 2021-02-26T12:21:12.203100Z

google meet

borkdude 2021-02-26T12:21:21.203400Z

I don't know what this is, so just say yes or no ;)

mpenet 2021-02-26T12:21:33.203600Z

the zoom equivalent from google

mpenet 2021-02-26T12:21:47.204Z

https://meet.google.com/

borkdude 2021-02-26T12:21:57.204500Z

So you're on a video call all day long? Gosh that would seem tiring to me

mpenet 2021-02-26T12:21:57.204600Z

so yeah the same

mpenet 2021-02-26T12:22:06.204800Z

nan, just audio, we kill video

borkdude 2021-02-26T12:22:15.205Z

still

mpenet 2021-02-26T12:22:31.205400Z

it's muted most of the time but we do use it quite a bit during the day

borkdude 2021-02-26T12:22:58.206100Z

if you're working on the same part of the code that's maybe a nice idea

mpenet 2021-02-26T12:22:59.206200Z

makes you have an office feeling without the bad parts imho. again it's something quite personal to like or not I think

mpenet 2021-02-26T12:23:08.206400Z

yes quite often it's the case

kardan 2021-02-26T12:55:08.207500Z

We have done pair programming at times this and I think that is why I don’t enjoy PR reviews. To me, doing pair programming puts the second pair of eyes in the moment were the most important decisions are made. Thinks like architecture etc. Things that is often too late to point out when work is done and packaged in a PR review and small bike shead items are changes when value could already have been in front of users. But I think there is no fixed solution. All depends on context or the situation 🤷

2021-02-26T13:13:03.207900Z

I like PRs b/c it means @mpenet reviews my code

💯 2
borkdude 2021-02-26T13:15:19.208400Z

Are you working at the same company?

2021-02-26T13:17:37.208800Z

nope, it is one of the joys of producing open source 🙂

borkdude 2021-02-26T13:18:24.209Z

🎉

2021-02-26T13:21:05.210200Z

I've had really good mob programming experiences. Mixed pair programming experiences (some amazing, some awful, some meh)

2021-02-26T13:21:25.210700Z

mobbing/pairing is very tiring. I'd never do it for more than 4hrs in a day

1
2021-02-26T13:22:50.211800Z

I like branches as I commit and push my WIP to github as I go and then do an interactive rebase and force push before asking for a review. It isn't down to a single commit, but preferrably one that tells a good story of what I was trying to do

2021-02-26T13:24:22.212300Z

London Clojure Dojos (inspired by London Python Dojos) were either one big or multiple small mobs

2021-02-26T13:24:26.212500Z

with a demo at the end

2021-02-26T13:24:52.212800Z

I often do work on my own tho

2021-02-26T13:30:59.213300Z

re: bad temper in code reviews or pairing - that is really an independent thing that should probably be tackled

2021-02-26T13:31:58.213700Z

same w/bikeshedding. Just get right at what is going on there and see what the issue is

orestis 2021-02-26T14:18:26.217Z

I enjoyed pair programming but couldn’t make it work in async context. I’m trying to take the best from that though - I encourage everyone to do small commits and PRs, and ask for feedback early and often. Again, the async context means that perhaps you won’t get feedback when you want it but much better than waiting for a PR

borkdude 2021-02-26T14:19:03.217500Z

If I need pair programming, I just use partition. https://borkdude.github.io/re-find.web/?args=%5B1%202%203%204%5D%202&amp;ret=%5B%5B1%202%5D%20%5B3%204%5D%5D&amp;more=true

😜 3
2021-02-26T14:19:07.217700Z

async and pairing don't really work

mccraigmccraig 2021-02-26T15:11:43.220Z

so my favourite BI tool (chartio) just got acquired and is shuttering... have any of y'all had good experiences with any others ? we use it for redshift queries serving embedded dashboards for lots of end-users

2021-02-26T15:29:17.220400Z

ouch

2021-02-26T15:29:34.220700Z

metabase? not used it tho

anthony-galea 2021-02-26T15:35:09.222300Z

I've recently used metabase with postgres and it has worked quite well. Never used redshift but according to the metabase docs it is supported: https://www.metabase.com/docs/latest/faq/setup/which-databases-does-metabase-support.html

thomas 2021-02-26T15:54:57.222900Z

we used metabase as well. works really well

mccraigmccraig 2021-02-26T16:19:01.225Z

nice - will metabase do multi-database queries - e.g. join a redshift table to a google-sheets table ? not a dealbreaker, but chartio's ability to do this is really convenient