generally requires that you all choose the same thing
Yep, and it's simple: tabs. And that way everyone can have their preferred indentation width and everything is being used as intended, and we can all live together in peace and harmony. It's really nice!
The 'same thing' when you use tabs also involves everyone choosing the same tab width.
No, it really doesn't.
There is no such parameter you need to agree on if you just enforce the use of spaces.
Wrong. With spaces you'll need to agree on indentation width. Either that or you'll end up with inconsistent indentation and because spaces are in use it'll be harder to automatically fix with something like:retab because the editor will have a hard time making sense of it. With tabs the width is irrelevant and can be up to each individual / device. The way nature intended.
I've worked on multi engineer projects for 25 years and every last one of those projects mandated no tabs
So what you're saying is that you've never actually worked with tabs on a multi-engineer project. You sound like someone who is super-qualified to tell me about the pitfalls of tabs in an environment like that.
If you are working on small things, then have fun with it, but at some point you have to work with others.
Yep, and in all the time I've been working on multi-engineer projects I've never had tabs cause a real problem. Sure, every now and then a junior dev might screw up a file because he doesn't understand the tab settings in his IDE, but you can easily revert the commit and teach him how tabs work, it's really not complicated. And this is also a problem you'll have if you use spaces. OTOH I have seen more than a few projects in "mandate spaces" shops with inconsistent indentation due to devs not changing their tab width (or, more fun, insisting on using their preferred tab width in defiance of the style guide).
I'll just copy-paste the part of my post you completely ignored while you were breaking the VCS:
Nope. They're actually more relevant now that we have such abundance of portable devices. I use tabs for 2 main reasons: 1. user preference: I might like a tab to equal 4 spaces but my colleague might like 8 or 42 or 32767 or 0. I don't care what he uses and vice-versa because we both just use tabs and configure our editors to the tab width we like.
As a subset of this reason, I can configure different tab widths on different devices. So when I'm coding on a device with a small screen, which I do fairly often, I can configure a smaller tab width (I use 2 rather than my regular 4) to get better mileage out of my limited screen real estate. Now I can move the file back and forth between my desktop and my portable and the tab width automatically adjusts itself.
Nevertheless that "bloatness" only uses hard disk space. In other words: you don't notice it at runtime.
Heh, apparently you never worked with the early versions of.net. We're talking multi-second (sometimes up to 10s, depending on what had previously been cached) disk-spamming delays before the splash screen would even show. Meanwhile the source delphi program we were porting (i.e it was the same program) showed the splash screen pretty much instantly and averaged maybe 2 seconds from launch to "program ready for input" - before we started the.net port we were talking about removing the splash screen from the delphi version because it would often only show for a fraction of a second. For the.net version we talked about using a delphi launcher just to show the splash screen so that it would show while.net loaded.
No. These bloated frameworks are regularly (not always, mind you, but often) loading unnecessary libraries into memory. Anything written in.net or java is effectively loading a VM into memory before it even begins to load the unnecessary libraries. And I've seen PHP frameworks which load thousands and thousands of files into memory for every request. This takes time and it might mean reading it off the disk, another bottleneck. It also has to parse all these files and whatnot. It's not insignificant. I don't remember the numbers offhand but I do recall one time when a colleague did some analysis and found that the biggest single delay in page load time was the time it took for the framework to parse/enumerate all the classes it was (needlessly) loading for every request - loading the framework was slower than connecting to the DB and doing the couple of queries we were doing for every page load.
You might not notice it at runtime on your high-specced development machine with 1 user, or in your staging environment with 3 users, but your users will sure-as-shit notice it when you get up to high volumes.
Yes, there is push-and-pull from management, but in my experience many/most managers are smart enough to make the right decision when you say to them "OK, so you and the marketing guys are predicting massive upscaling in the next 6 months. Do you want us to put in a bit of extra time getting it right now, or at least researching and coming up with a basic roadmap of some kind, or would you prefer to face the prospect of rebuilding from the ground up in a big hurry in 6 months, maybe needing to bring in expensive contractors to help meet the deadline?"
You can call it all the nice-sounding words you like but at the core we're talking about laziness. Half-pint HAL above is spot on when he says "It's laziness at the base of the tree". Too lazy to evaluate alternatives or to think ahead. Too lazy to learn something new. Too lazy and/or inexperienced to push back on management for proper engineering. Too lazy for anything which is actually challenging. We just want to be comfortable. What a great zeitgeist.
Most programmers would love to act different, but they are not allowed to do so.
(citation needed)
Don't misunderstand my position - bloated and easy-to-use stuff does have it's place. But that place is not in the same room as good engineering or performance.
The frameworks themselves aren't bloated because of laziness (generally, per se), but the programs using these frameworks are bloated due to laziness.
e.g: You need to write a program which does 2 or 3 nontrivial but common tasks. You could write your own or research and use 2 or 3 lightweight and efficient libraries for those specific tasks, but that would be effort, so you use a framework you've worked with before which has the 2 or 3 things you need plus 50000 other features. And that's how you end up with a "hello world" program targeting.net and loading 100Mb or so of libraries into memory before it does anything.
However the framework people aren't blameless: they've been lazy by not providing a mechanism to only include the parts of the framework that you want: rather than saying 'include framework', I should have to say 'include core; include crypto; include database'. And when packaging my program there should be a way to only bundle the bits I need. But this isn't the way we do it, because:
* Making our framework do that is effort. And totes not sexy. I'd rather implement a new templating engine or a library for iThisMonthsFad(TM). Yeah, we already have one, but oh look - squirrel!
* If we don't include them in the core, we'll get a bunch of (lazy) people complaining about how much effort it is ("and soooo mid-late 2000s lol!") to type 'include database'. Or they'll use some other framework.
* Most programs use crypto and database anyway, right? So we should just include them in the core. It'll only add a megabyte or so to those lightweight programs which don't use it.
Aah, it's been a while since I had a good old tabs v spaces debate.
Spaces required by a coding standard are also easier to automate the checking of
if (preg_match('/^\ \ +/',$line)) {
$ok = False;
$errors[] = "Space indenting on line $linenumber of '$filename'. Check your editor's indentation settings."; }
Yup, that was pretty complicated.
Tabs certainly saved a few bytes when saving a few bytes mattered, but these days they do not.
While this is true, file size has never been a primary reason why I use tabs.
The reasons for using tabs have gone away.
Nope. They're actually more relevant now that we have such abundance of portable devices. I use tabs for 2 main reasons: 1. user preference: I might like a tab to equal 4 spaces but my colleague might like 8 or 42 or 32767 or 0. I don't care what he uses and vice-versa because we both just use tabs and configure our editors to the tab width we like.
As a subset of this reason, I can configure different tab widths on different devices. So when I'm coding on a device with a small screen, which I do fairly often, I can configure a smaller tab width (I use 2 rather than my regular 4) to get better mileage out of my limited screen real estate. Now I can move the file back and forth between my desktop and my portable and the tab width automatically adjusts itself.
2. I'd rather press tab 3 times than space 8 times.
Editors these days are mostly very good at making spaces behave like tabs when editing.
Keyword: mostly. Not all. Even really primitive editors like windows notepad support tab properly.
Cinelerra. There are many others. Cinelerra isn't easy to use, but it's soooooo powerful. I've tried many video editors but I always find myself coming back so Cinelerra due to the power. LIVES also looks promising but I haven't had a chance to play with it yet. There are even a couple of proprietary ones.
screen recording,
There are about a hundred of these. Personally I use ffmpeg because it's so ubiquitous across my machines and can be quickly invoked from the command line (e.g even via SSH while I'm mid-game).
Keynote
I had to google this because I haven't used a mac since the days of OS 8. Libreoffice maybe? It has presentation software. But I haven't done a presentation in about 10 years so I'm not an authority on this one.
garage band
Ardour. LMMS. Rosegarden. Lots of others.
serious gaming
depends what you mean by "serious". If you're using a mac then you already can't do what I'd call "serious" gaming. But: Steam, GOG, humble store, twitch.io, many great FOSS games. Some of the more "serious" titles include Borderlands, the Civilization games, etc etc. There are about 1500 linux games on steam alone now.
I think it's more than the tech-minded userbase is about 0.1% of the total population of web browsing users.
This is true, but what people don't seem to realise is that tech-minded userbase is about 100% of the remaining population of firefox users. All the non-tech-minded users switched to chrome ages ago because it has the shiny and unconfigurable chrome-a-like interface they love. As an added bonus, it's it's much faster and doesn't require petabytes of RAM to open more than three tabs.
It seems obvious to me that Mozilla has decided to go for the people who like chrome but just think it's just not slow or resource-intensive enough. Seems like a limited market to me.
In other words, as others have said, Mozilla is deprecating Firefox. It was fun while it lasted. Sounds like it's time to check out Pale Moon.
You make an interesting point saying that it's in valve's interest to not compete with other developers and publishers. I hadn't thought of that point.
I think that one other thing which would potentially see a HL3 would be if the users started abandoning steam. This falls into the "undermine their business model" category you listed above. If steam were to start losing market share (say to GOG's galaxy platform or something else) then I think we'd be likely to see a HL3 as a desperation "we need money" move.
Until then, valve are happy to just keep letting the money rolling in and shitting on the fanboys who got them where they are.
We aren't going to go all retro because there are too many interesting things that have been learned. The only reason we would go back and do a 'super classic' kind of product is if a whole bunch of people internally at Valve said they wanted to do it, and had a reasonable explanation for why it was.
Which sounds like marketer-speak for "we don't give a shit anymore, we have steam now. Eat a dick."
Well, what do I switch to, then, haters? Do you have a better solution? I need a browser that offers this:
I think that's a lot of the reason for all the hate: there isn't really a better solution - there isn't anything else which does all that. Browsers suck, and still (despite mozilla's efforts) at this moment in time firefox sucks the least.
However that's changing. We don't hate mozilla just because haters gonna hate, we hate what they're doing to the least-sucky browser - they're making it suck more and more, where we tend to think that it should be going in the opposite direction (less crappy, not more crappy; more features, not less). And by making firefox more sucky, they're screwing us because there's no better alternative at the moment. If there was a better alternative, we'd all just move to a different browser and not care what they do with firefox.
But as it is firefox is getting closer and closer to feature parity with chrome every day. And when the day finally comes where it's only as useful as chrome, a bunch of people are going to jump ship because firefox is way slower and more bloated than chrome (it just is, e.g chrome runs javascript way way way faster). On that day chrome will suddenly be the least-sucky browser, and people like me will switch to it.
They have an idea for sending signals back to earth which I've outlined elsewhere. Or you could go watch their press conference, they address this question.
Yes, the plan is to accelerate it up to 0.2c over a period of 2 minutes. I think they said it was going to experience about 60,000 g during the acceleration phase. Once it gets to 0.2c it needs no more propulsion. The laser only shines on it for 2 minutes.
Parent is saying (correctly) that it would be an almost 9-year round trip if you wanted to send it a command and have it send confirmation back. 4.3 years each way.
This question was asked during the press conference. They're thinking of using a small laser to transmit back , reflecting it off the solar sail. Apparently the ground-based laser system back here on earth can also be used as a telescope (with much more power than anything we have), allowing them to detect a relatively faint signal. They think they may be able to get bandwidth in the kilobits using this method. One comment made about this is that at such a distance it's easy to aim your signal at earth - just aim it at the sun.
Yes, they have thought of it and yes it's one of the challenges on their list.
In terms of collisions, the plan is to be able to produce them cheaply, so it's easy to send many. redundancy is achieved by sending multiple ships rather than having redundant systems on one ship.
Great, when you invent future vision so nobody ever sells products that turn out to be crap, let me know.
It's really not that difficult: you test products before you sell them, and you don't overstate your claims about how capable they are. Also, you can look at the number of returns you've had compared with the number you've sold and get a failure rate from that. Based on this, you can make your claims more accurate.
But, again, as a retailer, it's not a big deal, because you can just return the defective products to the manufacturer you bought them from, since you're covered by the same consumer protections. Something from my previous post which you seem to have completely ignored.
generally requires that you all choose the same thing
Yep, and it's simple: tabs. And that way everyone can have their preferred indentation width and everything is being used as intended, and we can all live together in peace and harmony. It's really nice!
The 'same thing' when you use tabs also involves everyone choosing the same tab width.
No, it really doesn't.
There is no such parameter you need to agree on if you just enforce the use of spaces.
Wrong. With spaces you'll need to agree on indentation width. Either that or you'll end up with inconsistent indentation and because spaces are in use it'll be harder to automatically fix with something like :retab because the editor will have a hard time making sense of it. With tabs the width is irrelevant and can be up to each individual / device. The way nature intended.
I've worked on multi engineer projects for 25 years and every last one of those projects mandated no tabs
So what you're saying is that you've never actually worked with tabs on a multi-engineer project. You sound like someone who is super-qualified to tell me about the pitfalls of tabs in an environment like that.
If you are working on small things, then have fun with it, but at some point you have to work with others.
Yep, and in all the time I've been working on multi-engineer projects I've never had tabs cause a real problem. Sure, every now and then a junior dev might screw up a file because he doesn't understand the tab settings in his IDE, but you can easily revert the commit and teach him how tabs work, it's really not complicated. And this is also a problem you'll have if you use spaces. OTOH I have seen more than a few projects in "mandate spaces" shops with inconsistent indentation due to devs not changing their tab width (or, more fun, insisting on using their preferred tab width in defiance of the style guide).
I'll just copy-paste the part of my post you completely ignored while you were breaking the VCS:
Nope. They're actually more relevant now that we have such abundance of portable devices. I use tabs for 2 main reasons:
1. user preference: I might like a tab to equal 4 spaces but my colleague might like 8 or 42 or 32767 or 0. I don't care what he uses and vice-versa because we both just use tabs and configure our editors to the tab width we like.
As a subset of this reason, I can configure different tab widths on different devices. So when I'm coding on a device with a small screen, which I do fairly often, I can configure a smaller tab width (I use 2 rather than my regular 4) to get better mileage out of my limited screen real estate. Now I can move the file back and forth between my desktop and my portable and the tab width automatically adjusts itself.
Nevertheless that "bloatness" only uses hard disk space.
In other words: you don't notice it at runtime.
Heh, apparently you never worked with the early versions of .net. We're talking multi-second (sometimes up to 10s, depending on what had previously been cached) disk-spamming delays before the splash screen would even show. Meanwhile the source delphi program we were porting (i.e it was the same program) showed the splash screen pretty much instantly and averaged maybe 2 seconds from launch to "program ready for input" - before we started the .net port we were talking about removing the splash screen from the delphi version because it would often only show for a fraction of a second. For the .net version we talked about using a delphi launcher just to show the splash screen so that it would show while .net loaded.
No. These bloated frameworks are regularly (not always, mind you, but often) loading unnecessary libraries into memory. Anything written in .net or java is effectively loading a VM into memory before it even begins to load the unnecessary libraries. And I've seen PHP frameworks which load thousands and thousands of files into memory for every request. This takes time and it might mean reading it off the disk, another bottleneck. It also has to parse all these files and whatnot. It's not insignificant. I don't remember the numbers offhand but I do recall one time when a colleague did some analysis and found that the biggest single delay in page load time was the time it took for the framework to parse/enumerate all the classes it was (needlessly) loading for every request - loading the framework was slower than connecting to the DB and doing the couple of queries we were doing for every page load .
You might not notice it at runtime on your high-specced development machine with 1 user, or in your staging environment with 3 users, but your users will sure-as-shit notice it when you get up to high volumes.
Yes, there is push-and-pull from management, but in my experience many/most managers are smart enough to make the right decision when you say to them "OK, so you and the marketing guys are predicting massive upscaling in the next 6 months. Do you want us to put in a bit of extra time getting it right now, or at least researching and coming up with a basic roadmap of some kind, or would you prefer to face the prospect of rebuilding from the ground up in a big hurry in 6 months, maybe needing to bring in expensive contractors to help meet the deadline?"
You can call it all the nice-sounding words you like but at the core we're talking about laziness. Half-pint HAL above is spot on when he says "It's laziness at the base of the tree". Too lazy to evaluate alternatives or to think ahead. Too lazy to learn something new. Too lazy and/or inexperienced to push back on management for proper engineering. Too lazy for anything which is actually challenging. We just want to be comfortable. What a great zeitgeist.
Most programmers would love to act different, but they are not allowed to do so.
(citation needed)
Don't misunderstand my position - bloated and easy-to-use stuff does have it's place. But that place is not in the same room as good engineering or performance.
The frameworks themselves aren't bloated because of laziness (generally, per se), but the programs using these frameworks are bloated due to laziness.
e.g: You need to write a program which does 2 or 3 nontrivial but common tasks. You could write your own or research and use 2 or 3 lightweight and efficient libraries for those specific tasks, but that would be effort, so you use a framework you've worked with before which has the 2 or 3 things you need plus 50000 other features. And that's how you end up with a "hello world" program targeting .net and loading 100Mb or so of libraries into memory before it does anything.
However the framework people aren't blameless: they've been lazy by not providing a mechanism to only include the parts of the framework that you want: rather than saying 'include framework', I should have to say 'include core; include crypto; include database'. And when packaging my program there should be a way to only bundle the bits I need. But this isn't the way we do it, because:
But you can use a regular expression to replace tabs with spaces or the opposite way around?
user@host:~/code $ git log --stat
commit: 10048
user: tabluvr
message: replace idiotic spaces with tabs
files changes: 10000
lines changed: 1000000
commit: 10047
user: spaces4eva
message: fix broken tab formatting by replacing with spaces
files changes: 10000
lines changed: 1000000
commit: 10046
user: tabluvr
message: fix mangled indentation from previous commit
files changes: 10000
lines changed: 1000000
commit: 10045
user: spaces4eva
message: replace tabs with spaces
files changes: 10000
lines changed: 1000000
(more)
Aah, it's been a while since I had a good old tabs v spaces debate.
Spaces required by a coding standard are also easier to automate the checking of
if (preg_match('/^\ \ +/',$line)) {
$ok = False;
$errors[] = "Space indenting on line $linenumber of '$filename'. Check your editor's indentation settings.";
}
Yup, that was pretty complicated.
Tabs certainly saved a few bytes when saving a few bytes mattered, but these days they do not.
While this is true, file size has never been a primary reason why I use tabs.
The reasons for using tabs have gone away.
Nope. They're actually more relevant now that we have such abundance of portable devices. I use tabs for 2 main reasons:
1. user preference: I might like a tab to equal 4 spaces but my colleague might like 8 or 42 or 32767 or 0. I don't care what he uses and vice-versa because we both just use tabs and configure our editors to the tab width we like.
As a subset of this reason, I can configure different tab widths on different devices. So when I'm coding on a device with a small screen, which I do fairly often, I can configure a smaller tab width (I use 2 rather than my regular 4) to get better mileage out of my limited screen real estate. Now I can move the file back and forth between my desktop and my portable and the tab width automatically adjusts itself.
2. I'd rather press tab 3 times than space 8 times.
Editors these days are mostly very good at making spaces behave like tabs when editing.
Keyword: mostly. Not all. Even really primitive editors like windows notepad support tab properly.
If you're interested, here are some suggestions :)
solid video editing,
Cinelerra. There are many others. Cinelerra isn't easy to use, but it's soooooo powerful. I've tried many video editors but I always find myself coming back so Cinelerra due to the power. LIVES also looks promising but I haven't had a chance to play with it yet. There are even a couple of proprietary ones.
screen recording,
There are about a hundred of these. Personally I use ffmpeg because it's so ubiquitous across my machines and can be quickly invoked from the command line (e.g even via SSH while I'm mid-game).
Keynote
I had to google this because I haven't used a mac since the days of OS 8. Libreoffice maybe? It has presentation software. But I haven't done a presentation in about 10 years so I'm not an authority on this one.
garage band
Ardour. LMMS. Rosegarden. Lots of others.
serious gaming
depends what you mean by "serious". If you're using a mac then you already can't do what I'd call "serious" gaming. But: Steam, GOG, humble store, twitch.io, many great FOSS games. Some of the more "serious" titles include Borderlands, the Civilization games, etc etc. There are about 1500 linux games on steam alone now.
I think it's more than the tech-minded userbase is about 0.1% of the total population of web browsing users.
This is true, but what people don't seem to realise is that tech-minded userbase is about 100% of the remaining population of firefox users. All the non-tech-minded users switched to chrome ages ago because it has the shiny and unconfigurable chrome-a-like interface they love. As an added bonus, it's it's much faster and doesn't require petabytes of RAM to open more than three tabs.
It seems obvious to me that Mozilla has decided to go for the people who like chrome but just think it's just not slow or resource-intensive enough. Seems like a limited market to me.
In other words, as others have said, Mozilla is deprecating Firefox. It was fun while it lasted. Sounds like it's time to check out Pale Moon.
There sure was, the 1571
Even better was the 3.5" 1581
Yup, I'm sure I read somewhere that the Moller Skycar was coming out in 2017 too.
This is what I was going to say, except that I would have added that doing so has no chance of damaging the CD
While we're on this subject, I'd love to hear people's recommendations for buying a laptop without windows in Australia
+1 for Cryptonomicon. It's magnificent.
The Commodore 64 User's Guide - taught me my first programming language.
The Commodore 64 Technical reference guide - a riveting sequel.
or there's the video version if you can't be bothered reading.
You make an interesting point saying that it's in valve's interest to not compete with other developers and publishers. I hadn't thought of that point.
I think that one other thing which would potentially see a HL3 would be if the users started abandoning steam. This falls into the "undermine their business model" category you listed above. If steam were to start losing market share (say to GOG's galaxy platform or something else) then I think we'd be likely to see a HL3 as a desperation "we need money" move.
Until then, valve are happy to just keep letting the money rolling in and shitting on the fanboys who got them where they are.
Comment from Gabe Newel in 2015:
We aren't going to go all retro because there are too many interesting things that have been learned. The only reason we would go back and do a 'super classic' kind of product is if a whole bunch of people internally at Valve said they wanted to do it, and had a reasonable explanation for why it was.
Which sounds like marketer-speak for "we don't give a shit anymore, we have steam now. Eat a dick."
Well, what do I switch to, then, haters? Do you have a better solution? I need a browser that offers this:
I think that's a lot of the reason for all the hate: there isn't really a better solution - there isn't anything else which does all that. Browsers suck, and still (despite mozilla's efforts) at this moment in time firefox sucks the least.
However that's changing. We don't hate mozilla just because haters gonna hate, we hate what they're doing to the least-sucky browser - they're making it suck more and more, where we tend to think that it should be going in the opposite direction (less crappy, not more crappy; more features, not less). And by making firefox more sucky, they're screwing us because there's no better alternative at the moment. If there was a better alternative, we'd all just move to a different browser and not care what they do with firefox.
But as it is firefox is getting closer and closer to feature parity with chrome every day. And when the day finally comes where it's only as useful as chrome, a bunch of people are going to jump ship because firefox is way slower and more bloated than chrome (it just is, e.g chrome runs javascript way way way faster). On that day chrome will suddenly be the least-sucky browser, and people like me will switch to it.
They have an idea for sending signals back to earth which I've outlined elsewhere. Or you could go watch their press conference, they address this question.
Yes, the plan is to accelerate it up to 0.2c over a period of 2 minutes. I think they said it was going to experience about 60,000 g during the acceleration phase. Once it gets to 0.2c it needs no more propulsion. The laser only shines on it for 2 minutes.
Parent is saying (correctly) that it would be an almost 9-year round trip if you wanted to send it a command and have it send confirmation back. 4.3 years each way.
1) the "fuel" for the propulsion system is on earth. So unless you can build a laser system on alpha centauri, deceleration is going to be difficult.
2) Quantum entanglement cannot be used for communication.
This question was asked during the press conference. They're thinking of using a small laser to transmit back , reflecting it off the solar sail. Apparently the ground-based laser system back here on earth can also be used as a telescope (with much more power than anything we have), allowing them to detect a relatively faint signal. They think they may be able to get bandwidth in the kilobits using this method. One comment made about this is that at such a distance it's easy to aim your signal at earth - just aim it at the sun.
Yes, they have thought of it and yes it's one of the challenges on their list.
In terms of collisions, the plan is to be able to produce them cheaply, so it's easy to send many. redundancy is achieved by sending multiple ships rather than having redundant systems on one ship.
Great, when you invent future vision so nobody ever sells products that turn out to be crap, let me know.
It's really not that difficult: you test products before you sell them, and you don't overstate your claims about how capable they are. Also, you can look at the number of returns you've had compared with the number you've sold and get a failure rate from that. Based on this, you can make your claims more accurate.
But, again, as a retailer, it's not a big deal, because you can just return the defective products to the manufacturer you bought them from, since you're covered by the same consumer protections. Something from my previous post which you seem to have completely ignored.
Yep. They were grasping at straws, thinking they were above the law. And this is what happens.
How much is valve paying you to post here?
Relatively friendly? They're downright draconian
The post you're replying to said consumer-friendly. Which they are. They're only "Draconian" if you're a dodgy operator.
They force the retailer (not the manufacturer or the importer) to assume all risk for the products sold
No. Because the retailer is also entitled to the same protections.
But even if this were true, a good way to not run afoul of the laws would be to just not sell shit products.