When I sped it up to five minutes, I’ve never seen someone become so pissed off.
425 karma · joined February 19, 2013
When I sped it up to five minutes, I’ve never seen someone become so pissed off.
For readability, yes... sometimes, but for readability sake, not “I don’t know what this does without them.”
I’m not just talking about math operators, but logical ones too. I’ve seen people put parens around every “not” because they weren’t sure. There are three essential logical operators. Surely those can be learned at least. And yes... in those cases where readability is an issue, of if they’re necessary, please do add them, but please don’t if you’re unsure what “!a && b || c” does. Seeing “((!a) && b) || c” raises red flags.
For example: Countless engineers I’ve worked with don’t know operator precedence. So tons of ”y = ((i * m) + b);” type stuff. Do not need any parentheses in this case, but if I remove them, then they have no idea what happens... So they litter all math with superstitious parens.
There are so many better examples, but you get the idea. I have suffered “coding standards“ that existed solely because of the devs that won’t RTFM.
It made sense as a convenience fee, until it became ubiquitous. Now it’s a tax that people are blindly opting in to.
I can’t stand it when an engineer wastes hours looking for a library, instead of even considering actually writing code themselves. Many just can’t because they’re so accustomed to glueing together other people’s code.
Of course, I’ve worked with academic types that can never stop theorizing and actually be productive. That have zero discipline.
There has to be a balance. But yes, fresh out of school == fairly worthless for anything I’ve worked on ever.
Logging bugs would trash the flash storage in months or weeks. Other bugs and “features” would drain the battery so aggressively that several phones caught on fire, some injuring customers. We found ways to hide our actual power usage and circumvent protections that would have prevented rapid battery discharge.
In a meeting, it was said, “Stupid Apple won’t let us run background processes.” To which I thought, “Thank God.”
It was Apple’s approval checks and policies that prevented this app maker from potentially physically damaging their customers’ phones with this terrible software. Physical injuries weren’t enough to fix the bugs or stop messing with low level settings. Nope.
There are some “choices” that shouldn’t be put upon consumers. There are some profoundly bad developers out there. Shouldn’t there be protections from app makers that intentionally hide their shady tweaks that disable power protection safety?
Apple’s approval process does indeed root out many of the worst offenders, like my former employer.
For example, when learning ant colony optimization, I started with a naive approach. Then I tried to see if I could estimate an ideal termination condition. Then, researched known methods and refined my approach. Then looked at ways to optimize, refactor, specialize for different use cases. The hours I spent would be considered excessive to some, but far more effective than writing something that works and moving on.
As a result, I’ve used ACOs to model NPC swarm behavior for ground troops that respect mutual collisions, multiple openings, and group behavior that looks very convincing with minimal computation cost. It never would have occurred to me if I only saw it as a graph path optimization technique. I can also with an ACO from memory.
I do similar things when learning new languages. Start with something and focus on interactively refactoring it to be as idiomatic to the language as possible. For hybrid languages like Scala & Ocaml, I try different approaches and try to solve in as many ways as possible.
This is the future of web tech.
I’ve encountered a handful of companies that expect applicants to have been with their previous company for five+ years.
It’s not always the case, but it can be a sign of a toxic work environment. It’s important to discuss, because it can also just the result of recently losing a key employee.
If they demand a verbal commitment, a proving period, or some other type of assurance: run.
This was as they were building up Exchange.
Don’t spread my secret. :(
At least I enabled SSL, whitelisted the IP range, and set a password... and made it read-only.
The storage in the MBP is wicked fast even in the base configuration.