0-hour contracts have nothing to do with "Uberised" working arrangements, which are essentially a contracted worker. In a 0-hour contract, the worker does not have the freedom to "offer labour without commitment."
- They have an employment contract, so are an employee, not a self-employed contractor.
- There are limitations on who else they could work for.
- In practice, if they're called up to work last-minute, they can't say "no."
For most 0-hour contracts, like retail, trying to setup your employees as self-employed contractors doesn't work because it's a blatant violation of the law. HMRC will come after you for employer's NI as you have disguised employees.
Uber is a very different model because the way they setup the working arrangements allows them to keep taxi drivers outside the scope of disguised employees.
Non-compete or any kind of limitation on who a zero hours contract person can work for, has been specifically and explicitly illegal since 2016 in the UK. In practice it has been unenforceable since more or less forever. [1]
That's such a classist term. Surely little working class person cannot have its own business, it's disguised employment!
It's like micro agency with resource of 1. But somehow we don't say agencies run "disguised employment", because the profits are going to the rich shareholders instead of filthy unwashed pleb.
Disguised employee is the term used when a person fits into the legal definition of an employee but are contracted, as opposed to being employed. HMRC sets out the conditions it uses to determine this for tax purposes, which you can find on their website.
> But somehow we don't say agencies run "disguised employment",
No, they're not "disguised employment" because the contract terms and working conditions differ to that of an employment contract. It's nothing to do with class.
Plumbers, electricians and joiners will typically run self-employed or private limited companies for their work. We don't call them disguised employees because they're not, they're independent contractors. Because "disguised employee" is nothing to do with class.
The rule set was sharpened the moment skilled workers realised the agency / consultancy was charging £2k a day for their labour while paying them £60k a year, and decided to leave on Friday and invoice on Monday. Same desk. Same client. Same work. The only difference was that the margin stayed with the person producing the value instead of flowing to partners and shareholders.
That is when it became “disguised employment”.
When a multinational intermediary inserts itself and captures the spread, that is respectable commerce. When a one-person company does the same and keeps the surplus, it is suddenly suspicious and requires a special anti-avoidance regime.
You can hide behind control tests and contractual nuances, but the economic reality is identical. The variable that changes is who captures profit.
If a rule only becomes urgent when labour tries to behave like capital, that is not some sterile legal tidying exercise. That is class politics dressed up as “compliance”.
> The rule set was sharpened the moment skilled workers realised the agency / consultancy was charging £2k a day for their labour while paying them £60k a year, and decided to leave on Friday and invoice on Monday. Same desk. Same client. Same work. The only difference was that the margin stayed with the person producing the value instead of flowing to partners and shareholders.
Right, so you're talking about IR35 specifically. This has nothing to do with "Uberisation" at all because the working arrangement and contract structure are completely different. It's also got fuck all to do with "classism" because it's 100% about tax.
First off, IR35 does not apply to self-employed workers, it only applies to a worker contracting via a limited company.
Second, it looks at how many "clients" you have. A limited company of 1 contracting to multiple clients is outside the scope of IR35 because, like your plumber, they are a business and not an employee trying to reduce the amount of tax they pay.
Thirdly, IR35 companies are allowed but they must operate in a specific way (that makes them not worth the hassle for the most part).
> That is class politics dressed up as “compliance”.
No, it's just about tax law.
I don't know why you needed to write 6 paragraphs when a simple "I don't know what the fuck I'm talking about" would have been much quicker for you to write and for me to read.
> First off, IR35 does not apply to self-employed workers, it only applies to a worker contracting via a limited company.
You are using class-loaded language. Nobody says a worker is “operating via” a Big Four consultancy, but when it is a one-person company, suddenly it is framed as some artificial wrapper.
It is a recognised form of self-employment under UK law, where a person runs their own company to contract for work in their own right, on the same legal footing as any other incorporated business.
And IR35 is not confined to one-person outfits either. Its scope extends beyond the caricature of a lone contractor “gaming” the system.
IR35 is not determined by how many clients you have. It is driven by the ownership structure of the company providing the services. The legislation applies where the individual delivering the work has a material interest in that company, typically 5% or more.
> Thirdly, IR35 companies are allowed but they must operate in a specific way (that makes them not worth the hassle for the most part).
It amounts to saying you are free to run your own company, right up to the point where doing so allows you to retain the full commercial value of your labour rather than routing it through an approved intermediary.
Those restrictions are designed around companies owned by the worker delivering the service. The same structural suspicion is not applied to firms owned by external shareholders supplying labour in similar conditions.
When the rule set specifically constrains worker-owned businesses while leaving non-worker-owned ones operating freely, that is not accidental. It is a deliberate design choice that limits upward social mobility.
It is also not accurate to say IR35 has nothing to do with wider labour trends, because tax rules shape how work is structured in practice; many gig and platform workers are required to set up limited companies, and once labour is channelled into that model, the IR35 framework directly affects them, so drawing a hard line between “tax” and “Uberisation” ignores how policy design influences the real-world organisation of work.
> which I suppose makes sense if 30% of people simply lack the ability to reason
You can't really infer that from survey data, and particularly from this question. A few criticisms that I came up with off the top of my head:
- What if the number were actually 60% but half guessed right and half guessed wrong?
- Assuming the 30% is a failure of reasoning, it's possible that those 30% were lacking reason at that moment and it's not a general trend. How many times have you just blanked on a question that's really easy to answer?
- A larger percentage than you expected maybe never went to a car wash or don't know what one is?
- Language barrier that leaked through vetting? (Would be a small %, granted)
- Other obvious things like a fraction will have lied just because it's funny, were suspicious, weren't paying attention and just clicked a button without reading the question.
I do agree that the question isn't framed particularly badly, however. I'm just focusing on cognitive impairment, which I don't think is necessarily true all of the time.
> For a disease which (to my knowledge) can’t be slowed down or reversed, I think it’s a fair question why we would want to detect Alzheimer’s. Maybe there are other reasons, but my suspicion is that we will be able to, and an easy detection method significantly widens the pool of subjects to study later on.
Your point at the end is essentially correct. There's a couple of reasons that come to my mind:
Early detection lets us test cures more quickly. You can see if the treatment is working without waiting 30 years for symptoms to develop or not. If prevention is all that works, we can verify lifestyle changes, again without having to wait 30 years for symptoms to develop.
Early detection means there's more of a chance of any future treatment succeeding and the patient returning to a normal life. Think of early detection of cancer or heart disease meaning you can be treated with less risky medication and procedures and minimise the damage being done.
Unfortunately it started to be taken seriously, at least by academics who went on to infect an industry. I shit you not when I tell you the Software Project Management module I took at university described Agile as “Waterfall but done much faster” back in 2010/2011.
It's a lot like "GOTO considered harmful" where everyone knows the title changed by von Neumann but not the actual discussion (both by Dijkstra and the response by Knuth)
Same here. It’s like the author just finishes their Software Project Management module at uni, saw AI and had their mind blown without ever learning this thing called “The Agile Manifesto” exists!
When you vote, you vote for an entire platform and you especially vote for central campaign promises. You don’t get to say “I voted for a world where I’m on top” and then say “but not for the primary method the candidate promised to use!”
That doesn't seem to support your claim; guessing you mean:
> "2. Safe languages insert additional machine branches to do things like verify that array accesses are in-bounds. In correct code, those branches are never taken. That means that the machine code cannot be 100% branch tested, which is an important component of SQLite's quality strategy."
'Safe' languages don't need to do that, if they can verify the array access is always in bounds at compile time then they don't need to emit any code to check it. That aside, it seems like they are saying:
for (int i=0; i<10; i++) {
foo(array[i]);
}
in C might become the equivalent of:
for (int i=0; i<10; i++) {
if (i >= array_lower && i < array_higher) {
foo(array[i]);
} else {
??? // out of bounds, should never happen
}
}
in a 'safe' language, and i will always be in inside the array bounds so there is no way to test the 'else' branch?
But that can't be in SQLite's checks as you claim, because the C code does not have a branch there to test?
Either way it seems hard to argue that a bounds test which can never fail makes the code less reliable and less trustworthy than the same code without a bounds test, using the argument that "you can't test the code path where the bounds check which can never fail, fails" - because you can use that same argument "what if the C code for array access which is correct, sometimes doesn't run correctly, you can't test for that"?
Correct, that's what I mean. I trust SQLite's devs to know more about this, so I trust what they wrote. There are parts of Rust code that are basically:
do_thing().expect(...);
This branch is required by the code, even if it can't be reached, because the type system requires it. It's not possible to test this branch, therefore 100% coverage is impossible in those cases.
That’s not my requirement, that’s SQLite’s requirement. If you want to dispute their claim, I recommend you write to them, however I strongly suspect they know more about this than you do.
Not having bound checks does not make sqlite sqlite. If that was the case, you couldn't compile it with https://clang.llvm.org/docs/BoundsSafety.html turned on and still call it sqlite for example.
There's a lot of overlap between the smartest bears and the dumbest humans. However, we would want our tools to be more useful than the dumbest humans...
> You would be surprised, however, at how much detail humans also need to understand each other.
But in this given case, the context can be inferred. Why would I ask whether I should walk or drive to the car wash if my car is already at the car wash?
But also why would you ask whether you should walk or drive if the car is at home? Either way the answer is obvious, and there is no way to interpret it except as a trick question. Of course, the parsimonious assumption is that the car is at home so assuming that the car is at the car wash is a questionable choice to say the least (otherwise there would be 2 cars in the situation, which the question doesn't mention).
But you're ascribing understanding to the LLM, which is not what it's doing. If the LLM understood you, it would realise it's a trick question and, assuming it was British, reply with "You'd drive it because how else would you get it to the car wash you absolute tit."
Even the higher level reasoning, while answering the question correctly, don't grasp the higher context that the question is obviously a trick question. They still answer earnestly. Granted, it is a tool that is doing what you want (answering a question) but let's not ascribe higher understanding than what is clearly observed - and also based on what we know about how LLMs work.
Gemini at least is putting some snark into its response:
“Unless you've mastered the art of carrying a 4,000-pound vehicle over your shoulder, you should definitely drive. While 150 feet is a very short walk, it's a bit difficult to wash a car that isn't actually at the car wash!”
I think a good rule of thumb is to default to assuming a question is asked in good faith (i.e. it's not a trick question). That goes for human beings and chat/AI models.
In fact, it's particularly true for AI models because the question could have been generated by some kind of automated process. e.g. I write my schedule out and then ask the model to plan my day. The "go 50 metres to car wash" bit might just be a step in my day.
> I think a good rule of thumb is to default to assuming a question is asked in good faith (i.e. it's not a trick question).
Sure, as a default this is fine. But when things don't make sense, the first thing you do is toss those default assumptions (and probably we have some internal ranking of which ones to toss first).
The normal human response to this question would not be to take it as a genuine question. For most of us, this quickly trips into "this is a trick question".
Rule of thumb for who, humans or chatbots? For a human, who has their own wants and values, I think it makes perfect sense to wonder what on earth made the interlocutor ask that.
Rule of thumb for everyone (i.e. both). If I ask you a question, start by assuming I want the answer to the question as stated unless there is a good reason for you to think it's not meant literally. If you have a lot more context (e.g. you know I frequently ask you trick or rhetorical questions or this is a chit-chat scenario) then maybe you can do something differently.
I think being curious about the motivations behind a question is fine but it only really matters if it's going to affect your answer.
Certainly when dealing with technical problem solving I often find myself asking extremely simple questions and it often wastes time when people don't answer directly, instead answering some completely different other question or demanding explanations why I'm asking for certain information when I'm just trying to help them.
That's never been how humans work. Going back to the specific example: the question is so nonsensical on its face that the only logical conclusion is that the asker is taking the piss out of you.
> Certainly when dealing with technical problem solving I often find myself asking extremely simple questions and it often wastes time when people don't answer directly
Context and the nature of the questions matters.
> demanding explanations why I'm asking for certain information when I'm just trying to help them.
Interestingly, they're giving you information with this. The person you're asking doesn't understand the link between your question and the help you're trying to offer. This is manifesting as a belief that you're wasting their time and they're reacting as such. Serious point: invest in communication skills to help draw the line between their needs and how your questions will help you meet them.
>Going back to the specific example: the question is so nonsensical on its face that the only logical conclusion is that the asker is taking the piss out of you.
I would dispute that that matters in 99.9% of scenarios.
>The person you're asking doesn't understand the link between your question and the help you're trying to offer.
Sure I, get that and I do always explain why I need to know something but it does add delays to the process (either before or after I ask). When I'm on the receiving end of a support call I answer the questions I'm asked (and provide supplementary information if I think they might need it).
> That's never been how humans work. Going back to the specific example: the question is so nonsensical on its face that the only logical conclusion is that the asker is taking the piss out of you.
Or a typo, or changing one's mind part way through.
If someone asked me, I may well not be paying enough attention and say "walk"; but I may also say "Wa… hang on, did you say walk or drive your car to a car wash?"
Sure, in a context in which you're solving a technical problem for me, it's fair that I shouldn't worry too much about why you're asking - unless, for instance, I'm trying to learn to solve the question myself next time.
Which sounds like a very common, very understandable reason to think about motivations.
So even in that situation, it isn't simple.
This probably sucks for people who aren't good at theory of mind reasoning. But surprisingly maybe, that isn't the case for chatbots. They can be creepily good at it, provided they have the context - they just aren't instruction tuned to ask short clarifying questions in response to a question, which humans do, and which would solve most of these gotchas.
I don't mind people asking why I asked something, I'd just prefer they answer the question as well. In the original scenario, the chatbot could answer the question as written AND enquire if that's what they really meant. It's the StackOverflow syndrome where people answer a different question to the one posed. If someone asks "How can I do this on Windows?" - telling me that Windows sucks and here's how to do it on Linux is only slightly useful. Answer the question and feel free to mention how much easier it is in Linux by all means.
I personally love explaining to people who might want to solve the issue next time so I'm happy to bore them to tears if they want. But don't let us delay solving the problem this time.
- They have an employment contract, so are an employee, not a self-employed contractor.
- There are limitations on who else they could work for.
- In practice, if they're called up to work last-minute, they can't say "no."
For most 0-hour contracts, like retail, trying to setup your employees as self-employed contractors doesn't work because it's a blatant violation of the law. HMRC will come after you for employer's NI as you have disguised employees.
Uber is a very different model because the way they setup the working arrangements allows them to keep taxi drivers outside the scope of disguised employees.
reply