off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
hindol 2021-03-29T09:45:14.333400Z

Anyone have any idea when State of Clojure 2021 results will be available?

9
šŸ‘€ 2
West 2021-03-29T13:15:25.335Z

Hey, is there any reason to use tmux other than to have multiple terminal windows? Can't I just make more actual terminal windows?

flowthing 2021-03-31T05:49:17.449400Z

tmux continuum / resurrect is also nice for retaining sessions between reboots.

hindol 2021-03-31T06:08:33.449600Z

@c.westrom I am not sure about "keeping open SSH connection". I think it is more about preserving the session even if you get disconnected. You can re login and resume the session.

ā˜ļø 1
West 2021-03-31T06:11:32.449900Z

That's usually what I do. It seems like that tmux can allow you to auto-reconnect without retyping (or up-arrowing) ssh <mailto:blah@blarg.org|blah@blarg.org> again. Or is that not what y'all are saying?

pavlosmelissinos 2021-03-31T06:12:53.450200Z

tmux doesn't "keep open ssh connections" on its own. The out-of-the-box workflow here is to connect to the ssh box and start tmux there, so if you close the ssh connection, the session still exists on the ssh server. In other words, your terminal is detached from the ssh connection. If you're looking for a more accurate, but still wandwavy, summary, you can just say that tmux is pretty good at organizing your terminal workflow

hindol 2021-03-31T06:16:07.450500Z

The other benefit of tmux is that you can disconnect without killing whatever commands you were running. If you have a long running task over an SSH session, you can disconnect and come back to it again.

āž• 1
pavlosmelissinos 2021-03-31T06:17:04.450800Z

You definitely can configure tmux to automatically reconnect to your ssh connections but that's not its standard use. The tmux wiki describes some use cases (it actually shows the ssh workflow as well): https://github.com/tmux/tmux/wiki/Getting-Started#about-tmux

Thomas 2021-03-31T06:20:50.451100Z

IIRC using either tmux/screen was also recommended to speed up compilation of SBCL. The compilation prints a lot of output to the terminal and rendering time could slow down the process. Starting the compilation in tmux then detaching the session solved the issue.

hindol 2021-03-31T06:29:25.451300Z

I think redirecting output to something other than stdout will have the same effect. command &gt; command.log 2&gt;&amp;1

Thomas 2021-03-31T06:48:18.451600Z

Yep, since it also skips rendering to the terminal

Dimitar Uzunov 2021-03-31T12:06:05.452600Z

@c.westrom - another cool feature of tmux is using it for pair programming by having people connect to the same machine and share sessions or window groups

Dimitar Uzunov 2021-03-31T12:06:11.452800Z

https://www.hamvocke.com/blog/remote-pair-programming-with-tmux/ - check it out

Thomas 2021-03-29T13:18:26.336200Z

I only use tmux when connecting to remote hosts so I can reattach to the running session if Iā€™m disconnected (so I donā€™t lose the context.) Locally I start multiple terminal emulators.

šŸ‘ 1
Thomas 2021-03-29T13:20:38.336700Z

I guess itā€™s also useful when using a terminal emulator without support for a scrollback buffer ?

pavlosmelissinos 2021-03-29T13:21:53.336900Z

Yeah working over ssh is the most obvious use case I personally use tmux to group terminals per project as well. Navigation seems much easier to me that way.

šŸ‘ 1
ā˜ļø 1
pavlosmelissinos 2021-03-29T13:22:21.337100Z

I actually do everything (cli related) within tmux sessions

ā˜ļø 1
pavlosmelissinos 2021-03-29T13:27:45.337600Z

and there's ~0 overhead during context switching Just type Ctrl-b s and choose the session of the new context No existing context? Ctrl-b Ctrl-c to create a new one

dharrigan 2021-03-29T13:32:52.337900Z

I use i3(-gaps) so I just spawn off a new terminal. I do love me some i3. It's a tiling window manager, so no windows overlaps. I'm on Arch btw.

pavlosmelissinos 2021-03-29T13:33:54.338100Z

You can have a session for project A with 1 window and 2 panes split vertically Another session for project B with x windows, the first having 4 panes, a quarter of the screen each. (using the definitions of tmux for sessions/windows/panes) Can't really fathom how I'd be able to keep my terminals organized without tmux.

pavlosmelissinos 2021-03-29T13:34:20.338700Z

@dharrigan Yeah I'm also using a tiling wm (sway) on fedora but still can't live without tmux šŸ˜›

dharrigan 2021-03-29T13:34:42.338900Z

šŸ™‚

pavlosmelissinos 2021-03-29T13:45:39.339200Z

tmux takes time to feel comfortable with (took me a couple of months I think, I'm not sure, it's been more than 5 years now). It's been a few years since I've settled with a specific workflow but I definitely haven't mastered it yet. I recommend https://github.com/gpakosz/.tmux

2021-03-29T13:53:49.339700Z

I use Terminator for having multiple panes. Really like it, navigating between panes and creating / killing panes feels very intuitive in it

alexmiller 2021-03-29T14:02:18.340200Z

sorry, just been delayed for silly reasons like waiting on various humans to ok it :)

2021-03-29T14:25:14.340500Z

I don't think Slack provides the ability to limit who can do this

aaron-santos 2021-03-29T16:33:14.341500Z

I've had several times where I needed to restart my window manager and it was nice to not lose my terminal session

āž• 2
walterl 2021-03-29T17:47:14.342400Z

Maybe some of you (other) elitists would find this interesting šŸ˜ https://georgestocker.com/2021/03/28/no-one-gives-a-shit-what-programming-language-you-use/

sova-soars-the-sora 2021-03-30T15:57:51.435300Z

Written from someone who does not know that from LISP you can basically manufacture every other programming language... I think on a philosophical level it certainly matters which language you use, but on an outcomes-level maybe people can still make money using other things, but are we comparing only results or process or upsettedness-when-confronted-with-something-new ? It seems like this person has not tried a lisp-style language in good faith ;/

ghadi 2021-03-29T17:49:47.342800Z

the zeal of the newly converted

borkdude 2021-03-29T17:50:50.343400Z

luckily I can just use blue collar Clojure then, if my customer doesn't find not using static typing unethical šŸ˜…

borkdude 2021-03-29T17:51:42.343900Z

I mean, elitism is relative ;)

šŸŽÆ 1
borkdude 2021-03-29T17:53:02.344100Z

who is the newly converted in this case? I mean, the uncle has been talking about Clojure for a while now?

ghadi 2021-03-29T17:53:23.344400Z

I guess he preaches like he started yesterday

2021-03-29T17:58:39.344800Z

Ive watched a couple of streams of him writing clojure. I hope people don't write clojure how he writes clojure.

ā˜ļø 4
1
1
walterl 2021-03-29T18:06:24.345600Z

Just looks like the TweetRageMachine pumping on all cylinders to me

šŸ‘ 1
2021-03-29T18:06:39.346Z

I think most programmers would agree that it is objectively less productive to use assembly language for most application development nowadays.

2021-03-29T18:06:55.346400Z

That is an opinion that might have differed in the 1950s and 1960s, but technology has changed.

2021-03-29T18:07:52.347200Z

There is certainly less difference in productivity between Clojure and Python, and agreed that there are people who make poor arguments for one versus another programming language. That doesn't mean they are all poor arguments.

āž• 1
šŸ‘† 1
seancorfield 2021-03-29T18:19:49.349800Z

As noted in the September piece Stocker wrote about ā€œUncle Bobā€ (linked from the above), Mr Martin unfortunately espouses some pretty unpleasant things outside the software world and Iā€™m one of many who stopped following him on Twitter because of the non-software stuff he would spew. I would hate to see his reputation tarnish Clojureā€™s good name by associationā€¦ šŸ˜

ā˜ļø 3
1
mauricio.szabo 2021-03-31T15:10:11.454200Z

I also stopped following lots of people, even friends, because of politics issues. Specially now that I changed countries, knowing what's happening in my old country will just lead to unnecessary worries and anxiety for no-reason at all

mauricio.szabo 2021-03-31T15:12:05.454400Z

I wish I was one of those "illuminated beings" that have a brain firewall to filter only what matters on their feeds, but I'm really not like that šŸ˜„. I don't really think that a programming language should be tarnished because of political views of a group of users, or even maintainers, but I also know that it's not how people usually think, so.... :man-shrugging:

emilaasa 2021-03-29T18:29:27.350200Z

Mostly it's a way to have multiple terminal windows for me - just got used to it.

emilaasa 2021-03-29T18:30:31.350400Z

It's pretty portable, scriptable and so on. With some tweaks it has good history search, yanking text from command output (or logs). Persistent in different forms, you can save sessions or create per project configuration.

emilaasa 2021-03-29T18:32:55.350600Z

For certain tasks it's been a godsend, like controlling multiple computers for various cluster maintenance tasks with the multi cursor thing.

Elliot Stern 2021-03-29T19:13:39.357100Z

> Pick the language and stack based on your teamā€™s needs and comfort, based on your businessā€™s need and risk tolerance, and based on how easy it will be to produce software for your target users in that language or framework. Itā€™s worth point out, though, that unless you invest time in programming for its own sake and weekend hobby projects, that answer is never really going to change. If you were writing C++ in 1990, at what point was your team magically more comfortable and faster in Java than C++ if no-one ever wrote a line of Java outside of a commercial project? Plus, thereā€™s a fairly large element of self-selection with teams. Someone with mostly C++ experience probably isnā€™t going to apply to a team writing in Haskell.

šŸ‘† 1
2021-03-29T19:17:08.360100Z

Exactly, at work we obviously have to "based on your teamā€™s needs and comfort" all the time, but no one learns anything new outside of work and no one has time to learn at work. IT means all our projects are C# backend and plain vanilla JS front end. ANd when I say plain JS, I mostly mean the sort of JS that runs on IE9

2021-03-29T19:17:22.360500Z

On the other project it's all Visual Basic

2021-03-29T19:17:27.360700Z

because thats what that team knows

2021-03-29T19:19:23.363700Z

Its like if we were lumberjacks, with a forest to cut down with only blunt axes for tools. You can point out there's chainsaws over there, but if no one can use the chainsaw... There's not much you can do, you can point out the chainsaw has lots of instruction manuals, but people will tell you they don't have time to read a chainsaw manual, I mean they're busy! Look at all those trees they've got to cut down! And you can't suggest to them to learn how to use a chainsaw in their own time, because after work they're exhausted, I mean, they've been hacking down trees all day!

šŸ‘ 1
Elliot Stern 2021-03-29T19:19:39.364200Z

Thereā€™s also a fairly big difference between woodworking tools and programming tools - programming tools tend to get better with a larger community, while woodworking tools largely donā€™t.

2021-03-29T19:20:36.365900Z

You don't want to follow the advice of people who give poor reasons for choosing a language/environment, certainly. But his article's recommendation comes down to "what your team supports, and is a good fit for the application". If he thinks that "what your team supports" is somehow going to avoid poor reasoning for choice of language/environment, well, that depends completely on how reasonable your team is.

āž• 3
Elliot Stern 2021-03-29T19:25:28.367500Z

And his software views are kinda questionable, too - https://www.hillelwayne.com/uncle-bob/

Dimitar Uzunov 2021-03-29T19:28:06.368400Z

what to avoid in particular? (Iā€™m not familiar with uncle bob)

2021-03-29T19:30:17.368600Z

Well, I've never seen him once use a REPL. He uses the same test driven techniques you would use in java and C#. From what I've seen of him actually typing in teh code he never uses parinfer / paredit so he's manually organising his parens. His code is verbose. I don't think he really thinks functionally... I think he's basically doing what he would do if he were coding java, except he has all these parens now all over the place šŸ˜„

Dimitar Uzunov 2021-03-29T19:32:31.370200Z

thanks for the answer, it makes sense as feedback

borkdude 2021-03-29T19:33:04.370700Z

If he doesn't use a REPL, does he restart his Java process for every eval?

Dimitar Uzunov 2021-03-29T19:33:40.370900Z

he will definitely love babashka if that is the case

2021-03-29T19:33:57.371300Z

From what I saw, he was wrirting tests, then running them to see them fail. Then he writes his clojure code and sort of tries to work out what his code is doing and why it isnt' working by creating more and more tests

2021-03-29T19:35:10.372400Z

I absolutely think that is valid when doing C# / Java, but I think ifyou have a REPL and evaluate as you go you can reason about your code and see what is happening much more clearly, rather than editing a test to write to output to see what the result of a function call was

2021-03-29T19:37:00.372900Z

It feels like that approach to me is definitely hard mode clojure

Elliot Stern 2021-03-29T19:40:31.375400Z

Also, even if youā€™re focused on delivering to a consumer, playing around with new techniques and practicing your skills is pretty common. I doubt that the woodworkers he knows are experimenting with different advanced joints on a project theyā€™re making for a particular person without trying them out first.

Elliot Stern 2021-03-29T19:41:05.375900Z

And cooks definitely spend time making food thatā€™s not actually intended to be eaten by diners

seancorfield 2021-03-29T19:42:39.376Z

:rolling_on_the_floor_laughing: I hadnā€™t seen that hit piece ā€” but I do mostly agree with the sentiment there. Thereā€™s Bobā€™s Way and then thereā€™s the Wrong Way!

walterl 2021-03-29T20:04:47.376300Z

> I think he's basically doing what he would do if he were coding java, except he has all these parens now all over the place Sounds like a description for a generic lisp noob. Maybe that's why it seems like the parens are such a weird and overwhelming thing (imperative programming in lisp causes paren overload) :thinking_face:

blak3mill3r 2021-03-29T20:36:09.376600Z

scriptable is what I love about tmux

blak3mill3r 2021-03-29T20:36:37.376800Z

you can send keypresses to a session for example, or read the terminal buffer

blak3mill3r 2021-03-29T20:54:07.377800Z

One way to do it is to sneak a new technology in via the back door (by solving a problem with it), rinse & repeat, eventually the company starts hiring people to use technology X

blak3mill3r 2021-03-29T20:54:52.378500Z

To get around the stable-point that arises if "stick to the tools your team knows" is overemphasized wrt "best tool for the job"

lukas.rychtecky 2021-03-29T21:08:34.378600Z

By ā€œunpleasant thingsā€ do you mean politics? I also had to stop follow some well-known people from computer science because of their toxic non-software opinions.

raspasov 2021-03-29T22:48:12.382500Z

George Stocker doesnā€™t care what languages you use but believes that: ā€œI believe through Test Driven Development, we can double productivity in some cases. This isnā€™t a pipe dream ā€” itā€™s possible right now. Iā€™ve been a software developer for 20 years, and worked in teams of all shapes and sizes.Ā I cut my teeth on Perl, a gloriously productive language that is still useful today.ā€ Sounds like a plan. I should contact him right away to double my productivity.

1
šŸ™‚ 1
raspasov 2021-03-29T22:49:33.383500Z

ā€œgloriously productiveā€ is my favorite part (from here https://georgestocker.com)

raspasov 2021-03-29T22:50:30.384Z

You know you gotta do it:

Sean Kohler 2021-03-29T23:56:39.385500Z

Hello... if I was looking for freelance clojurescript help, is there a preferred channel to post the details? Thank you.

seancorfield 2021-03-29T23:57:15.386100Z

@skohler Probably #remote-jobs (or #jobs if you need folks ā€œon-siteā€).

šŸ‘ 1