This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-04-30
Channels
- # asami (10)
- # babashka (14)
- # beginners (71)
- # calva (56)
- # cider (8)
- # cljs-dev (3)
- # clojure (111)
- # clojure-australia (1)
- # clojure-europe (19)
- # clojure-nl (4)
- # clojure-uk (147)
- # clojurescript (4)
- # cursive (8)
- # datalog (1)
- # datomic (19)
- # emacs (4)
- # graalvm (32)
- # helix (14)
- # jackdaw (7)
- # jobs-discuss (10)
- # juxt (4)
- # lsp (3)
- # malli (47)
- # meander (6)
- # off-topic (29)
- # portal (6)
- # re-frame (1)
- # react (3)
- # reitit (24)
- # releases (1)
- # remote-jobs (4)
- # reveal (33)
- # rewrite-clj (3)
- # shadow-cljs (5)
- # sql (10)
- # tools-deps (4)
- # vim (7)
- # xtdb (151)
I'm curious, what are you using (if at all) for rendering the frontend with Clojurescript, i.e., component library?
Iâm experimenting with https://htmx.org/ for my side project, for some oldschool-but-newschool server side html work. Pretty happy with it so far, but itâs not a complex application that Iâm using it for.
but I am really disillusioned with react, at this point with cljs I think one doesn't need react although it depends what is the goal of the thing that we are building, personally I am not a fan of using something because it's popular (so other people can be hired and start working next day, which is the only reason anyone cares about popularity)
thank you both, reading. I've never really been a frontend dev, although I have done an experiment using vuejs + bootstrap-vue. So, whilst I'm playing with Clojurescript atm, I'm just a bit unsure/lost as how to make the frontend pretty.
For styling, Iâd say just use https://getbootstrap.com/ if youâre unsure. Easy to drown in all the options otherwise. If itâs more of a learning experience, you can use no styling tools whatsoever, of course.
what styling. I mean, it's hard to make a good CSS system that doesn't end up making your life difficult, but not harder than writing any good software system
I was a bit surprised that our frontend team donât use a CSS library/framework â but then we have a full-time UI/UX person who has created our âhouse styleâ from scratchâŚ
(theyâre a big fan of Adobe XD and apparently now they can design âcomponentsâ and export them to all sorts of media, of which CSS is just one flavor)
1. BE devs have their environment fully in control, usually a single system FE devs need to consider people using multiple different devices, different OS, different screensize, different capabilities (e.g. touch or not) 2. BE devs have control when they change the runtime, FE do not, we use what the client use 3. BE devs have sync db connection, you write save-to-db and next line you know your data is saved (or something went wrong), FE devs have localStorage which is a bad k/v database, or you need to include something heavy like datascript to have database that's moderately useful 4. However, another really big issue is due to the nature of the problem BE devs write software whose output will be consumed by other software, you can do linear state transitions and everything will be fine most of the time. That never works for FE For frontend, all the state that is represented must be thought as "shared" even if they are not actually related in any other way, because to be able to construct a proper FE experience, you often need to implement effects that affect the whole visual experience. Linear state transitions are not good enough anymore.
Itâs all wizardry to meâŚ
Oh yeah, the FE stuff is off-the-charts hard. I donât know how they get anything done. The daily standup is always a revelation when the FE folks talk about what theyâve been blocked byâŚ
a bit of clarification on my side. It's not so much the styling, it's the ability to do things, i.e., to "react" (pun not intended), to things. i.e., pull down data from the server, render it in a table, make each row clickable, fire an event. Add a button to a row, make that do something as well, show a dialog box, let the user click on it, handle the yes/no response...and then, yes, make it look pretty.
I echo @seancorfield's feelings here. FE just feels so hard đ
well, I think I have learned it so that I can reliably implement things, but without clojure and without lots of clojure talks I would've never been able
I like the warm bosom of backend dev, it's just data flowing in and out, with transformations đ
Today, I updated our âdeploy to productionâ console (which is built into our overall staging system admin app) and I wanted to display the versions of JARs on staging vs production â and that requires calls out to staging and production so I decided to display the page and then use JS calls back to the server to initiate those and populate the table. Writing the BE code to go fetch the versions took me maybe fifteen minutes. Writing the FE code to do the async calls and update the page in the browser⌠took me fâing hours! I hate JS.
Almost anything I do with JS takes me hours.
also about integration testing, I don't agree with dnolen that automated tests are not useful, I refactored a big chunk of FE last week, at the end I ran the tests, caught all the remaining issues and I was able to not waste time with manually clicking around. Testing FE takes way too long, people just ive up đ
but these tests start with loading the page, clicking on elements, typing realistic values, reading the DOM, checking sizes of DOM elements... it's not just an 'assert'
btw, the 4th issue, and I can't let it go if went this far, I think ultimately leads to the conclusion that encapsulation on the frontend is a much worse idea than anywhere else
I got my final proof for this when I read this github issue:https://github.com/facebook/react/issues/11527#issuecomment-360199710
> I want to highlight that in typical React apps that rely on `setState()` this is the single most common kind of React-specific refactoring that you would do on a daily basis.
Our FE team are big on automated testing. And every new feature and every bug fix they do gets tests.
Weâve had automated BE tests for a decade and we keep adding to that suite but weâve only recently had completely automated deploys from our CI system (Iâve tweeted a couple of times about my battles with BitBucket Pipelines lately). Iâve also been working on simplifying and streamlining our build/deploy pipeline to the point where a deploy of most of our apps â 14 of them â is completely automatic to staging, based on CI builds passing, and then just âselect & clickâ in the admin console to get them to production (which our product manager / QA folks can do whenever they want â including running SQL migrations).
Automated tests are awesome. They have helped our team multiple times spot side unintended side-effects of new features
Automated deploys of all the shell scripts etc that support processes on staging/production is a little less automated â because we donât have any real automated tests around the shell script stuff â but even there itâs a single command from anyoneâs dev setup to get the appropriate scripts on staging and then a single (manual) command run on staging to get that same bundle out to all the production servers if it âpasses QAâ on staging. So I think thatâs my next target for Pipelines đ
And then, finally, thereâs the two legacy CFML apps (yes, really), and those are also now down to a local command to package them and push to staging, followed by a few scripts to deploy them and restart the CFML engines. And a single command to push them to production, followed by a similar manual script step on production. Def. better than it was even a month ago. Of course we are actively rewriting those CFML apps to Clojure (and have been for years â itâs a lot of work) so that we can get to the same, fully-automated test & deploy CI process for those too.
I didn't intend to say dnolen is against all automated tests, just in context of FE testing the other day he told me this https://clojurians.slack.com/archives/C03S1L9DN/p1618931137246900
To be fair, heâs advocating a separation that makes FE testing viable/easy â just not testing the UI portion.
Seemed to me that what he described as an ideal situation is specific to his needs, not a generally applicable approach
and there are details that I bet would be causing trouble, like, if as he said all components are in js, that is basically saying almost all the important stuff is not in cljs
so what I suspect is happening is that they avoid all the issues from putting behavior in the js components, but that's not really something anyone or any company can do
I canât comment on the cljs issue since our FE is pure JS â React.js, Immutable.js, Redux, etc â but I know the FE team has worked hard to be able to automate testing of all the components, independent of the actual UI.
Oh yeah, seriously great stories. Iâm in awe of them.
Iâd never heard of Cypress until the recent âState of ColdFusionâ survey (like our State of Clojure survey) and it was a popular write-in answer to âWhat testing frameworks do you use?â
I am using puppeteer right now though, I think when* I tried Cypress had some dev env issues
on a different note, what do you think about my conviction that we (as in software people :D), should be actively producing many many more browsers for the internet?
What do you mean by âbrowserâ in that?
Do you mean more programs like Edge, Chrome, Firefox, etc?
Yes, as in, yes today all browsers are like that, no as in that's why we need more, that we need diversity.
Essentially, if you reverse the situation, what this would mean not for the users of the browsers but the makers of the interfaces that we (FE devs) would not have to repeatedly write the same code. I imagine this whole thing along the lines of what Bret Victor talks about in his talks. E.g. when he mocks APIs, if you have seen it.
How would âmore browsersâ not mean âmore pain for FE devsâ?
I use Firefox for online banking and nothing else I use Vivaldi for everyday browsing I use Chrome when I want things to just work and I don't mind being extra spied on to pay for it
vivaldi I block 3rd party cookies chrome I dont
I use firefox for most things but I have to use chrome/ium for google meet and other assorted things
it does feel like google have a habit of breaking things in firefox and not really being arsed about it
I only use Microsoft Edge â on macOS, Windows, and Linux.
OMG! :rolling_on_the_floor_laughing:
I switched (back, after 6-7 years or so) to Firefox about 6-8 months ago, because there was a bug in some Chrome helper on macOS that kept maxing my CPU that eventually annoyed me enough to lose the benefit of multiple logged in profiles. Firefox containers does that anyway, more or less
And the profile stuff was always more of a pain on Windows, whereas FF containers works the same in both (and Linux)
I meant it generally, not specifically. Why would anyone in general use more than one browser, not why would specifically use more than one browser from the existing ones.
Second question has good answers, I use more browsers because I need to test what I do with them đ Or because they have different 3rd providers baked in, e.g. difference between Edge, Chrome, Brave is just that.
Think of it like this, how many other kind of browsers do we use, next to the web browser?
I use a tonor tc30 which I picked up for cheap on amazon, it works flawlessly on linux if you care about that
A cow-orker has a different (slightly more expensive) Tonor mic, and said the sound quality is quite poor (and it has bad reviews on amazon).
hmm, this one seems pretty good for sound quality, but I must admit I mainly only wanted a step up from the one built into my webcam
I'm not really recording podcasts or anything
Based on the negative amazon reviews for the tc30, I'm getting the impression that the sound quality is fairly good, but that it picks up a lot of background noise
when I tested it out and first got it it seemed like a big upgrade from the built in one in the webcam, but your milage may vary, it is on the cheaper end of the scale
what is the mic for?
i use a clip-on lavalier mic and it's the business
@U79NZHC6A work meetings
Depends what you want to use it for and what environment. E.g. for recording or meetings or streaming or anything else.
All mics work best if you can talk right into them, the farther they are the more problems you will have.
I also got a cheap knockoff usb mic (won't share the name because I just checked and seems like they are shipping bad units now, there are many more bad reviews than when I bought it...)
If you can isolate the stand from vibrations and move the mic close to your mouth, you can easily set up almost any quality microphone to have exceptional quality.
imho, if it's only a little more....why not get it? It's something that I've used quite a lot whilst working from home. The quality is outstanding, and I always have the view it's better to spend money on good quality stuff, then buy cheap stuff repeatingly.
https://www.amazon.co.uk/dp/B08VGMGXKQ seems to mostly have good reviews, or for a little more https://www.amazon.co.uk/dp/B08L91T9QV may be better, but I'm not sure I want a boom arm
I don't particularly trust reviews on amazon, but the first of those was recommended somewhere that's probably more reliable
i don't trust the review that is positive, but i do trust negative reviews with photographs that sound human
https://www.v-moda.com/us/en/products/boompro-microphone I have one of these too, very useful
a decent clip on lav mic is a tenner
if you can be bothered to clip it to your collar before a meeting
The ÂŁ10 ones on amazon don't seem too good from the reviews, as best as I can weed out user error, bad luck, etc
i have a ten quid lav mic and it's brilliant, there's almost nothing that can go wrong as they're v simple devices
i use it for calls, as a field recorder, i've used it with my mobile while out cycling & once a week i do a virtual ride with mates where i clip it to the handlebars - it can handle the fan + bike on the trainer with the wind puff, so
as far as cheap solutions go đ¤ˇ
oh yeah obviously i connect it to a macbook with the standard TRS jack. TRRS/ TRRS -> USB-C is always a strong case of YMMV 'cos there's not really standards
looking at one star reviews it's people having issues with TRRS vs TRS
I use headphones with a mic on. By far and away the biggest issue workmates had before that was their own voice feeding back to them from my speakers through the mic, and even relatively good mic still did that. The headphone one being nice and close to my mouth meant I could have the pickup level quite low too. And of course it was directional, but I imagine the standalone more expensive ones were too
@U6SUWNB9N I currently have a work provided headset, but I'll have to give that back when I leave. Plus swapping from nice headphones to the headset for meetings is suboptimal. So the plan is (separate) mic + headphones
https://www.amazon.co.uk/SteelSeries-Arctis-All-platform-compatibility-Detachable/dp/B07PS3Y5BY is what I got my last place to get for me as a 'video call headset', because anything without pretty hefty ear cans that prevent any part of the headphone from pressing on my ears at all ends up hurting in any meeting longer than ~10 minutes
I'm also used to that style, as https://www.amazon.co.uk/SteelSeries-Arctis-All-platform-compatibility-Detachable/dp/B07B819VMQ?th=1 is what I have for gaming on my desktop
Prior to that I had some open backed Sennheisers which were more audiophile headphones, and I stuck an AntLion ModMic onto them: https://www.amazon.co.uk/Attachable-Noise-Cancelling-Microphone-Playstation-GDL-1500/dp/B07YN26PBT/ref=sr_1_4?dchild=1&keywords=antlion+modmic&qid=1619874871&s=computers&sr=1-4
But wireless became more important for me once we had Matt. Less for him to grab, and if he is elsewhere and yells I don't need to remember to take the headphones off before going to get him, which was a problem several times, hence I bought the Steelseries headset
https://www.amazon.co.uk/dp/B002DP8IEK https://www.amazon.co.uk/dp/B01ERLN180 https://www.amazon.co.uk/dp/B07N3RPPB7
I've just got a set of bone-conduction bluetooth ones, but they're for when I'm out and about more than anything else
For that I use https://www.amazon.co.uk/dp/B08C7C29JK/
I really like âem. A bit buzzy (on my head, not sound wise) at high volumes, but I absolutely donât need them that loud. And they donât sit in my ears (which also make âem hurt)
https://www.amazon.co.uk/Status-Audio-Closed-Monitor-Headphones/dp/B01BDX1IVW https://www.amazon.co.uk/Philips-SHP9500-00-Headphone/dp/B00ENMK1DW/ https://www.amazon.co.uk/gp/product/B083T4XJDY the first two, I think I will buy more as time passes as both are exceptional for the price the last one definitely not đ have a bunch of others too that i don't or can't use now because they are broken đ although the important parts sound wise are good, many new headphones are built in such a way that if they break, it requires extreme effort to fix them, often better to just replace most of it
morening
morning
@dharrigan: re-frame for me