Despite tech-savvy reputation, Gen Z falls behind in keyboard typing skills
dejected_warp_core @ dejected_warp_core @lemmy.world Posts 2Comments 1,186Joined 2 yr. ago
Wait, is this a meme template for the Complaint tablet to Ea-nāṣir? That's incredible.
Looking for bread tumors?
Honestly, this is why I tell developers that work with/for me to build in logging, day one. Not only will you always have clarity in every environment, but you won't run into cases where adding logging later makes races/deadlocks "go away mysteriously." A lot of the time, attaching a debugger to stuff in production isn't going to fly, so "printf debugging" like this is truly your best bet.
To do this right, look into logging modules/libraries that support filtering, lazy evaluation, contexts, and JSON output for perfect SEIM compatibility (enterprise stuff like Splunk or ELK).
Heisenbugs are the worst. My condolences for being tasked with diagnosing one.
Potion Effect Rule
- Gratuitous amounts of energy
- Energy Legs
- 400 babies
Permanently Deleted
Last time I did anything on the job with C++ was about 8 years ago. Here's what I learned. It may still be relevant.
- C++14 was alright, but still wasn't everything you need. The language has improved a lot since, so take this with a grain of salt. We had to use Boost to really make the most of things and avoid stupid memory management problems through use of smart (ref-counted) pointers. The overhead was worth it.
- C++ relies heavily on idioms for good code quality that can only be learned from a book and/or the community. "RAII" is a good example here. The language itself is simply too flexible and low-level to force that kind of behavior on you. To make matters worse, idiomatic practices wind up adding substantial weight to manual code review, since there's no other way to enforce them or check for their absence.
- I wound up writing a post-processor to make sense of template errors since it had a habit of completely exploding any template use to the fullest possible expression expansion; it was like typedefs didn't exist. My tool replaced common patterns with expressions that more closely resembled our sourcecode1. This helped a lot with understanding what was actually going wrong. At the same time, it was ridiculous that was even necessary.
- A team style guide is a hard must with C++. The language spec is so mindbogglingly huge that no two "C++ programmers" possess the same experience with the language. Yes, their skillsets will overlap, but the non-overlapping areas can be quite large and have profound ramifications on coding preferences. This is why my team got into serious disagreements with style and approach without one: there was no tie-breaker to end disagreement. We eventually adopted one after a lot of lost effort and hurt feelings.
- Coding C++ is less like having a conversation with the target CPU and more like a conversation with the compiler. Templates,
const
,constexpr
,inline
,volatile
, are all about steering the compiler to generate the code you want. As a consequence, you spend a lot more of your time troubleshooting code generation and compilation errors than with other languages. - At some point you will need
valgrind
or at least a really good IDE that's dialed in for your process and target platform. Letting the rest of the team get away without these tools will negatively impact the team's ability to fix serious problems. - C++ assumes that CPU performance and memory management are your biggest problems. You absolutely have to be aware of stack allocation, heap allocation, copies, copy-free, references, pointers, and v-tables, which are needed to navigate the nuances of code generation and how it impacts run-time and memory.
- Multithreading in C++14 was made approachable through Boost and some primitives built on top of pthreads. Deadlocks and races were a programmer problem; the language has nothing to help you here. My recommendation: take a page from Go's book. Use a really good threadsafe mutable queue, copy (no references/pointers) everything into it, and use it for moving mutable state between threads until performance benchmarks tell you to do otherwise.
- Test-driven design and DevOps best-practice is needed to make any C++ project of scale manageable. I cannot stress this enough. Use every automated quality gate you can to catch errors before live/integration testing, as using valgrind and other in-situ tools can be painful (if not impossible).
1 - I borrowed this idea from working on J2EE apps, of all places, where stack traces get so huge/deep that there are plugins designed to filter out method calls (sometimes, entire libraries) that are just noise. The idea of post-processing errors just kind of stuck after that - it's just more data, after all.
My unqualified opinion: I think It's easier to craft a wig this way.
I've found that when I'm exhausted, I literally don't have the energy/bandwidth to be anxious, let alone indulge in any mild dysmorphic hallucinations from the mirror. Even my typical ADHD symptoms are muted a bit. A tired brain is a much happier brain; just don't ask me to do math or anything complicated and we're good.
You say this, but have you ever tried to drive a car (sober) that is packed full of drunk people? It's not easy, and they all might just get you pulled over anyway.
Outright prohibition never works. They have to get a lot more clever to work against addiction.
Reading the article, I see why this is a problem to be addressed. At the same time, I'm not sure how in the world you would directly "fix" this other than outright banning unruly customers after they cause problems.
The best course of action might be to quietly work with restaurant managers in major airports to start watering down mixed drinks, and serve lower-gravity beer and wine, on heavy travel days. I'm mostly sure this is how amusement parks operate; they just need to consult with Disney or SixFlags on this one. The threat of airlines (or the airport) banning heavy restaurant customers might be motivation enough. That way, restaurants make more money, airlines have (maybe) less nonsense to deal with, and there's no documented limit on beverages.
To me, that implies that it's been fermented/cured somehow, which just raises more questions.
Edit: Whoa.
Permanently Deleted
Yup. Nobody else gets those cookies.
“this is as far as you can go if you don’t want to get involved in management”
Yes. That exactly. This typically comes with a nice perk: Principals are supposed to have the same clout as lower-level managers. Which is to say they usually report to Directors or even the CTO in some organizations.
Another one is "Independent Contributor" which is similar but, as the name would suggest, is very self sufficient and does not work on (or for) a team. They're basically one-man engineering shops and are expected to perform well everywhere in the company's tech and talent stacks. As a result, ICs are very rare.
The other pivot point is The Pragmatic Programmer, which is totally understandable.
That book does a good job of grounding the reader through examples and parables from everywhere else but IT. By the end, you realize that good software engineering makes the best of general problem-solving skills, rather than some magical skillset peculiar to computing. You wind up reaching a place where you can begin to solve nearly any problem through use of the same principles. So @codex here, perhaps effortlessly, went on to management instead.
Yeah, I know that the super-flat planar look was the intent, but there's a reason why you don't see much in the real world that resembles the cybertruck. It turns out that the non-planar features of typical car panels are there to add rigidity. Flat sheet metal wants to bend, twist, wave, and even flap in the wind. So there are probably internal supports or struts welded to the panel backsides, in order to keep them flat. Problem is, that process tries to distort the panels due to heat from manufacturing.
And since they opted for stainless, this adds additional problems. In this case: you can't hide imperfections with bondo and paint. The panels have to be perfect, every time. It requires tolerances that belong on a sports car, not a pickup.
First off, boating is a losing situation in the real world. Boats are super expensive and require a ton of maintenance constantly. You never own a boat; you own a money pit to maintain.
I just want to back up this statement. OP, this is the exact reason why having a boat is a flex. Nature is constantly assaulting everything man-made in this world, and water is by far the most destructive element in that fight.
I'm pretty much in this camp.
I've tried some of the stimulant treatments, but they leave me feeling completely wrung out by the end of my shift. And being on that stuff for more than 12+ hours just seems like a recipe for heart disease.
Same. Let's rock.
I just want to echo your sentiment with something I've been saying here for a while now: