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/
Raymond Usbal 2020-12-11T00:42:37.098500Z

Hello everyone! I'm a Rails dev but I want to use ClojureScript for an SPA with Rails backend. I wonder if some of you here are in a similar setup.

orestis 2020-12-11T06:52:16.101Z

@raymond150 it doesn’t sound too common but certainly doable, assuming the Rails backend serves some kind of JSON api. You won’t find any obstacles but certainly no support from either Rails or ClojureScript.

orestis 2020-12-11T06:53:22.102400Z

I’m no Rails expert but I thought it had tight integration with some of the common frontend frameworks, so I’m curious to hear what your use case is

Raymond Usbal 2020-12-11T07:03:01.103100Z

@orestis Thanks for the reply. I'm new here so you're the first person I got in touch with. 🙂

borkdude 2020-12-11T07:37:12.104600Z

ClojureScript can be used with any backend technology. I’ve seen it used with Rails as well. @raymond150

👍 1
orestis 2020-12-11T08:26:00.107700Z

An update on M1 performance numbers, now with Azul OpenJDK with native Arm64 architecture. Jetty starting goes from 51s (intel Mac) to 29s (native arm) - Rosetta was 68s. Cljs build time goes from 67s (intel) to 22s (native arm), Rosetta was 55s.

orestis 2020-12-11T08:26:17.108200Z

So pretty impressive numbers @alexmiller

orestis 2020-12-11T08:30:22.109200Z

Startup times of just plain Clojure go from 4s under Rosetta to a hair under 1 second in native.

🔥 8
dominicm 2020-12-11T09:21:11.111900Z

How much of that could be attributed to faster ram and/or ssds?

henrik 2020-12-11T10:27:17.113100Z

@orestis Also saw some major speedups with Azul on M1. Had to drop REBL to run it though—there’s no JFX for Arm.

henrik 2020-12-11T10:28:15.113700Z

Luckily, shadow-cljs has a pretty good explorer built in, with support for tap>.

henrik 2020-12-11T10:32:13.114500Z

My benchmark was a Nippy conversion of a large data structure—went from 181ms to 45ms (as compared to my old MacBook, and x86).

borkdude 2020-12-11T10:55:35.115400Z

Sounds compelling. I'll reconsider switching to linux if Apple manages to come up with beefier machines...

borkdude 2020-12-11T10:56:04.115900Z

The major problem I have with Apple right now is the abysmal I/O in Docker

borkdude 2020-12-11T10:56:35.116200Z

Speaking about Docker, they're still working on that as well right?

dharrigan 2020-12-11T11:19:25.116400Z

Yes, it's still a wip.

dharrigan 2020-12-11T11:20:02.117100Z

I ordered myself a mac mini m1 for my audio/video processing. My day-to-day coding, development machine is a beefy intel running Arch.

dharrigan 2020-12-11T11:20:49.117600Z

Opening up any sort of video in Final Cut Pro results in what sounds like a jet engine taking off in my room.

dharrigan 2020-12-11T11:21:20.118100Z

With a M1, tranquility should be restored...

orestis 2020-12-11T11:45:22.123300Z

@dominicm there’s a ton of benchmarks out there that go into this. My takeaway is that those machines are solidly as fast or faster than desktop machines that cost multiples... on some workloads. Most reviews annoyingly focus on AV which seems to be hardware optimized so not very relevant for programmers. But it seems that the whole experience is super smooth so for people who have only one machine it’s seems a compelling buy. The next iteration should show what’s possible for the real MacBook Pro line.

henrik 2020-12-11T12:28:43.124Z

I’ve seen some anecdotal comparisons of compiling Rust (or compiling with Rust), where M1 has come out looking good.

2020-12-11T14:21:34.125200Z

for staging environment, what abbr do you prefer, stage or staging?

2020-12-11T14:21:45.125500Z

test, stage, prod. or test, staging, prod

borkdude 2020-12-11T14:22:45.125700Z

staging

borkdude 2020-12-11T14:23:03.125900Z

we use the word beta for this

dgb23 2020-12-11T14:30:29.126300Z

we use ‘dev’, ‘staging’, ‘prod’

dgb23 2020-12-11T14:31:32.127200Z

staging as I/we have used it implies that the data is real and might even be migrated

dgb23 2020-12-11T14:32:02.127600Z

I wonder what other people’s semantics are!

borkdude 2020-12-11T14:32:16.127900Z

we use beta only for internal demo-ing

2020-12-11T14:53:37.130300Z

we dev everything against live, need to update a stored proc, log onto the prod db, modify the source and f5. EVERY F5 is terrifying an adventure 🙂

2020-12-11T14:54:48.131300Z

Ive been going on for 3 years wanting prod / dev / test seperation but its never happened yet. Apparently its all too hard / too complicated.... Just be careful is easier 😡

Mno 2020-12-11T15:12:25.132800Z

I hope someone somewhere names their branches in greek alphabetical order (alpha, beta, gamma, delta, epsilon, zeta… etc)

Mno 2020-12-11T15:15:22.133100Z

It would make me happy.

hequ 2020-12-11T15:29:37.134600Z

I've also wondered if there is any difference between staging and qa (do people perceive these as different things). The projects where I've been part of have usually had dev, qa and prod. Some people use staging but I've never get used to that.

hequ 2020-12-11T15:30:34.135400Z

And to be clear, qa has been test-like environment (using test data) but more stable than dev.

2020-12-11T15:34:34.136400Z

Is there a difference between UAT and Staging? (We have UAT and not staging and we use UAT both for user testing and also for us to deploy changes to prior to their going to production.)

2020-12-11T15:41:01.138Z

We have an in-house QA team as part of IT, and they do their tests on Staging, and if it passes, we put it on the UAT server, and folks from the business side test it.

👍 1
2020-12-11T15:41:33.138900Z

Generally if version n is in UAT, version n +1 is in Staging.

tvaughan 2020-12-11T15:44:17.141100Z

If we're talking about names, like part of a dns name, where instances have been deployed, we use branch names and git hashes. The branch name is an alias that refers to the latest git commit on that branch name. We also use beta to refer to whatever it is we plan to roll into production. If we're talking about names for configuration profiles, like use the settings from configuration profile X, we only have production and testing.

dharrigan 2020-12-11T15:54:23.141500Z

we have gone with the ill-named "test" as the name of our staging environment

😿 2
dharrigan 2020-12-11T15:54:28.141700Z

not my decision

2020-12-11T16:38:00.142Z

that was rosetta vs. native on one machine

2020-12-11T16:38:12.142200Z

or maybe you are asking about the other comparison in the backlog?

jimmy 2020-12-11T16:47:00.142500Z

We do 🙂 https://github.com/noprompt/meander #meander

Mno 2020-12-11T17:15:11.142900Z

You’ve successfully made me happy 🙂 thanks

dominicm 2020-12-11T17:27:20.143300Z

I may not actually know what rosetta is 😁

dominicm 2020-12-11T17:28:41.143500Z

I think "staging" named literally is the "staging environment before switching to prod". So it's kinda a "last step" in the process. I think meaning has been diluted. I generally favour the term "pre-prod" for this class of environments.

2020-12-11T17:28:56.143600Z

rosetta is a CPU compatibility layer for running x86 on non-x86 mac

dominicm 2020-12-11T17:29:01.143800Z

@dharrigan At least you didn't end up with "dev", then local dev vs live dev becomes very confusing.

dominicm 2020-12-11T17:29:17.143900Z

OH. I see. Okay.

2020-12-11T17:32:23.145100Z

@dominicm interesting, I always thought of it as "the deployment environment where you expect deploys to fail", and other environments (including UAT, pre-prod, production...) are protected from broken states by trying staging first

2020-12-11T17:32:48.145600Z

but that was just from the informal side of collaborating in a workplace, I never looked up a formal definition

2020-12-11T17:33:39.146600Z

in my mental image, "staging" something is setting it up and seeing if it looks like it would collapse - we would do this in physical construction, and if it would it's not too late to frame up and continue work

2020-12-11T17:35:04.147300Z

or in the performing arts world, you would "stage" a reading or rehearsal in order to apply mild stresses and see weak points

dominicm 2020-12-11T17:42:39.147400Z

@noisesmith Maybe. This was just my interpretation of the word 😁 The meaning is super diluted from my experience.

2020-12-11T17:44:05.148Z

yeah, it's most likely a pragmatic term describing a thing we want to do, not a technical term

2020-12-11T17:44:26.148500Z

and that means its meaning will skew as the way we do things does, and devops has evolved a lot in the last couple of decades

rgm 2020-12-11T17:45:24.149500Z

Now I’m resisting running around changing http://stg.whatever.com to http://dress-rehearsal.whatever.com

💯 1
2020-12-11T17:46:05.150Z

I mean, there's also staged readings, table reads...

rgm 2020-12-11T17:46:17.150300Z

it’s a rich vein for sure

rgm 2020-12-11T17:46:34.150700Z

and like all metaphors should be pretty airtight.

2020-12-11T17:46:43.150900Z

🎈

2020-12-11T17:47:59.151900Z

a smart person once told me that an analogy is a defensible metaphor (that is, contains certain specific relationships such that you can use it as a tool, and carries some indication of where it doesn't apply)

dpsutton 2020-12-11T17:48:38.152100Z

ztellman?

2020-12-11T17:51:12.152800Z

someone you wouldn't know, but I think both he and ztellman read the same authors (Norbert Weiner, Claude Shannon, Stafford Beer, Heinz Von Foerster)

👀 1
dpsutton 2020-12-11T17:52:34.153500Z

ah. figured it might have been him based on analyzing a type of communication like that

2020-12-11T17:56:31.154Z

it's a similar set of obsessions, systems and information theory coupled with an interest in literature

2020-12-11T17:56:57.154500Z

and more generally, seeking a general method for cross-discipline knowledge

2020-12-11T17:57:08.154800Z

(it gets very recursive)

dharrigan 2020-12-11T18:57:57.155300Z

I concur here. dev is anything local (in reality, I call my local development, local 🙂 ) For me, dev and local are synonymous. We have, outside of local (dev), just three environments, "play" (urrgh, dislike that name too), "test" and "live".

2020-12-11T19:04:14.155500Z

the distinction I was going for is that you have different stakeholders for different non production environments, in my experience the one people call "staging", if it exists, has the author of a change as a stakeholder, and it exists because there are failure modes that exist on real infrastructure that don't exist locally. it's the first networked system that new code sees, and a filter before the code sees other environments with other stakeholders (like the QA team and adventurous end users) who don't want to be bothered with random shallow bugs

2020-12-11T19:05:00.155700Z

I've never seen "staging" used as a name for the last system the code runs on before prod, except when there are no intervening layers

2020-12-11T19:05:45.155900Z

of course a lot of this nuance disappears if you don't do microservices, or your microservices are unusually well designed

seancorfield 2020-12-11T20:20:33.158700Z

MS having been pushing Teams very aggressively lately. I took it for a spin at work because we are all O365 subscriptions and it is "okay" but it's not Slack -- but it's "free" for us, compared to paying for Slack. Luckily, we're a small enough company that Slack isn't very expensive but, still... I can see how MS will be able to stop Slack getting a foothold in any company that's run on O365...

mpenet 2020-12-11T20:28:46.160500Z

It's terrible at scale. We had to use it for a while and it was not good to say the least.

mpenet 2020-12-11T20:29:42.161600Z

The call feature in particular is quite glitchy

seancorfield 2020-12-11T20:30:18.162400Z

Good to know. We're only a dozen folks so I suspect it would be fine for us. We don't use Slack's call functionality -- we use Zoom -- so I suspect we wouldn't use Teams' call functionality either.

mpenet 2020-12-11T20:33:29.163400Z

Zoom is definitely better. Meet is really good too (we use that)

borkdude 2020-12-11T20:39:04.163700Z

yeah, Zoom is a lot better than Slack's call thing