HNHacker News
TopNewBestAskShowJobs

safety-third

93 karma · joined February 7, 2020

submissionscomments
safety-third··on Glitch employees vote to form union, joining CWA
The affiliate thing might be interesting. Insurance is a no-go though. There would be incentive to strike to get more payout on the policy. Or worse, an insurance company would take it and would audit every strike for "legitimacy."
safety-third··on How to Write Usefully
This is how I do it as well. I usually find inspiration that makes my code much better. My secret sauce is telling others I am debugging it instead of making a new draft. This keeps someone from insisting that my first draft is "good enough."

In addition, I design my programs such that I can confidently rewrite important sections. This is OOP encapsulation's main purpose. In practice, everyone writes getters and setters until every object is an ugly struct.

safety-third··on Generics in Go with Ian Lance Taylor (2019)
Go's compile speed is its raison d'être. It straddles the line between convenient scripting languages and heavy compiled languages.

You deal with boilerplate using either interfaces or code generation. It's not as pleasant as first-class generics, but it's not completely awful either.

safety-third··on Time safety is more important than memory safety
Same here. We are stuck in Watcom F77 right now due to using some old extensions. We are in the middle of eliminating control characters from format statements so we can finally upgrade to new compiler.
safety-third··on Time safety is more important than memory safety
I actually have had the pleasure of porting a program from a defunct 16-bit language called Actor to C++. It wasn't a huge deal even at around 800 kLOC. All mainstream languages in the future are going to have some combination of structured, functional, and object-oriented programming. Converting is mostly going to be about syntax and libraries.

As someone who has worked with C and C++ for living for over 20 years, I wouldn't think twice about picking either Go or Rust if I were to start again. Go gives you the fast edit/compile/test loop of an interpreted language with the runtime speed of a compiled language. Rust is the language that the C++ Committee would make if they could start over.

That being said, Go will never take over the C, C++, and Rust niche. Going to and from Go-land and C-land is too expensive. Google has no interest in stepping behind libraries that aren't internet servers. Go will live a long life as a great environment to port your Python, Ruby, and other bloated server languages. It just will never be the next language to write a web browser.

Rust is amazing though. I see this as the programming language of the future until the U.S. Government slams down the hammer and forces everyone to use DOD-approved Ada.

safety-third··on How Big Technical Changes Happen at Slack
Commercial success has little to do with your tech stack choices. I don't understand why people are so obsessed with jumping ship for the latest shitty framework just as the old one is getting really good and stable.
safety-third··on The Economics of Clean Code
No, it is very much LSP compliant. The purpose of toString() is to give a string representation of the object. Most overloads of this do exactly that.

An LSP violation of toString() would be something that returns a string that doesn't represent the object. If you were to return the current time as a string for an object that has nothing to do with time, that would be an LSP violation.

safety-third··on Event-Driven Architecture
In my experience, much more damage has been done by people who implement EDA and fancy cloud architecture in general. Something like 95% of applications are simple CRUD with a minuscule amount of custom domain logic. Doing anything beyond a sanely laid out monolith for these is resume padding and potentially project killing. I think people just don't want to admit that their job is validation, presentation, and shuffling data in and out of a database.
safety-third··on The Economics of Clean Code
LSP just says that derived classes should behave similar to their base classes.

    class Base {
        virtual int size() { return size_; }
    ...
    class Derived : public Base {
        virtual int size() { return rand(); }
    ...
Here we see an issue. Derived is overriding Base's size method, which has a straightforward implementation, with something wild. If a Derived is sent to a method expecting Base-like behavior, something bad is going to happen.

Derived should act like a Base with slightly different implementation details. This is all LSP is. It's a fancy phrase for a very simple concept.

safety-third··on The Disneyfication of a University
Prosperity Gospel is very different from traditional Christianity. It is much closer to New Age Spirituality than most Christian denominations.
safety-third··on A dark web tycoon pleads guilty, but how was he caught?
This would be more NSA jurisdiction and they do. The problem is most people's assumption is that if one part of the government has it, then everyone gets it. This is wildly false. Even within the FBI itself, different departments and cases get different tiers of access.

Even when the case agents get access, policy dictates what evidence is allowed to be taken to a public trial. Otherwise you get repeats of the FBI/4chan/8chan debacle. This is especially true for legal "grey areas" like mass surveillance. This means that agents will often get evidence they won't use in order to guide active surveillance using more legal means in order to collect evidence they feel comfortable admitting in public court.

safety-third··on Technical debt and tacking into the wind (2013)
>You could end up throwing away years of edge case handling

I work with software that has been continuously worked on since the 60's. It has the dreaded legacy if's like below everywhere.

    if(obtuse variable) then
       change a few other obtuse variables
There have been at least three attempts at major rewrites done of the software. The main goal was always to get rid of those corner case ifs everywhere. Every single attempt failed because we lost our ability to handle massive amounts of our customer's projects. Each of those ifs does something important.

One of my main projects throughout my stay has been to reduce these with small, disciplined improvements. I have made major headway in this fashion. You have to find the leaves of your software and work your way up while rigorously testing your changes. This is the exact opposite of the human gut reaction of a massive top down rewrite. It's impossible to tell how far you are off-course until it's done. It's the waterfall method of refactoring.

safety-third··on The Disneyfication of a University
It comes from two religious movements in the U.S. that became popular starting in the 50's and has been gaining momentum ever since: Prosperity Gospel and New Age Spirituality.

They both focus on you projecting "good vibes" and only allowing others who also project good vibes around you. If you can do this, then (Nature/God/the Universe) will reward you.

safety-third··on Software-dependent devices: do they now need expiration dates?
Always on accident of course. There is no way a hardware manufacturer would intentionally sabotage their products to boost sales.
safety-third··on Software-dependent devices: do they now need expiration dates?
Sony literally bricked my PS1&2 compatible PS3 with an update and offered me something like a $20 gift certificate for Sony products for my troubles. I haven't bought anything Sony since.

The real issue is that courts hesitate to turn the screws on the companies that get caught doing this. If Sony was forced to pay 5x original cost in penalties, the cost-benefit analysis wouldn't have been in their favor.

I am today about to replace my Android because I can no longer update because the install gets bigger every year and I have run out of space. I am seriously considering going to a flip phone and using a small laptop or something else linux powered for my previous smart phone usage.

safety-third··on No engineer has ever sued because of constructive post-interview feedback
I dislike pseudocode. I make candidates use an actual language because it smoke checks the ones who put X years of Y language. I don't demand perfection, just that the general shape be there.
safety-third··on No engineer has ever sued because of constructive post-interview feedback
I have personally hired false positives. Like you say, they are expensive. I have never once hired someone who was literally incapable of doing the job. It's never because of work directly. A person who was incredibly professional in the interview turned into a massive asshole at the office. One fought good coding practices because he thought it was over-engineering. Another spent all day playing online poker on their phone. One spent their entire time at the office making Forth interpreters.

Doing 7 hours of whiteboarding interviews for every candidate won't flush out any of these. Not a single one. If you can tell me the magic 8 ball I need to shake to fix this, I am wide open to suggestions.

safety-third··on No engineer has ever sued because of constructive post-interview feedback
I would not be shocked. I meant it when I said to weed out the charlatans. I certainly do some basic FizzBuzz. I do it over the phone and in-person because sometimes they get a friend to do the phone interview. There is a giant difference between this and the current whiteboard interview fad.

I don't think false negatives are good. How many positions go unfilled for months and years? A lot. At a larger company, it won't take long before they remove the position entirely. They might not be wrong to do so either. Eventually your bus factor goes to zero, and whole teams go away. I have never seen anything beyond FizzBuzz, experience, and conversations be predictive for actual work. Even these only weed out the most outrageous candidates.

I work in the chemical engineering industry. They sort resumes, ask questions, and call references. They don't ask them to do sophomore level process energy and mass balance with multiple components and vapor-liquid equilibria on a whiteboard. Most aren't Professional Engineers either. Junior engineers used to be a crap shoot. Now there are so many graduates compared to junior positions that most companies will only hire people that interned with them.

safety-third··on No engineer has ever sued because of constructive post-interview feedback
I can't find the article because its hidden behind Google's previously admitted coin flip, brain teasers.

An interview only has one question to answer: How long will it take this person to do what I need? Everything after that is you trying to sell the company to the candidate. After you do the interviews, you pick the person who needs the least ramp time.

Quietly staring at a person writing on a whiteboard while taking notes isn't communication. It isn't normal. It tests nothing except the candidate's whiteboard interview technique. You test their communication ability... by communicating with them. Have a conversation.

Testing someone's determination to do useless studying for your ridiculous company is pointless. I am not here to get you to join my cult. I am here to pay you to do things. That's it. Unless your job is to design and review algorithms, I don't care if you can draw depth first search on a whiteboard blindfolded.

There are a million ways to figure out how long it will take to get a person up to speed. I make a list of the skills needed for a position. I write down an approximate time to learn each one. In each interview, I figure out what skills the person has by discussing that skill. That's it.

safety-third··on No engineer has ever sued because of constructive post-interview feedback
People get rejected for reasons like that everyday. I have been part of several interviews where a co-interviewer would say something at least as stupid as that.

This is the real problem with giving feedback in our industry's interviews. The interviews are usually random circuses.

safety-third··on No engineer has ever sued because of constructive post-interview feedback
No industry's interviewing is as awful as ours. The mythical 10x programmer has ruined our interviews. All these companies have it in their heads that you either need a rubicks cube champion or someone with 15 years of Rust experience.
safety-third··on No engineer has ever sued because of constructive post-interview feedback
You probably wouldn't like the feedback. Most interviews these days are random because our field is obsessed with finding 10x megarockstar GTD superprogrammers. I can't think of a single field where interviews are such awful experiences.

All interviews could be simple Q&A sessions to make sure the person isn't a charlatan and then sell them on the position.

HR isn't a science, and it never will be. The FAANGs spend god knows how much time and money on it, and they admit that their interviews aren't better than a coin flip.