Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror

Comment Re:Not sure how to feel about this (Score 3, Informative) 366

If Uber can call their drivers "contractors" what's to prevent everyone using that loophole to ignore minimum wage law?

This is a great question, it comes up a lot more than one would normally think.

Most jurisdictions have established legal tests to determine if the relationship between two individuals is an employment relationship (contract of service) or a contractual relationship (contract for service). Common elements of the tests are:

1. Does the individual use his or her own equipment, or does the individual use equipment that is provided by the employer/contractee? If the individual uses his or her own equipment, then he or she is most likely a contractor.

2. Does the individual have a duty to obey or does the employee/contractor have greater autonomy over the tasks that he or she chooses to perform? If the individual can choose when to work and selects work from a provided list of work orders then he or she is likely a contractor. If the individual is obligated to perform whatever tasks are assigned to him or her as long as they are within the parameters of a job description, then he or she is most likely an employee.

3. Is there a framework for discipline? An employer can discipline an employee (within reason) according to company policy. A contractee cannot discipline a contractor; any grievances must be dealt with per the contract and disputes settled either by arbitration or in court. A contractee may of course ask a contractor to discipline his or her own employee.

4. When does the legal relationship terminate? A contract for service nominally ends whenever the contracted service has been completed. A contract of service ends whenever the relationship is severed by those involved. Companies that hire individuals on a "renewable contract basis" and do not provide them with specific work that constitutes service often find themselves on the undesirable side of a court decision.

There are many more elements involved and they do vary from jurisdiction to jurisdiction. In general though, the court will examine both the de-joure relationship and the de-facto relationship. When they do not align, the court often will decide in the best interest of the individual.

Comment Re:Write-only code. (Score 1) 757

Bah, formatting got screwed up again. Here's another attempt.

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

typedef struct
{
        void    (*function)(int,int);
        int     argA;
        int     argB;
} threadargs_t;
pthread_t threadA, threadB;
void dosomething(int a, int b)
{
printf("this is something: %d %d\n",a,b);
}
void dosomethingelse(int a, int b)
{
printf("this is something else: %d %d\n",a,b);
}
void* thread_entry(void* args)
{
threadargs_t* threadargs = (threadargs_t*)args;
(*threadargs->function)(threadargs->argA,threadargs->argB);
free(threadargs);
return NULL;
}
int main(int argc, char** argv)
{
int localA = 0, localB = 1, localC = 2, localD = 3;
threadargs_t* threadA_args = malloc(sizeof(threadargs_t));
threadargs_t* threadB_args = malloc(sizeof(threadargs_t));
threadA_args->function = &dosomething;
threadA_args->argA = localA;
threadA_args->argB = localB;
threadB_args->function = &dosomethingelse;
threadB_args->argA = localC;
threadB_args->argB = localD;
pthread_create(&threadA,0,&thread_entry,threadA_args);
pthread_create(&threadB,0,&thread_entry,threadB_args);
fgetc(stdin);
return 0;
}

Comment Re:Write-only code. (Score 1) 757

#include
#include
#include

typedef struct
{
                void (*function)(int,int);
                int argA;
                int argB;
} threadargs_t;

pthread_t threadA, threadB;
void dosomething(int a, int b)
{
printf("this is something: %d %d\n",a,b);
}

void dosomethingelse(int a, int b)
{
printf("this is something else: %d %d\n",a,b);
}
void* thread_entry(void* args)
{
threadargs_t* threadargs = (threadargs_t*)args;

(*threadargs->function)(threadargs->argA,threadargs->argB);
free(threadargs);
return NULL;
}

int main(int argc, char** argv)
{
int localA = 0, localB = 1, localC = 2, localD = 3;
threadargs_t* threadA_args = malloc(sizeof(threadargs_t));
threadargs_t* threadB_args = malloc(sizeof(threadargs_t));
threadA_args->function =
threadA_args->argA = localA;
threadA_args->argB = localB;
threadB_args->function =
threadB_args->argA = localC;
threadB_args->argB = localD;
pthread_create(&threadA,0,&thread_entry,threadA_args);
pthread_create(&threadB,0,&thread_entry,threadB_args);

fgetc(stdin);
return 0;
}

Comment Re: ECC Memory (Score 1) 180

I can't see how it would be possible to defeat ECC.

The attacker would have to construct a write that affects the desired bits in the row-to-be-hammered and has check bits that affect the row-to-be-hammered's check bits such that the altered row is validated. This is probably nigh impossible to do in all but a select few constrained cases.

Comment Re:Read the EULA... the lawsuit has no merit. (Score 1) 114

Not necessarily.

Contracts do not shield parties from criminal liability resulting from recklessness (knowingly, and willingly placing someone at risk) or negligence (unknowingly, but unnecessarily placing someone at risk).

One might argue that installing a root certificate on customer computers, including the private key on that same computer, and using an easily guessed password to protect that key constitutes negligent behaviour by placing customers at risk cyber attacks. It may even be argued that such an act is reckless because anyone skilled enough in the cryptographic systems used should have been able to identify that risk from the surface of the moon.

What Lenovo did was so incredibly batshit stupid and irresponsible that it's hard to describe in better words.

Comment Re:You sunk my battleship (Score 1) 439

Why bother with a floating artillery garrison that can only attack targets within a dozen miles when we already have superiority with a Carrier Group consisting of a floating air base accompanied by floating missile platforms that can take out the major military targets of a small nation several hundred miles away all by themselves?

Cost effectiveness. Air sorties are expensive, cruise missiles are even more expensive. Slinging 16 inch 2,700 pound explosive filled shells at hardened defences is extremely effective both in terms of damage and cost, if one can safely navigate a battleship into range of course. USS Wisconsin and USS Missouri both royally fucked up Iraqi shore defences as well as Iraqi forces in Kuwait during the Gulf War.

While battleships are extremely cost effective at delivering ordnance, they are very expensive to keep operational, even during peace time.

Comment Re:Despite the armchair admirals ... (Score 1) 439

Um, no. The defining characteristics of a battleship are its high calibre naval artillery and heavy armour, guided missile frigates have neither of those.

A Ticonderoga class cruise carries an assortment of about 140 missiles of various design and purpose. An Iowa class battleship carried over 1,200 16 inch shells alone.

Comment Re:You sunk my battleship (Score 2, Informative) 439

No particular hate, they were never replaced after WWII. While no one is planning any new ones, modern destroyers are getting larger and larger with the Zumwalt class destroyer larger than many WWII cruisers. I suspect that a battleship-esque design will be proposed sometime in the next few decades to mount powerful railguns.

Anyway, there are several reasons why battleship fell out of favour.

1. Battleships were often used as a fleet-in-being. Battleships are highly impervious to surface fire, so a single battleship was often enough to deter any fleet that did not have an equivalently armoured and armed battleship of its own from attacking while simultaneously forcing that enemy to keep a nearby presence to deter the battleship from doing the same. As a result, many WWII Battleships spent their time sitting in port as nothing more than a highly glorified gatekeeper.

2. Nations that did not have extensive blue-water navies often used battleships on their own, with little to no support fleet. This made them easy targets for swarms of aircraft laden with bombs and torpedoes. The USA used this tactic extensively against Japan and sunk many of Japans heavy naval ships. The battleship Yamato (the heaviest battleship ever built) was sunk this way along with most of its accompanying fleet; the USA lost only 10 aircraft in the assault.
Anti-airacraft systems advanced heavily after the war, so it's doubtful that similar tactics would work against a modern battle group.

3. Battleships are extremely expensive to maintain and operate during both peace time and war time. Extensive automation and improvements have lowered this amount dramatically over time, but it's still high.

4. Logistics are a bitch. Modern nuclear powered craft can carry enough supplies to last several months, and require refueling only once ever couple of decades, but hydrocarbon powered battleships required regular refuelling by either an oiler or at a friendly port. Bigger ships require more supplies and don't necessarily extend any additional influence

You cannot have a science without measurement. -- R. W. Hamming

Working...