640 karma · joined June 28, 2019
something like `[hello, world]` should probably be allowed since `[hello, world,]` feels extraneous.
I think sometimes the unfortunate news you'll learn is that you did something during your career path that felt right, but put you in the wrong situation down the road. The type of change that's needed to correct that might be learning something new, applying to jobs you'll love more that are perceived as "beneath your ability" or simply changing trajectory.
I think there are a few things that I've found that always help:
* Removing the source of frustration or the thing that is burning you out -- this might mean quitting a toxic job, reducing hours, whatever. But be honest with yourself, ask for somebody who you talk to a lot to give input on what they think it is and listen.
* Rest. This doesn't have to mean "do nothing" but it can. I think a lot of people do nothing for not enough time. A 2 week vacation and then back to the grind, you may find yourself feeling fresh and re-burnt out in less time than you were gone. I'd say rest more accurately means "do something that is easy but keeps you active" or "do things you've neglected, but don't push the area you're frustrated". I find that working on something that's lower stakes or requires less back and forth and allows me to think through and fix without questions of my dedication or intention are most helpful for me, but for you it might be something else. If burnout is around coding, managing a complex, non coding problem might be helpful. I have friends who have done home improvements or setup beer brewing etc to focus their skills on somewhere lower stakes.
* Do recovery "exercises". If big projects or coding has burnt you out, slowly introduce it in a healthy manner, accounting for the changes you made by removing frustration. This should feel like the most difficult part, because you're attempting to do something new. Introduce the thing you want to do but you've been prevented because of burn-out and try slowly to do it while addressing any strains the source of your injury immediately. This might mean having more candid discussions with managers or team members to prevent toxic patterns from emerging. This may mean tempering expectations early or setting clearer boundaries. Do the hard thing and prevent re-injury. Taper, and don't increase capacity until you're sure you're gaining energy rather than losing it again.
* Be patient. I've been burnt out pretty badly with projects and it's taken several months of healthy, quiet coding in the back seat of a good team to feel well rested again. It's given me a lot of time to assess what went wrong, what I liked and what I have missed about my time resting. I'd say probably 6mo for just a single terrible 2 months of work. Be patient and trust the process.
I think you accurately picked out a problem with using purely declarative data languages -- many of them adopt or bolt on rudimentary templating languages that are inferior, bespoke and often just as turing-complete as a normal language and they're terrible. HCL managed to go pretty far with just "count" but now in HCL2 they have looping structures.
So: what is ideal? I think there are several declarative functional languages which are starting to look really good for the space, albeit a bit early -- Cue, Dhall and nix. I think all of them come with their own baggage which is why it's probably good they weren't used, but I think the point is effort could have been made to adopt them rather than dump an untyped blob structure on users.
There are a few issues I take with YAML as the de-facto language used:
* It's dangerous for capturing types it supports accurately without devolving to JSON+, especially for a "human focused" data language. It's very easy to get into undefined or mal-defined areas that are trying to be syntactic sugar.
* It presents no concept of schema or type safety to its users without being hoisted into a tool, which means all validations are implementation specific, if they exist.
* It's incredibly verbose for duplicated items, which makes it really prone to typos and hard to spot mistakes.
I think strong gitops operators are already using tooling to generate yaml for them so it's basically an intermediate representation anyways. Languages like cue and dhall embed a concept of schema validation, but if we want to use our own external tools to generate it, why don't we just say "you know what, if you want to manually write it, it's JSON, and here's a schema you can validate against" but if you want to use tools to generate it - every major language has a *correct* JSON parser and there's already a well established schema specification for generating types, with libraries available.
I think the mistake was encouraging people to write the intermediate representation manually and then letting them find a way to bolt real language features on top.
Last I looked, Colorado and IL had a lot of coop options to choose from, but nothing was as straight forward as an LLC where you just file 1 notice with the state and pay 100 bucks. LCA states are close, but you still have the "many people" issue.
* Interviewing "experts" (their level of expertise would be something you'd need to establish since no third party has prescribed that) who contribute and discuss the topic.
* Referencing cited sources.
* Referencing edit history and reverted changes, rejected sources, etc.
I think the issue is that academia has a lot of systems in place (I'd argue that they're only partially effective) that help establish credibility of experts and sources through "academic honesty" policies.
IMO, part of figuring out how to properly cite wikipedia will come with a reckoning that academic honesty isn't 100% nor are the arguments of authority that come from academia quite enough to establish credibility. I think that's the real issue -- this shorthand is pretty good, but it doesn't mesh with wikipedia's own shorthand.
Sorry for the sarcasm. I've been rolling my eyes at the comments too. Where do these lunatics come from?
Usually you pick this for stuff that is CDN oriented and front a regional service with that.
My point is that you've seemingly taken points away from Rich for the same reasons you're giving Evan You validity.
Migrating between react and vue would take probably the same amount of time -- I'm not really sure what your point is here. My point is that you've unfairly discounted Svelte on the same standards you're raising vue.
That being said, solid is hardly the only one out there competing that can use JSX:
- https://github.com/vuejs/babel-plugin-jsx
- https://mithril.js.org/jsx.html
- https://preactjs.com/guide/v10/getting-started#setting-up-js...
I think people are starting to see the power of it when it's used in a functional manner (rather than early class-based components). A lot of alternate template libraries are only minorly different in syntax and use different styles of interop to handle the crossover. I think .svelte and .riot are fairly close, while still being somewhat html-like, rather than JS first.
Also I found it weird that you mention Evan You WRT vite as a counter to why Rich might be up against stronger devs, but Rich made rollup, which was foundational to Vite's bundling.
Also, print statements or use a debugger to confirm assumptions. (I'll be honest, I rarely bring out a debugger unless a print based workflow is time consuming enough to justify remembering everything about the debugger).
- There is no reason to take them and this process will slowly fail over time as companies who adopt these policies slowly push away talent options.
- You are not the target audience of a take home assignment hiring process.
I think it's easy to believe the first since it affirms your world view. Speaking as somebody who has a deep pocket of job opportunities and has taken one of these take home assignments, sometimes those opportunities become stale or you're in a tough market or need a job immediately. A number of companies who have bad hiring practices are still fairly acceptable to work at, even if it's not ideal.
TLDR - to pay the bills.
As languages that I'm using are starting to adopt their own version manager (rust/go), I'm left using asdf pretty much exclusively for node and my eyes wander to some of the node-only tools like volta and fnm which use rust and I wondered if people were watching performance. Glad somebody is.