Fork me on GitHub
#off-topic
<
2021-03-29
>
hindol09:03:14

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

clojure-spin 27
šŸ‘€ 6
Alex Miller (Clojure team)14:03:18

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

West13:03:25

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

Thomas13:03:26

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.

šŸ‘ 3
Thomas13:03:38

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

pavlosmelissinos13:03:53

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.

šŸ‘ 3
ā˜ļø 3
pavlosmelissinos13:03:21

I actually do everything (cli related) within tmux sessions

ā˜ļø 3
pavlosmelissinos13:03:45

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

dharrigan13:03:52

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.

pavlosmelissinos13:03:54

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.

pavlosmelissinos13:03:20

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

pavlosmelissinos13:03:39

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

Stuart13:03:49

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

Kelsey Sorrels16:03:14

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

āž• 6
emilaasa18:03:27

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

emilaasa18:03:31

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.

emilaasa18:03:55

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

blak3mill3r20:03:09

scriptable is what I love about tmux

blak3mill3r20:03:37

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

West05:03:43

So, to summarize, tmux is good for: 1. Saving sessions. (Pane layouts, applications, etc.) 2. Keeping open SSH connections.

flowthing05:03:17

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

hindol06:03:33

@U01KQ9EGU79 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.

ā˜ļø 3
West06:03:32

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

pavlosmelissinos06:03:53

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

hindol06:03:07

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.

āž• 3
pavlosmelissinos06:03:04

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

Thomas06:03:50

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.

hindol06:03:25

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

Thomas06:03:18

Yep, since it also skips rendering to the terminal

Dimitar Uzunov12:03:05

@U01KQ9EGU79 - 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

walterl17:03:14

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/

Faris03:03:15

He could have saved a lot of time by just posting the second last paragraph of his rant.

šŸ˜› 3
šŸ‘ 3
sova-soars-the-sora15:03:51

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 ;/

ghadi17:03:47

the zeal of the newly converted

borkdude17:03:02

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

ghadi17:03:23

I guess he preaches like he started yesterday

Stuart17:03:39

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

ā˜ļø 12
3
3
Dimitar Uzunov19:03:06

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

Stuart19:03:17

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 Uzunov19:03:31

thanks for the answer, it makes sense as feedback

borkdude19:03:04

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

Dimitar Uzunov19:03:40

he will definitely love babashka if that is the case

Stuart19:03:57

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

Stuart19:03:10

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

Stuart19:03:00

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

walterl20:03:47

> 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:

borkdude17:03:50

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

borkdude17:03:42

I mean, elitism is relative ;)

šŸŽÆ 3
walterl18:03:24

Just looks like the TweetRageMachine pumping on all cylinders to me

šŸ‘ 3
andy.fingerhut18:03:39

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

andy.fingerhut18:03:55

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

andy.fingerhut18:03:52

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.

āž• 3
šŸ‘† 3
seancorfield18:03:49

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ā€¦ šŸ˜

ā˜ļø 9
3
Elliot Stern19:03:28

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

seancorfield19:03:39

: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!

lukas.rychtecky21:03:34

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.

mauricio.szabo15:03:11

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.szabo15:03:05

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:

Elliot Stern19:03:39

> 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.

šŸ‘† 3
Stuart19:03:08

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

Stuart19:03:22

On the other project it's all Visual Basic

Stuart19:03:27

because thats what that team knows

Stuart19:03:23

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!

šŸ‘ 3
Elliot Stern19:03:39

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.

andy.fingerhut19:03:36

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.

āž• 9
Elliot Stern19:03:31

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 Stern19:03:05

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

blak3mill3r20:03:07

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

blak3mill3r20:03:52

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

raspasov22:03:12

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.

šŸ™‚ 3
3
raspasov22:03:33

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

raspasov22:03:30

You know you gotta do it:

Sean Kohler23:03:39

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

seancorfield23:03:15

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

šŸ‘ 3
West05:03:43

So, to summarize, tmux is good for: 1. Saving sessions. (Pane layouts, applications, etc.) 2. Keeping open SSH connections.