Because that’s what people outside of a simulation would do.
Because that’s what people outside of a simulation would do.
A huge chunk of the country is demoralized by all this. As trite as it sounds we absolutely need a pep rally, and some basic direction to go on. Right now there is a monstrous information and leadership vacuum, so anything would be preferable to that.
Not just Mars, but yes. Biodegradability isn’t even a factor since there’s no biosphere to speak of, which also raises philosophical questions like: “what is pollution, exactly?”
What will really bake your noodle is to imagine a future where we settle the Moon and Mars. Do old space program artifacts become monuments and parks (debris and all), or are they trash to be removed from the environment?
Now that you mention it, that’s probably why.
What I’m curious about is the “engineering model.”
All NASA missions have duplicate probes, satellites, rovers, here on earth. They’re essential for testing various scenarios like training astronauts (in the case of the Hubble repair missions), or testing the limits of the systems in question. I wonder if the engineering model for Curiosity has one of its wheels cut away in the same pattern, to simulate difficulties in navigation and traction?
without any real mental analysis or realization of the manipulation that’s going on.
I see it as zero introspection. That might also explain the projection, hate, and bigotry that run in those circles; it’s hard to keep that up once you see where it’s coming from. An inability to introspect is also an aspect (among many) of narcissistic personality disorder, and helps keep that pain-train rolling.
Too bad.
…
Hello there!
Java itself is kind of blissful in how restricted and straightforward it is.
Java programs, however, tend to be very large and sprawling code-bases built on even bigger mountains of shared libraries. This is a product of the language’s simplicity, the design decisions present in the standard library, and how the Java community chooses to solve problems as a group (e.g. “dependency injection”). This presents a big learning challenge to people encountering Java projects on the job: there’s a huge amount of stuff to take in. Were Java a spoken language it would be as if everyone talked in a highly formal and elaborate prose all the time.
People tend to conflate these two learning tasks (language vs practice), lumping it all together as “Java is complicated.”
$0.02: Java is the only technology stack where I have encountered a logging plugin designed to filter out common libraries in stack traces. The call depth on J2EE architecture is so incredibly deep at times, this is almost essential to make sense of errors in any reasonable amount of time. JavaScript, Python, PHP, Go, Rust, ASP, C++, C#, every other language and framework I have used professionally has had a much shallower call stack by comparison. IMO, this is a direct consequence of the sheer volume of code present in professional Java solutions, and the complexity that Java engineers must learn to handle.
Some articles showing the knock-on effects of this phenomenon:
Yes, but “Proto Indo-European” doesn’t exactly roll off the tongue. /s
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.
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.
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.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.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.
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.
Oh no, I have to press up
200+ times if we’re counting all the detritus and failure in my command history.
There is an advantage to this approach though: fewer errors. You’re plucking a known working command from a list instead of manually typing a (possibly) broken version of it. Worse yet is when it’s a command where typematic mistakes cause unintended side effects like data loss. So, mashing up
100 times can be pretty smart, especially if you’re not a great typist.
Upvoted for the dancing and singing emoticon. Nice art.
This man is a menace and must be stopped.
Eh, I’m used to it.
As someone who just picked through the Zig docs (take this with a mountain of salt), Zig has a few things going for it:
Go foists co-routines on you and the runtime, and Rust has the borrow checker. Both of these things deeply impact language design, standard libraries, and the overall developer experience. So Zig might actually be a “more modern C” in many ways which makes it a contender. That said, it’s not a 1:1 comparsion since it lacks everything else that C++ does: you’d have to re-envision your software designs as something other than OOP if that’s what you’re used to.