Fork me on GitHub
#clojure-uk
<
2019-05-30
>
jasonbell07:05:45

Morning friends

Ben Hammond07:05:23

think I'd include the highly processed meat free and/or vegan products that seem to be fashionable

Ben Hammond07:05:53

morning everybody

dominicm08:05:15

who buys ultra processed food? what's the motivator? I'd guess money.

jasonbell08:05:44

Who buys it, those who can’t afford ingredients. It’s a sad state of affairs really.

danielneal08:05:03

yeah you'd need to control for money somehow I think

jasonbell08:05:51

Supermarkets are happy to do 3 for 2 deals on ready meals making cost per head cheaper than buying the stuff and making it yourself.

jasonbell08:05:02

I have stories from years gone by when I was unemployed, do I buy chicken or six meals for the same cost? Economics tends to win.

jasonbell08:05:25

And lest we forget that Quorn was just a product of IP rights of ICI that couldn’t be used for it’s original use.

Conor08:05:14

What was the original use?

dominicm08:05:56

haven't read the article, but I wouldn't be surprised if "being poor linked to early death".

jasonbell08:05:21

@conor.p.farrell bacterial single cell process for animal feed. ICI went on to do a JV with Rank Hovis for potential yeast biomass so it could be used in human food.

jasonbell08:05:05

I personally prefer Chicken to Quorn, Kafka to Kinesis…..

Wes Hall08:05:13

I jumped straight to ludicrously processed food!

dharrigan08:05:04

> Kakfa to Kinesis.....

dominicm08:05:31

Wait, Ice-cream is ultra-processed?!

jasonbell08:05:59

@wesley.hall IS BACK, TALK CLOJURE! QUICK! 🙂

dharrigan08:05:30

If I recur a recur, does it loop the loop?

Wes Hall08:05:52

Hah! Not for long, don’t worry. I just never miss an opportunity for a spaceballs reference.

alexlynham08:05:02

more than ‘fashion’ - diets are changing

alexlynham08:05:08

also chicken is rubbish

alexlynham08:05:25

I still eat it at christmas when I cook for family, but the rest of the year I use quorn usually

alexlynham08:05:48

or courgette / aubergine

alexlynham08:05:57

if it’s a stir fry or whatnot

Wes Hall08:05:57

The Clojure UK contingent are apparently healthy people (except me).

dharrigan08:05:31

I think you missed the conversation a few days ago where we were talking about demolishing whole packets of biscuits in 60 seconds and cake show-offs 🙂

Wes Hall08:05:07

Oh yes, I did miss that. I’d have definitely fit in more with that.

alexlynham08:05:11

biscuits are veggie

alexlynham08:05:16

and they don’t fart

jasonbell08:05:30

Well that’s comforting at least @alex.lynham 🙂

dharrigan08:05:27

Next time I'm staring at a Jaffa Cake, I can take comfort in the fact that it won't start to fart in my face when I attempt to eat it.

Wes Hall08:05:56

There’s an image you won’t shake quickly...

alexlynham08:05:21

joking aside, that’s basically why I have zero issue eating fish (from as sustainable a stock as I can get)

alexlynham08:05:34

fish don’t fart 🤷

danielneal09:05:23

just bought a license for https://keminglabs.com/finda which is insanely good and will search across (among other things) open tabs, browser history, EMACS BUFFERS

dominicm09:05:46

I set something like that up with rofi for a while

dominicm09:05:53

never considered doing vim buffers though.

dharrigan10:05:23

You know what would be pretty cool, if in repl (using rebel-readline), if I could tab-complete to another namespace quickly, perhaps a combination of require and in-ns

dharrigan10:05:43

Oh Ultra-Smart-People, does such a thing aleady exist?

dominicm10:05:11

I think it could be added

dharrigan10:05:48

It's pretty easy to enumerate all the namespaces, i.e., (->> (all-ns) (map ns-name) (map name)

dharrigan10:05:13

Pretty sure that could be plugged into rebel-readline as a tab completion thingie

alexlynham10:05:55

in cider you have C-c M-n and then the modeline will autocomplete

dharrigan10:05:01

Sure, but this would be for people who like to run the repl outside of the editor

alexlynham10:05:01

…why would you want to do that?

alexlynham10:05:30

(I mean, I run my repl in the terminal sure, but then connect to it from emacs)

dharrigan10:05:03

I do the same

dharrigan10:05:27

but I like to have my repl running beside my editor, so I can play very quickly with things

dharrigan10:05:31

side-by-side

dharrigan10:05:46

and quite often, I want to fire up a repl quickly (in my project folder) without launching an editor

dharrigan10:05:55

just to play around with some ideas

dharrigan10:05:09

so, it's for that use-case really

alexlynham10:05:27

I guess I always start both now out of pure habit

dominicm10:05:23

emacs users have their repl in their editor because emacs is an OS. Vim is a unix tool which is meant to be closed during a working session.

✔️ 8
flefik12:05:05

it’s just a shame Emacs OS doesn’t come with a decent text editor though

mccraigmccraig11:05:57

@dominicm emacs users have to be careful having their repl in their editor because too much output too tends to kill emacs. emacs is a very crappy o/s

practicalli-johnny12:05:00

I run Emacs all the time with loads of buffers open, around 80 at the moment I think (it's the equivalent of my browser tab habit). Never had any problems with speed or too much output, especially with the latest snapshot (27.0.50). I rarely use the REPL buffer though.

dominicm12:05:40

I think it's long buffers rather than lots of them

dominicm12:05:48

maybe just long lines?

otfrom12:05:34

long lines have been the problem

otfrom12:05:43

lots or long buffers aren't an issue

mccraigmccraig12:05:55

@otfrom long lines make for a more immediately severe problem, but if i have a process which prints tonnes of logging quickly then emacs struggles whereas iterm doesn't even break a sweat

otfrom12:05:50

I have seen that sometimes too

otfrom12:05:58

the rendering can slow things down as well

mccraigmccraig12:05:06

CIDER used to behave much better (for this case), and in the cider-connect case not send the logging to the emacs buffer... but then the stream handling got rewritten or something and all the logging started going to both emacs and terminal

Wes Hall13:05:13

I'm probably opening a can of worms with this, but since we are (roughly) talking about it anyway... Does anybody else feel like sometimes Clojure adoption gets a bit held back by state of the editor / other tooling? I mostly use emacs and it's obviously pretty cool, though I tend to oscillate between being being OK with being trapped in the 70's or not. I've used cursive (as a long term intellij users in my Java life), and here I have two problems. Intellij itself is utter bloatware these days, and I find myself deeply missing the small, powerful editor that it used to be back in 2003, and secondly cursive while being an incredibly impressive piece of work just feels a bit held back by being integrated into an editor that was really designed to deal with a different world of strongly typed, OO structures and craps out too often on some of the integral clojure things like macros. It's obviously ridiculously entitled of me to expect somebody else to build my ideal toolset, but I do sometimes feel like if I found a magic lamp, my first wish would be for a circa 2003 intellij style editor designed specifically with Clojure in mind.

Wes Hall13:05:46

For ideological reasons, I have not tried VS yet.

Wes Hall13:05:50

...maybe I should.

mccraigmccraig13:05:28

i've consigned the problem to the "i'm never going to have time to deal with it properly so i'll make do" bucket, along with decent static-checking (in a clojure-like lisp, obvs clojure itself is never going to get it)

dominicm13:05:45

VSCode is a pretty good lighter "standard editor" with great clojure tooling.

Wes Hall13:05:37

Maybe I will spin it up and have a play with it. I'm really pining for that editor that "just works for me". That said, I do sometimes think that one of the perils of clocking up the years of experience is that you can become a little too discerning 😉. I am sure 2003 IDEA wasn't half as good as I remember it to be, and it's more that 2003 me didn't have nearly so many opinions and requirements 🙂

Wes Hall13:05:55

@dominicm How's the repl integration in VS?

mccraigmccraig13:05:02

2003 idea was great for java @wesley.hall... those refactorings and structural search were awesome

Wes Hall13:05:09

@mccraigmccraig Ha, good to have validation on that point. I remember thinking that thing was magic the first time somebody showed it to me. Funnily enough, I was doing Java development in emacs prior to that (which I also felt was magic, for different reasons).

Wes Hall13:05:03

While I am doing history here , before all that symantec "visual cafe" (wonder if anybody remembers that one!), which, in contrast to these other two was an hilarious clusterfuck of a tool.

Wes Hall13:05:14

Another piece of magic I can remember was "TogetherJ", anybody ever use that back in the day? It used to do round-trip between your Java code and UML diagrams. Obviously UML largely gone the way of SOAP and such, but I remember being rather impressed watching a class diagram autoupdate in my viewer as I typed in code 🙂. Their business cards were CD-ROMs with demos of the software that would fuck up your drive. Think they got bought by Oracle and quietly killed though.

rickmoynihan13:05:12

I do vaguely remember trying that at one point… I also remember rational rose.

Wes Hall13:05:25

Yup, good old RR. The halcyon days 🙂

rickmoynihan13:05:55

…a more innocent age

rickmoynihan14:05:06

I still have a fondness for UML sequence diagrams however… I think they’re massively underused.

jasonbell14:05:52

I reviewed Rational Rose Studio when they layered it over Eclipse, it was very good.

rickmoynihan14:05:05

I thought it was pretty impressive, but I think it seemed pretty flawed… But I only used it as a student for toy stuff.

rickmoynihan14:05:35

Did you use it for anything @U0K1RLM99?

jasonbell14:05:40

Not in the end no, but i did use the Sony P800 they send me for review, a lot. J2ME rocked in the day lol

seancorfield17:05:07

I was a massive fan of TogetherJ! Loved the UML round tripping, back when I was a C++ and Java guy 🙂

Wes Hall13:05:23

</grandpa_simpson>

dominicm13:05:45

@wesley.hall good, built on the cider-nrepl work

Wes Hall13:05:04

@dominicm Definitely going to download it and see if it scratches the itch. Thanks.

jasonbell14:05:31

@dharrigan and quite often, I want to fire up a repl quickly (in my project folder) without launching an editor << M-x cider-connect then, makes life a lot easier IMHO if you’re in Emacs.

dominicm14:05:33

I use my editor to launch a repl with the right plugins in a separate process tree from my editor, then I can close & open as needed.

alexlynham14:05:10

vs code is okay tbf

alexlynham14:05:38

but microsoft can do one

alexlynham14:05:56

emacs was here before I was born and emacs will be here after I die

Wes Hall15:05:17

@alex.lynham Definitely with you on the, "Microsoft can do one", sentiment, though it's probably only reasonable to recognise they are not who they used to be, (case in point, VSCode available for Linux and Mac). I'm just playing with the editor and actually looks pretty good. Really liked that it started a repl for me as soon as I opened a clj file... because of course you want one....

alexlynham15:05:39

seems like trusting ms is a bad life choice just as trusting apple|aws whoever is… a marriage of convenience at best

alexlynham15:05:32

I’ve helped newbies set up clj setups and always go with atom or vscode now depending on how much they refuse to use ms products lol

alexlynham15:05:57

unless they already use emacs or spacemacs it’s too much hassle

Wes Hall15:05:16

@alex.lynham This is kind of my point really though. What is the "newbie friendly" option for getting into Clojure? I don't consider myself a newbie, but i'll take the newbie friendly tool for the most part. I quite like emacs as a piece of technology and there are days when I like it as a code editor, but there are other times when I just want all the convenience stuff. I use a mac too. Spent a long time running various distros of Linux on my laptop, and then I realised that life is too short 🙂

Wes Hall15:05:40

A fairly good example here is that I have been using VSCode all of an hour, and it took one quick glance to figure out how to use the git integration. Where as on my desk I have a print out of the magit cheatsheet and some of it still kind of baffles me. I'm probably just getting old and cranky 🙂

alexlynham15:05:23

vs code then

Wes Hall15:05:53

So far so good. I am sure I will find something to complain about shortly though. Stand by.

alexlynham15:05:54

I mean, even in emacs I’m too basic for magit, the terminal is fine for me

alexlynham15:05:11

I just like having a git gutter to see changes, and that’s about it

jasonbell15:05:40

Magit used to do my head in, now I’d be lost without it.

emacs 4
Wes Hall15:05:31

I think what I am probably going to miss most if I do totally switch is org-mode. That shit is genius.

jasonbell15:05:04

As long as the branch structure is clean and you can avoid all sort of squid like activity then git/magit combo is cool.

practicalli-johnny15:05:44

In the 5 years we have done ClojureBridge, editor support has been quite low as a blocker for Clojure adoption. The biggest challenge is thinking in Clojure (as the syntax itself is pretty easy to pick up). The next biggest has been error messages, although Maria.cloud does a great job at making understandable error messages. Clojure 1.10.x does have better errors than earlier versions, but still a bit to go there I think. There are a range of popular editors that support Clojure very well. E.g. https://clojurebridgelondon.github.io/workshop/development-tools/ There are also live environments like http://Repl.it and Maria.cloud, so a wide range of choices. I assume the constraints around editors is from some developers that have specific expectations as to what their editor should do, but they could use Vim or Emacs to tailor exactly what they want, or write their own plugins or editors if they wanted a highly tailored environment.

djtango10:05:50

Have you seen that @jr0cket

djtango10:05:02

not used it myself but wonder if that would help with the error messages?

practicalli-johnny10:05:27

Thanks, speculative looks great. Its similar to Maria.cloud although usable anywhere. Will add to my TODO list for enhancing ClojureBridge project tutorials.

Wes Hall16:05:47

@jr0cket Fair enough. It's obviously quite subjective. As you know, I have built some quite big systems with Clojure so it hasn't exactly been a blocker, but i've just never found something I was completely comfortable with. I know I am not the only person to have this problem, but I don't have the data to claim it is widespread. If you do, all good 🙂.

seancorfield17:05:22

I used Emacs for years but switched to Atom about three or four years ago. Technically I used Emacs for decades. I started in the 17.x days and used it into the early 19.x days, then took a "short" break until the 23.x days (just before 24.x, I think). I came back to it because of Clojure, but I never "enjoyed" using Emacs. I've been very happy with Atom (on Mac/Windows). Initially with ProtoREPL and, since Christmas-ish, I've been using Chlorine daily for all my work. And now I use REBL alongside that all the time.

dominicm17:05:26

I suppose going from emacs to other editors is easier because emacs is normal in many ways.

dominicm17:05:40

If you want to just use the mouse and type, you largely can.

dominicm17:05:04

I wonder if the default clojure emacs setup just needs a mouse driven buffer switcher, and you're good to go?

seancorfield17:05:42

I use the keyboard with Atom and almost never touch my mouse.

dominicm17:05:15

@seancorfield what about the atom bindings do you find more comfortable?

seancorfield17:05:54

I find the ergonomics of Atom better overall. Everything can easily be keyboard navigated and adding/changing key bindings is very easy. Even changing/adding new commands while the editor is running is pretty straightforward (albeit you have to write JS or CoffeeScript).

seancorfield17:05:04

See https://github.com/seancorfield/atom-chlorine-setup/blob/master/init.coffee#L50 for example (adding more integration to REBL, without needing to hack on the Chlorine source code!).

folcon17:05:40

@wesley.hall I tend to live in cursive these days personally, I used to use emacs/vscode a lot, but now a days it’s just cursive… Probably makes me a bit of a heretic ;)…

Wes Hall17:05:04

@folcon Editor wars, everybody is a heretic 🙂

4
seancorfield17:05:06

I keep trying VSCode/Calva but it doesn't quite "gel" as much as Atom/Chlorine has for me.

folcon17:05:23

Actually seeing as we’re discussing this, how many people have worked with dynamic editors like smalltalks? How does it compare to the present editor offerings?

Wes Hall17:05:11

@seancorfield I did have a play with Atom (and ProtoREPL), it didn't quite gel for me at the time but I will look into chlorine. With VS I am already falling into the trap of wanting all the features from the upcoming 2.0 release of Calva like a proper "jack-in" and repl buffer... this is where things always go downhill though. I end up installing development branches, find tonnes of bugs and write it off. Must.... resist.... urge.... 🙂

Wes Hall18:05:21

@folcon I have never done any smalltalk, but I worked with a couple of fanatics at ebay. I can definitely remember them waxing lyrical about some craziness to do with building the software as part of the editor and then just removing the editor right before deployment. It sounded amazingly neat, but I didn't completely get it. I felt like they were inducting me into a cult at the time 🙂

folcon18:05:42

😃 The impression I get is basically more of the repl more of the time? My main comparison point which is probably a bit stupid is building a game in an editor vs garry’s mod. There’s something you get by not just having a live connection to the experience (repl), but also being able to basically point to pretty much anything on the inside of the environment and then poke it… But that’s my problem, I don’t know

folcon18:05:14

I’m sort of wondering if REBL is a starting point in that direction…

seancorfield18:05:47

Yeah, I did some Smalltalk back in the day. The whole image is always live and all the edit/debug tools are built in. So it's like running your editor inside your application. A good Clojure REPL workflow can get fairly close.

seancorfield18:05:23

We run Socket REPLs in a lot of our processes so we can connect to them and debug/patch them while they're running.

seancorfield18:05:38

Mostly we keep that to the dev/test environment but we do run some REPLs in production as well. That is primarily for inspecting production tier data (and sometimes for updating it), but we occasionally patch the live production processes too.

folcon18:05:49

That’s really interesting, what’s lacking would you say?

folcon18:05:42

PS: Going to grab dinner, but will look over this when I get back later :)…

practicalli-johnny18:05:21

After using Spacemacs I do feel much slower when using what seems to me like more complex keyboard short-cuts in Atom Protorepl and VSCode Calva (and vanilla Emacs). I found proton-mode for Atom quite usable, as its the same concept as Spacemacs. I do like Calva and the maintainers are doing an amazing job, so will see if I can find a similar setup. I think I have become very reliant on a Vim like modal editing approach and mnemonic keybindings 🙂

seancorfield18:05:26

@jr0cket I have my own keymap for Chlorine (it doesn't come with one) so it's reasonably easy to choose mnemonic keys...

practicalli-johnny19:05:38

@seancorfield is your keymap in a GitHub (or GitLab) repo somewhere, so I can be inspired ?

seancorfield20:05:39

@jr0cket Did I not already post that? Sure, lemme get that link...

practicalli-johnny21:05:08

Sorry, I missed the first time around. Tjanks

seancorfield20:05:10

Yeah, posted above about 10:26am Pacific ... so ... 6:26pm UK time ...

seancorfield20:05:55

Same repo has additional commands too.

folcon21:05:36

@seancorfield That’s really interesting, what’s lacking would you say? (as you said the clojure repl can get close)

seancorfield21:05:48

@folcon Lacking between Smalltalk's IDE and Clojure's REPL? Well, Smalltalk's IDE wasn't source-file based as I recall. You started up a fresh image and wrote your code directly into it. So the Smalltalk system provides a massive standard library including full graphics/UI widgets, built-in editor, debugger, several interesting code and data viewing widgets. If REBL was a full-blown editor, that you ran inside your app, that would sort of come closer.

seancorfield21:05:10

Especially with tools.deps -- at least, the branch that lets you add libs dynamically.

folcon21:05:11

Ok, so that’s really interesting, perhaps there’s a middle ground? Do you miss some of that functionality

folcon21:05:08

Or was it more just nice functionality that you don’t notice not having it any more?

seancorfield21:05:13

It was nice to have an all-in-one (and very opinionated) built-in IDE.

seancorfield21:05:30

No need to worry about tooling and compatibility and differences across plaforms etc.

seancorfield21:05:03

But, realistically, I don't miss a lot of the UI-focused aspect of it since it also assumed a mouse.

seancorfield21:05:05

I like that REBL is inherently keyboard navigable. And that you can optionally start the UI inside a REPL (or any local process).

seancorfield21:05:11

Being able to fire up REBL locally and connect prepl over a Socket REPL into a remote process would be nice (but there's a giant can of worms around serializing arbitrary data over the wire -- Rich mentioned this in the #rebl channel when it was first released).

seancorfield21:05:38

If REBL let you edit and save arbitrary source code for any code on the classpath, and had parinfer and paredit with sane keybindings, I'd probably switch to using that on its own... which would be about as close to the Smalltalk IDE experience as we could get, while we stay focused on source files.

folcon21:05:45

Thanks for this @seancorfield =)… Really interesting to hear that.

rickmoynihan22:05:27

I’ve never used smalltalk for real; but I have played with Squeak in the past and before that Self, on a Solaris box. When I lived in Dundee I was pally with a few other developers and we’d run and attend various meetups (including Dundee’s Clojure Dojo back in 2008!! :grinning_face_with_star_eyes:), one of whom would wax lyrical about Smalltalk all the time. He’d had an interesting career; IIRC he’d started as an firearms officer in the police, but quit and I think had returned to college or something to learn programming etc… When he left college he managed to land a chance job at IBM who were pushing smalltalk in a big way at the time, and he was recruited into one of their smalltalk teams. He’d always describe it in the same terms as people talk about Xerox Parc, like he’d been shown a future that has still never happened. Some of the stuff IBM had back then was pretty mind blowing; though as is often the case with these things, I found it hard to disambiguate the reality of how good it was, from the dreams for what it was going to become. For example he described things like having a shared state smalltalk image backed by an object database over ethernet; that the whole team were working on (living in) at once. It included an in memory version control system of objects in that image, along with ways to resolve conflicts and merges on live objects. I believe he was pretty junior at the time so I don’t think he worked on any of the core stuff himself, but he was using bits of it — but being relatively new into Software he’d not experienced much other than this. It was only after IBM canned the whole thing for Java that he realised the state the rest of the industry was in 🙂 I find it pretty hard to imagine how well it all actually worked in practice; but the ambition for it was huge.

seancorfield22:05:12

There was a lot of very interesting work in object databases going on before Java really took hold.

seancorfield22:05:57

There was a Smalltalk company near where I lived in the UK and they gave me a top-of-the-line Smalltalk system for Mac OS so that I could use it, provide feedback, and write it up in some journal (I was technical editor of Overload for years, the C++ journal of the ACCU, but it was somewhere else that it got published I'm fairly sure).

seancorfield22:05:24

I seem to recall it was like a 5,000 GBP license...?

folcon22:05:13

This is really interesting. I definitely feel like some of the ideas in that space could use a look over again. I’d really like to see how they’d feel now.

seancorfield23:05:22

REBL with function source editing (and saving back to disk) would have a similar "feel" I think. I'm really digging REBL! I love that I can inspect a namespace or a var and then navigate around the vars in a namespace, the uses/used-by for a var, and view the metadata and source etc.

rickmoynihan23:05:04

Yeah I quite like REBL for focussing in on and navigating large structures, and I use it with Cider and my nrebl-middleware. Though I feel like I get most of that ability with M-x cider-pprint-eval-sexp (`C-c C-p`) which has the advantage of being a searchable buffer with Emacs isearch. However REBL is sometimes better for browsing large nested strutures, and it certainly has potential. My biggest issue with REBL is there’s a weird bug on macos with cider-nrepl and javafx/swing windows losing focusing behaviour: https://github.com/clojure-emacs/cider-nrepl/issues/610