Fork me on GitHub
#clojure-uk
<
2017-10-03
>
thomas06:10:20

moin moin morning

jonpither07:10:55

tube strike to look forward to on thurs

jonpither08:10:05

really hoping I can avoid going into London that day

yogidevbear08:10:48

Sean shared this link yesterday. I'd be very interested to hear opinions from anyone that is using / has used NoSQL a fair amount in relation to what's discussed in the blog post

mccraigmccraig09:10:23

i've been using nosql stores a lot for the past few years, alongside sql - ES, cassandra, postgresql. they each have their uses

mccraigmccraig09:10:35

ES is great if all your queries are going to require you to do full-table scans of middlesized-data very quickly

mccraigmccraig09:10:41

cassandra is great if you want to avoid storage and access patterns which won't scale linearly, but it's really like the table-storage engine of a database without a sql interpreter and query planner on top

mccraigmccraig09:10:29

postgresql is great for lots of things

mccraigmccraig09:10:35

but whatever db you use, you are probably still going to need to have some understanding of what's going on behind the scenes if you are going to push the db hard

mccraigmccraig09:10:52

and i definitely don't feel a pressing need to use SQL for everything

mccraigmccraig09:10:29

but it is nice for analytic queries - being able to run SparkSQL (and tableau) on top of cassandra is ace

otfrom09:10:02

@mccraigmccraig are you using flambo/sparkling or powderkeg?

glenjamin09:10:26

i think SQL on RDBMS is a sensible default

glenjamin09:10:35

other stuff is usually optimised for a certain use-case

mccraigmccraig09:10:37

@otfrom we have a little bit of sparkling, but i'm going to throw it all away soon - if you have a clj SparkSQL client recommendation i'm all:ear:s - our greatest use of SparkSQL is via tableau for ad-hoc analytics of stuff in cassandra

otfrom09:10:13

hooking spark to all the odbc/jdbc things is a nice thing to be able to do

otfrom09:10:35

is all of your sparkling going to sparksql?

mccraigmccraig09:10:53

i won't use jdbc 'cos it's all blocking and everything

mccraigmccraig09:10:44

yeah, we don't need to do anything that can't be expressed more compactly as sparksql, and the ops story looks a lot easier with sparksql

otfrom09:10:46

I've got some spark that does a fair bit of parsing of lines and then some clojure.math.combinatorics/combinations which doesn't feel like a great fit for sparksql

otfrom09:10:01

tableau is going to be using jdbc tho isn't it?

mccraigmccraig09:10:45

ah, i misunderstood you, yeah, tableau is using odbc or jdbc for spark - i just won't write code against jdbc

dominicm09:10:54

I thought tableau had native support for spark now

dominicm09:10:49

oh, but under the covers it must be using jdbc or something you mean?

dominicm09:10:33

Uses ODBC under the covers based on errors people have seen

mccraigmccraig09:10:55

could well do @dominicm - difficult to know what's going on in the background - i just give it a port number 🙂 - i know what it does ends up as creating SparkSQL jobs, 'cos i can see those in the console, and iirc it uses the spark-sql-thriftserver, but what's in front of that i have no idea

mccraigmccraig09:10:19

once you've trawled through all the guides which fail to explain how to set it up correctly and found one which does explain it just does what it says on the tin - and is excellent

maleghast11:10:16

Does anyone have a solid recommendation for an Emacs setup that is as friendly / lovely as Emacs Live, where that suggestion is not: 1. Spacemacs 2. “You should really put your own Emacs setup together…” please?

dominicm11:10:48

Actually, can I add 3: Use Vim

jonpither11:10:00

I also vote 2

guy11:10:14

Theres always https://www.braveclojure.com/basic-emacs/ if you can't find anything else

guy11:10:25

hopefully thats helpful

dominicm11:10:27

https://github.com/technomancy/emacs-starter-kit/ is something that might be a good place to start. It's not Emacs Live though.

dominicm11:10:33

Why are you moving on from Emacs Live?

jonpither11:10:54

prelude is great

dominicm11:10:53

Prelude is probably what you want

mccraigmccraig11:10:06

@maleghast what don't you like about spacemacs ?

maleghast11:10:53

@dominicm - Yes, well, if I had time and the inclination I might indeed considering “going vim”, but I need a quick fix,..

maleghast11:10:24

@mccraigmccraig - I tried it, and I was not thrilled - for one thing it’s default appears to be EvilMode

maleghast11:10:50

@jonpither - What’s prelude..?

mccraigmccraig11:10:50

@maleghast spacemacs has "holy mode" - you can choose it on install these days - regular emacs keybindings - no need to go vim

maleghast11:10:02

(I realise that I can google it)

maleghast11:10:15

@mccraigmccraig - Oh… Well that might be ok in that case…

dominicm11:10:22

@maleghast prelude is bbatsov's emacs setup

mccraigmccraig11:10:54

i used use prelude - that was ok too - i stuck with spacemacs after trying it for a bit tho

maleghast11:10:00

@dominicm - Ah I see, I will go have a read of the Github page that I assume I will find if I Google “Emacs setup prelude” in that case

maleghast11:10:27

@jonpither - Ooh, thanks will have a look at that too.

maleghast11:10:14

One day I will set aside some time to build up my own .emacs.d based on my specific preferences, but I need to remain productive right now__ and Emacs Live is throwing errors on startup that I don’t understand, but that makes me nervous…

maleghast11:10:44

and Sam does not appear to have committed anything for about a year, so I am not sure whether he’s planning to update it any time soon…

maleghast11:10:35

@jonpither - I will have a look at Hakan’s as well, I suppose if I had really__ thought about it I would have gone to his github… 😉

maleghast11:10:53

Bodil’s is, I agree, bound to be good value too - I will go look…

maleghast11:10:59

Thx very much all 🙂

jonpither11:10:13

@maleghast Hakan's is nice, as it's simple and minimalist

jonpither11:10:31

creating your own emacs config is an immense amount of fun

maleghast12:10:20

I think I may well go with Hakan’s, but I will pay with his, Prelude and maybe even Spacemacs (since @mccraigmccraig has told me about “holy mode”) over the next couple of days and make a decision about which one to use until I can put my own together… 🙂

maleghast12:10:27

Thanks again 🙂

conan13:10:47

All great suggestions, but I say go for Intellij, preferably on Windows. I realise this is an entirely unhelpful suggestion, but on the offchance you consider it, I keep notes (mainly for myself) on how to do it here: http://conan.is/clojure/clojurescript/windows/2015/10/05/clojure-on-windows.html

Rachel Westmacott13:10:21

one of the great things about intellij is that you don’t need to configure it out of the box

jonpither13:10:18

Honestly & contentiously. I suspect there's a real benefit in going with a lower level tool like Emacs/VIM. You feel closer to the code, less stuff advertising at you to be used. When it's harder and less encouraged to open and navigate lots of files, I think people might spend time making the fewer namespaces they want to work with better quality and easier to grok.

jonpither13:10:28

^ all very unscientific, just a feeling

glenjamin13:10:04

emacs is a lower level tool than intellij?

minimal13:10:27

funnily enough I moved to emacs from Komodo years ago because it could handle having 100s of open files way better than a GUI IDE

jonpither13:10:27

typically is, yeah. Older and faster 🙂

glenjamin13:10:36

older and faster, sure

glenjamin13:10:44

but it probably has at least as many features

jonpither13:10:13

sure, but Emacs modes are more secondary to the raw editing experience

glenjamin13:10:44

i always thought they were the selling point?

guy13:10:55

I would argue, whatever tool makes you the most productive is the best one.

jonpither13:10:01

my point is that Emacs modes don't detract from the core editing experience, the way that features tend to in the heavier IDEs. I.e. all the buttons and menus, side-panels etc do in Idea/Eclipse

jonpither13:10:07

@guy I am testing the waters with a general point, but I don't disagree with you there 🙂

glenjamin13:10:33

whenever i’ve used intellij i’ve collapsed most panels and then found them later via the apropos equivalent

glenjamin13:10:50

whether that’s what the tool pushes people towards in general, i’m unsure

iaint13:10:59

fortunately, nobody has ever disagreed about editor choice before, so this should be a simple one to resolve :)

guy13:10:36

I don't you can resolve personal preference

jonpither13:10:30

what about if one person on your team said that they were super productive with notepad?

jonpither13:10:40

runs and hides

dominicm13:10:39

My issue with intellij/cursive is that it's impossible to reconcile with other editors in terms of indentation & alignment rules,

dominicm13:10:45

Mostly because it's opaque

conan13:10:32

I've definitely started using clojure-standard formatting in intellij for that reason

guy13:10:53

@jonpither in a team scenario that changes things. How do you pair program with notepad 😭

guy13:10:28

Thats why i think its important to be able to use a few different ides/etc

guy13:10:41

Unless you always work by yourself

conan13:10:44

You really don't need to use only one computer to pair program

conan13:10:53

it's easy to switch between two

conan13:10:01

(depending on who is driving)

guy13:10:03

well for sure

guy13:10:15

But its surely its nice to rotate computers too

guy13:10:18

spaces etc

conan14:10:03

My IDE will always be so optimised for my particular hardware and priorities (pressing as few keys as possible) that it won't make sense for me to use anyone else's computer, and nor should it - any company that cares for its developers will provide each one with their own computer. It's medically infeasible to scale a team without doing so.

conan14:10:34

But this is great - everybody gets to be super-productive and comfortable in their own environment

dominicm14:10:53

there have been times working with @jonpither where he's tried to hit Ctrl-N a few times to just bring my focus to something. And a few times where I'm trying to help him, and end up deleting everything on screen. Even the differences between Emacs & Vim cannot be reconciled.

jonpither14:10:27

Staying contentious to see where the debate goes: Sure - you guys are great devs and minimize the buttons and panels etc to work in a Zen like way, and I'm sure it works great and offsets many of the issues that come from trying to work with Emacs etc - I wouldn't for a minute suggest either approach is superior here. That said, doesn't using natively-zen tool force the issue a bit more? I have seen some namespaces that just feel like they were created with the larger IDEs, optimised for quantity rather than quality. I might wrong here though, it's just a feeling.

jonpither14:10:39

^ I think my point is subjective to the developers, and good devs will write good code regardless. So now disagreeing with myself to a degree.

guy14:10:02

:thinking_face:

dominicm14:10:04

I've definitely seen sloppiness from reliance on IDEs that have not done the full job (for whatever reason)

guy14:10:04

I have to say, i've never seen a namespace and thought, wow thats made by a larger IDE

guy14:10:30

but my experience is limited

jonpither14:10:30

I have a couple of times. But it's a gut feeling.

jonpither14:10:16

and I feel a bit uncomfortable putting forward what is a biased, straw man argument

guy14:10:39

I think it all relies on what you feel makes you productive, to beat a dead horse

guy14:10:06

i also don't really mind what IDE i use, I'll use what everyone else is using

guy14:10:19

That way i get to learn something new and find it easier to work with others

guy14:10:41

I had a fun suprise of using intellij and vi bindings one time

guy14:10:47

Which for me was a bit strange

glenjamin14:10:51

although, using a natively-zen tool might mean you’ve got this supercar and are only pottering down to the shops and back

glenjamin14:10:21

personally i use sublime text for most things, and set up build tools and integrations primarily on the terminal - that way they’re portable for my whole team

glenjamin14:10:43

and then i add in a few plugins which use the same config files as the CLI tools to bring stuff closer to the edit cycle

jonpither14:10:30

There is a humanitarian angle - give someone the gift of a new IDE if they are stuck on Eclipse for example - they may be very resistant to consider learning two things at once, but often it's the best time when change is in the air. How far do you push it?

guy14:10:35

Ultimately you will want to probably do a bunch of different actions, all thats different is the key binds or clicks. You probably have feature parity across IDE's for the core editing experience, So you just have to learn the different paths and then it becomes all the same

guy14:10:04

@jonpither why would you push anything though?

guy14:10:11

It should always be a choice

sundarj14:10:21

i do think it a bit odd that Lisp programmers would choose a tool that isn't hackable

guy14:10:37

>Lisp programmers

guy14:10:49

Why define yourself by a language though?

sundarj14:10:33

not about language - it's about philosophy

sundarj14:10:05

Lisp is a hackable language to the core, so I would expect those that choose to use it to choose other tools that are also hackable

sundarj14:10:49

if Sublime was hackable it would be understandable that Lisp programmers use it

sundarj14:10:46

not saying any specific editor is the One True Lisp Editor

sundarj14:10:50

i suppose the dearth of hackable tools is part of it

guy14:10:57

Surely you are just engineers or developers?

jonpither14:10:02

I wouldn't force anything on anyone, but I get nervous when people say 'I don't want to consider learning a new IDE the same time as learning Clojure', because I suspect it's the best time

jonpither14:10:27

it's an opportunity missed if they don't. So I would respect their opinion, but I should also be allowed to make the case

guy14:10:35

For sure

guy14:10:39

and i agree with that

guy14:10:47

But people get older and are resistant to change

guy14:10:52

not much you can do about that

glenjamin14:10:04

i tried to learn emacs and clojure at the same time, emacs was getting in my way so i only learnt clojure instead

jonpither14:10:11

it's risky both ways.

guy14:10:44

This is also why i find pair programming at different computers helps

guy14:10:50

You get to see new ways of doing the same thing

guy14:10:13

Maybe they will see you doing something with emacs and will be like, oh cool, let me try that

guy14:10:27

I think thats a much nicer organic way to have people try out emacs/whatever

guy14:10:40

Thats how i switched from light table to emacs

guy14:10:43

to intellij

yogidevbear14:10:11

I think a lot of this comes down to surroundings. If I work in an environment with people that only use a particular OS and a particular editor / ide, then there are fewer opportunities / chances for me to switch to a new OS / editor / ide / etc than if I find myself working alongside people that are using different tooling

yogidevbear14:10:39

As an example, I often watch videos of people demoing code in emacs and I can't see what keys they are pressing to do inline code evaluation. As such, it is not as simple / natural for me to pick up these nuances as it would be if I found myself working next to someone that was already familiar with it

maleghast16:10:44

Wow… I go away to do the school run, the groceries and then come back to verify a data run and look what happened in the meantime! 😬

maleghast16:10:38

FWIW, I did not become productive in Clojure until I embraced Emacs. I have tried Cursive and Vim and Lightable and Nightcode and nothing comes close to the Emacs experience for me.

maleghast16:10:17

Clearly many other people, more than I thought in truth, don’t feel this way, but I have to say that I don’t give two figs what you use as long as I can read your code if we work together 🙂

maleghast16:10:49

(It will mean swapping computers if pair programming and swapping who is driving, ‘cos I am not going to learn your Cursive setup)

maleghast16:10:15

(and I don’t expect you to learn my Emacs setup either 🙂 )

yogidevbear16:10:40

I've also played around a little with github's atom editor and protoREPL which is quite nice for someone who's used to ST3

yogidevbear16:10:46

It does sound like the de-facto standard is Emacs/cider/etc though

yogidevbear16:10:00

If there is a de-facto

dominicm16:10:08

There's more Vim users on my current project than Emacs users.

yogidevbear16:10:47

Excuse my ignorance here, but what is nano? Is that like notepad for the command line?

yogidevbear16:10:00

I really must get to a meetup sometime soon so I can ask Vim and Emacs questions of people in person

maleghast16:10:56

@dominicm - I am prepared to spend some time re-evaluating Clojure + Vim at some point, I do ❤️ Vim when I am coding on other langs…

seancorfield17:10:56

It'll be interesting to see if the balance of editors shifts over the next few years as more people come into Clojure and want to keep their favorite editor...

seancorfield17:10:45

I used Emacs for years, but switched to Atom/ProtoREPL a year ago and I'm very happy. But it has also taken me a long time to really get into a "standard" workflow -- and my preferences have also evolved over the years.

seancorfield17:10:47

I've switched from doing a lot in the REPL to doing almost everything in a file and evaluating forms as I type them instead. Per Stu's REPL-driven development talk to the Chicago Clojure group.

ivanpierre18:10:00

@seancorfield +1 for Atom, I tried for a month Visual Studio Code, in electron too, lot of good things.