Hacker Newsnew | past | comments | ask | show | jobs | submit | Jaygles's commentslogin

In this example aren’t the two engines equally capable, with one being held back artificially?

I think what the other commenter is getting at, is that if the manufacturer puts a 300hp engine in a car but limits it to 250hp, they still need to charge enough to make a profit. If the manufacturer produced a cheaper 250hp engine for the 250hp car, they could probably charge less for the same profit.

So it’s a double loss for the consumer of the 250hp car. They pay a higher cost and are artificially kept from the full performance of what they bought


Understood your thinking and we don't know if that is the case or not, I can see a few different ways they could have handled it:

1-As you stated, full extra cost is paid by the buyer regardless of opting for extra capability, and that cost is non-trivial

2-Same as #1 but the cost is trivial due to some internal mfg conditions we are unaware of

3-Extra cost is non-trivial and is prorated across all units based on the expected rate of purchasing the extra capability and the overall revenue vs costs. So in this case it's a partial increase.

3-Extra cost is non-trivial but the buyer does not pay more than if they had used the less powerful engine, the buyers of extra capability are expected to fully fund the cost increase to the entire group of vehicles in the program. This could still be competitive with the market for the extra capability because people can pick and choose when they want to spend the money, that flexibility has value.

We don't really know how they handled the situation but I would be surprised if it was #1 because it would make the car less competitive for buyers that don't want the extra capability.


In my opinion, a very generic question like that deserves a very generic answer, with a follow-up asking if that is what they had in mind.

"An interface is roughly how a system is designed to be interacted with. A web page can be an interface with your bank if they have online banking. An API can be an interface for a back-end service to provide to other back-end services. Did you have anything specific in mind?"


Usually the interviewer has particular definition in mind and you need to guess it to pass to the next stages.


Yup. I have been rejected once because I discussed a variety of options to harden a system instead of blurting out "VPN" as they wanted. They told me that after I discussed some trade offs in security for a little bit.


Young in my career I bombed a five person panel interview once with a bunch of questions like this.

One of them I remember being especially unfair - "if one of our systems connections goes down, how would you troubleshoot it"? I had what I thought was a great answer, reviewing logs, looking for errors, verifying the server or system had internet access, etc... They informed me that the correct answer was checking that the ethernet cable was plugged in...

Along with feeling completely defeated after the interview (since I really needed a job at the time), I felt like it was an extremely loaded question and my answer should have gotten a +1, especially since my answer discussed internet access. I did dodge a bullet though. That startup failed 15 months after my interview.


Anyone asking that question is generally ok with any of the answers. The important thing here is the concept, not the implementation.


> The important thing here is the concept, not the implementation.

"Ah, so you meant OOP, got it!"


I went from a 2016 intel MacBook Pro to an m1 and although the differences on paper looked like many other spec bumps, the actual experience felt like a paradigm shift.

It’s the first time I owned a laptop that lacked compromises. It was consistently snappy and fast at every task from a full to empty battery. And it did so without burning my lap or producing an incredibly annoying fan noise.


Yes, it's an excellent laptop. But being good and being innovative are not the same thing. There's nothing innovative about the M1 lineup. It's better on the same axis that laptops have been improving at consistently.

As for loud fan and burning laps, though, do also keep in mind that Apple was particularly bad in the 2016 generation, which is why the M1 laptops got thicker.


I've worked in many different FE codebases with a variety of CSS "strategies".

This sort of thing is objectively ugly and takes a minute to learn. The advantages of this approach I found is two-fold

1. You can be more confident that the changes you are making apply to only the elements you are interested in changing

You are modifying an element directly. Contrast with modifying some class that could be on any number of elements

2. You can change things around quite quickly

Once you're well familiar with your toolset, you know what to reach for to quickly reach a desired end state


This is one of the least elegant ways to scope CSS though.. you may as well just write inline CSS

I like BEM personally. "navbar__item" scopes the styling to the nav item

> Once you're well familiar with your toolset, you know what to reach for to quickly reach a desired end state

This also applies to plain CSS, doesn't it?

The big value add that Tailwind brought isn't their utility classes IMO - it's their philosophy around having a design system of consistent coloring and spacing. I actually borrowed that for my own projects. It taught me to be a lot more diligent about specifying the system upfront. Put it in CSS variables and re-use those


You can’t use inline css it’s not at all the same.

Inline css

1. Can’t use media queries (responsive design).

2. Gets you to specificity hell - you loose ability to cascade.

3. Does not follow any system or reuse of values.

4. Values can’t be centrally changed. Utility clases are still classes - when you change class value it changes everywhere where the class is used.

5. Its verbose. Utility classes can have multiple css rules.

Conceptually it might seem that inline css is similar but thats just feeling. Functional css (utility classes) are about composing classes with simpler (one purpose) behaviour together to create complex behaviour.


> Values can’t be centrally changed.

Or you end up redefining dozens of CSS variables inline :)


When people complain about CSS being hard I'm not sure what parts of it really? It's rarely explained further too.

As someone that did a lot of CSS like 15 years ago when fullstack was the norm, then just sporadically for various non-public tooling, is that yes, the old ways of trying to position things really sucked and had a lot of hacks and some of those trail-n-error "how-does-this-change-the-elements-position" seems to still apply, but are much rarer now with grids/flex etc. But the structure of CSS itself is very straight-forward to me and has almost always been?

Is what's really going on that when people are trying to use vanilla CSS they go overboard with keeping CSS DRY? Which ofc ends up with an interdependent mess that's becomes increasingly harder to change. Just stop that? Start namespacing and copy pasting? CSS doesn't need to be compact.


The hard part isn't just placing the correct styles, that is trivially learnable, it comes in when you have multiple people touching the same code, or even in small teams with a large enough project. In a large enough project, and IME that "large enough" point gets hit very quickly, things become messy and it becomes difficult to figure out why something is rendering in the way it is.

Every non-tailwind project I've ever worked on inevitably devolved into a mess where you have 50 billion CSS files scattered all over the place, many containing classes that contradict and override other existing classes, often in completely unclear ways as it's hard to know in which order things will get compiled ultimately. As time passes, you'll see BEM done in various ways, you'll see cursed SCSS functions that generate styles dynamicslly, you'll see a bunch of !importants, and eventually you end up in a state where making a change to a legacy page becomes an exercise in dodging specificity and ordering minefields.

Meanwhile with Tailwind, everything is localized to the element it's affecting, and very importantly the entire team has a "standard library" of properties and patterns they can pull from, so you don't end up with people in different teams naming similar UI patterns differently, and you straight up never have to think of specificity ever again (which in my view is a boon, despite what CSS purists might say). Yes, the HTML is more verbose, but this is just such a non-issue after the first 5 minutes of discomfort, plus all the other benefits.

Hot take, but the Cascading part of CSS has proven itself to be a massive drawback, and not a benefit. Tailwind obviates that completely.


This sounds like it agrees with my point of going overboard with DRY? But this is true for pretty much all languages. When people go overboard with abstractions it usually ends up bad over time and changes, as in your example as well, starts becoming a dredge. But this is solved by experience and better practices, not throwing out the baby with the bath water. Tailwind seems strangely defeatist to me - going from one extreme to another.


Agree, and to add…the “component” still needs to exist somewhere in the system for tailwind to make sense.

No one is writing a long paragraph of styles for _every_ button in their app.


> No one is writing a long paragraph of styles for _every_ button in their app.

Very much not true. LLMs love doing this!


Yes, many most definitely do just that.


1. Aren't there good tools that can list all the elements a style would be applied to so that you can pick and change only the ones affecting the element you need?


Why not just use the style attribute?


verbosity. Using style, "p-4" becomes padding: calc(var(--spacing)*4);


For most of human history, people didn't have to worry about

- Exposure to exotic chemicals in every day items

- Regularly operating a multi-thousand pound machine just to travel

- Adversaries thousands of miles away working tirelessly to misinform and scam you

- Massive conglomerates working tirelessly to manipulate your behavior

- Being compared to the best in the world (in their skills and hobbies etc.)

- Competing against literally the entire country and sometimes the world for labor

My point is, modern life is getting more and more complicated. New challenges pop up every day. Each subsequent generation is born into an increasingly challenging situation. It makes sense that it takes longer to get ahold of things and feel stable enough to start a family


Have you seen Idiocracy, specifically the very beginning of the film?

These excuses sound similar to those made by the “prosperous yuppie couple” (who end up never having children)—contrasted with “trashy” couple, who churn out progeny without a care in the world.

https://thescriptsavant.com/movies/Idiocracy.pdf


To me the primary difference between the potential "copy" that exists in your brain and a potential "copy" that exists in the LLM, is that you can't make copies and distribute your brain to billions of people.

If you compressed a copy of HP as a .rar, you couldn't read that as is, but you could press a button and get HP out of it. To distribute that .rar would clearly be a copyright violation.

Likewise, you can't read whatever of HP exists in the LLM model directly, but you seemingly can press a bunch of buttons and get parts of it out. For some models, maybe you can get the entire thing. And I'm guessing you could train a model whose purpose is to output HP verbatim and get the book out of it as easily as de-compressing a .rar.

So, the question in my mind is, how similar is distributing the LLM model, or giving access to it, to distributing a .rar of HP. There's likely a spectrum of answers depending on the LLM


> that exists in the LLM, is that you can't make copies and distribute your brain to billions of people.

I can record myself reciting the full Harry Potter book then distribute it on YouTube.

Could do the exact same thing with an LLM. The potential for distribution exists in both cases. Why is one illegal and the other not?


> I can record myself reciting the full Harry Potter book then distribute it on YouTube.

At this point you've created an entirely new copy in an audio/visual digital format and took the steps to make it available to the masses. This would almost certainly cross the line into violating copyright laws.

> Could do the exact same thing with an LLM. The potential for distribution exists in both cases. Why is one illegal and the other not?

To my knowledge, the legality of LLMs are still being tested in the courts, like in the NYT vs Microsoft/OpenAI lawsuit. But your video copy and distribution on YouTube would be much more similar to how LLMs are being used than your initial example of reading and memorizing HP just by yourself.


> I can record myself reciting the full Harry Potter book then distribute it on YouTube

Not legally you can't. Both of your examples are copyright violations


Recording yourself is not a violation, only publishing on Youtube. Content generated with LLMs are not a violation. Publishing the content you generated might be.


Generating the content for the user is the distribution regardless of what the user does with it


I unsubscribe from mailing lists 20x more often than I knowingly subscribe to them.

It should be illegal to sign someone up to a mailing list without explicit consent. If I create an account with my email, or provide it as a part of a checkout process, you should not have the ability to sign me up to a mailing list without me explicitly opting in via a dedicated checkbox or button (and it should initialize as un-checked of course).

Breaking the mailing lists into 30 different categories is w/e, but auto opting people in to new categories should also be illegal. Such a scummy dark pattern


I used to run a mailing list for my blog. I've gotten some pretty hostile responses to people who were adamant they never subscribed to my mailing list.

I have no idea how this happened; I just coded a simple form with a basic Turing test ("please enter the number 9 here" works well enough for small sites). Did they forget they subscribe? Did someone else use their email? Did someone typo the email address? Bots? No way for me to know.


This is why double opt-in is best practice. They enter their email address, and you send them an email with a link they have to click to confirm sign-up. It makes it impossible for somebody to sign somebody else up.

Even with the best of intentions, somebody with the email address jim@example.com might inadvertently enter kim@example.com. You don’t want to lose Jim and you don’t want to spam Kim. So the outcome of entering an email address in a form should always be “now check your email to confirm”.


Just assume every form on the Internet is being constantly filled with leaked or stolen data.

I am pretty sure they (the pissed of recipients) have never even visited your site. Their emails had been submitted by persistent fraud groups hammering every possible input 24/7 for their scam and spam ops. I observe such behavior on our apps and sites, even those that you would assume no one is even aware of.

Cloudflare’s Turnstile will help you block 90% of such threats, and the final solution is to double-confirm the subscription - this way you can be pretty sure subscribers are there willingly and have not been put in by crooks.

Nowadays, I would even ditch the email input and force “Subscribe with Google/Apple/xyz” via Oauth to completely mitigate this broken unauthorized newsletter subscription flow.


Identifying areas to improve is how we make progress


Being more judicious about who you wank in front of, for example. (Just in case the reference isn't obvious, I'm not talking about either wmf or Jaygles here.)


> especially as every id must be unique.

Although a very consistent convention, there are no guardrails put in place to prevent something from setting the same id on two or more elements.

getElementById will return the first element that it finds with the id, but you can't know for sure if it is the only one without additional checks


Companies that aggregate and sell data suck up all of the obituaries as they are public record and unburdened by regulations on sharing and selling it. Although it may not be in its original form (as far as I know), info from obituaries may actually be positioned to survive a very long time.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: