HN user

quinnirill

259 karma
Posts10
Comments58
View on HN

In general: yes. But I’ve certainly had to use swathes of screwdrivers that are worse at being screwdrivers than my Swiss army knife is. Same I believe applies here: there’s a relation, but it’s nuanced. The same screwdriver is a better screwdriver when carried in a hand than in a toolbox full of other high-quality tools, but worse for everything else.

IMO at least on PC, BFV was occasionally a really good shooter, but it was a constant back and forth between updates that ruined the entire game and new swathes of cheaters on the latest exploit not caught by the anti-cheat, until eventually they stopped even trying to stop them.

It’s not necessarily punishment, e.g. leaving an abusive partner is in most cases about self-preservation, and if intended as a punishment, very ineffective at that. That said, I think a lot of people who end up at the receiving end of it do tend to try to spin it as a punishment due to self-centered thinking and in order to frame themselves as the victim.

What does db.safe do though? How does it know what is the safe way of escaping at that point of the SQL? It will have no idea whether it’s going inside a string, if it’s in a field name position, denotes a value or a table name.

To illustrate the question further, consider a similar html.safe: f"<a href={html.safe(url)}>{html.safe(desc)</a>" - the two calls to html.safe require completely different escaping, how does it know which to apply?

Assuming a driving culture where other people won’t instantly insert themselves into the empty space in between, yes, it’s the exact same speed. I’d very much like that.

Yeah, I agree in spirit but I think the answer is more ”it depends” than something where you should feel bad or something if you deviate from it. If washDishes also sends a bunch of metrics/diagnostics or updates a database of your favorite dish washing programs somewhere inside it, that’s probably fine. Otherwise you push the path of least resistance to just be vague instead, then you get a codebase full of functions with names like handle or process.

It’s also not the same kind of stress. I’ve interviewed many a candidate who were sweating and/or shaking at some point of the interview (with heavy reassurance and me trying to to steer the conversation towards and area where they feel stronger), but they can often end up being calm and reliable alert responders nonetheless. So far I’ve seen very little if any correlation between being able to handle interview stress and on-call stress.

Pizza code? Central components are mostly clearly distinguishable and glued together in a fairly consistent manner.

And it’s not just ancestors! One thing that blew me away after moving from Finland to Germany was that while willows in Finland are predominantly shrubs or bushes, and maples are trees, in Germany willows grow to be trees, but maples mostly stay as vines.

For sure, zero disagreement there! Just pointing out my personal observation that most people seem to not really do that.

In myself, overthinking is a quality I value very highly in some situations while also being one of the highest contributors to personal misery in other situations. In the net though, definitely a keeper.

As you say, it leads you down a path. Often at the beginning there is pain, such as being painfully self-conscious. At the end of the path is often self-development though.

As someone having experienced (and of course still experiencing) similar struggles as a person with ADHD, the Heureka moment for me was realizing that the difference is I'm overthinking it. In quite a lot of the situations, there's no right answer people are looking for. There's no strict protocol, people just say whatever random stuff that comes into their mind and it might not even be related to what the other person said, then the other person builds on from there or says their own random stuff. Sometimes they strike a chord, sometimes they don't. Sometimes they end up saying the completely wrong thing and then they may or may not attempt to correct the situation. Trying to attribute a system to it is mostly just my own desire for order that probably doesn't exist. Like most things in life, the system is so complex that it might as well be random in some aspects.

Seeing a modern foresting machine in action was one of the most daunting experiences of my life. Making an AI drive it is pointless, it’s already at such high productivity that the transportation is a much more meaningful bottleneck now.

I literally passed it by while walking the dog on the morning it started, and just 10 minutes later when returning, a neat and large pile of logs stripped of branches was at the roadside and a handful of trees were gone. Two days later when taking the same route, the forest was no more, just a handful of funny trees sitting on barren mudlands surrounded by enormous piles of logs marked and tagged for transport to various destinations.

Makes me wonder if there should be an open source test suite for numerical routines, i.e. just a big table (in JSON or something) of inputs, transformations and expected outputs, so new projects could get easily started with a fairly robust (if not a bit generic) test suite they could filter to suite their needs as they grow the feature set.

Sorry to get a bit nerdy here, but in JS, neither pass by value nor pass by reference make sense as it’s not defined by the spec and much less followed by the implementations. Strings can be pointers to buffers or ropes, numbers can be values (NaN-boxed or otherwise) or pointers depending on a number of conditions, it all depends. However, from what’s observable in the language, all variables are pass by value. There’s no way to pass anything at all by reference, primitive or not, i.e. you can modify a field of an object you were passed but you can’t change the object.

I largely agree with you and share your sentiments. However, in software there’s plenty of standard bearers distracting us from the real issues by trying to push for things like having CI break when you spelled something ”colour” instead of color. In fact, the whole industry is full of nitpickers who want to gatekeep others’ entries based on arbitrary rules like where braces, tabs, spaces or semicolons go, because it lets them come up with the rules and enforce them instead of doing the hard work of solving the real problems.

So it’s not so much that we don’t have people pushing for quality, we do. We just can’t agree on what quality even looks like.

Pokatokaino is indeed not a Finnish word, but contains multiple: Pokat - slang for sunglasses, Kato - slang version of katso (look), Toka - slang version of toinen (ordinal second), Kaino - timid/coy.

Finnish has umlauts though, so quite a lot of words don’t sound like the mentioned languages so much.

Yep, it can be done right. I’ve been in a team where we had more services than people yet most of the services were just chugging along with little to no maintenance (thanks to most being in a monorepo with few dependencies so the spam of dependencies getting out of date was manageable).

It was a constant uphill battle though, my time was largely spent on trying to prevent the creep of services born out of trying to enforce Conway’s law rather than to contain it’s impact. When people put in the effort of shaping the team/organization around the most optimal architecture rather than shaping out the architecture to fit the organization, it works out rather nicely and yields good productivity and an efficient system. Luckily at the time even ICs like me had enough sway to keep things at check.

This reminded me of one of those things that will probably bother me forever: while I was getting my license, I was taught to always reverse into parking spots, and one time we were practising parking in a mall parking lot, in my overconfidence over my newly-found knowledge, I rhetorically asked my instructor why all the people are parking forward. She asked me ”yeah, why is that”. Only months later after getting my license, while parking at a supermarket lot, I realized her question wasn’t rhetoric, and she was expecting me to think about it and answer.

In any case, I always reverse into parking spots, except when going shopping.

It’s less likely that the parking spot itself is occupied by a pedestrian (and it’s easier to verify that before reversing into it) than for the area you drive out of it into to have pedestrians heading in and out of their vehicles, and going forward out of the parking spot gives you better visibility to see the pedestrians (and other cars) appearing from behind adjacent cars.

If you unintentionally destroy property and have to pay for it, you’re in debt.

We even have a concept of life debt.

Some debt is intentional, some incidental.

Most technical debt I’ve seen was not intentional, just a well meaning design that was created to serve a purpose that eventually outgrew it, and that’s when the interest started to pile up.

And happening passively is exactly what it does, interest rates change, your ability to make downpayments change. All part of the very well functioning metaphor in this context.

Happy to help!

Yes, you can use just simple function references, e.g. you could just define flatten as so

    function * flatten () {
      for ( const item of this ) {
        yield * item;
      }
    }
And it would work just like it was part of Trine - in fact that's probably how it's going to be implemented in Trine. The chaining is not a feature of Trine, but the function bind syntax proposal ( https://github.com/zenparsing/es-function-bind ), Trine has merely been designed to work well with this syntax.