Not actually true. There's a huge amount of legal writing and law covering exactly what can and can't be covered by a contract, what is and is not valid, etc. This is why people hire lawyers to go over and write them very carefully; because 10 - 20 years down the line, a single mistake can invalidate a whole section or even the entirety of a huge contract.
OTOH, the side that can afford lawyers is certainly in a better position out of the gate.
Maybe the decision itself isn't, but think of it as a community issue. He is, in fact, leaving a group of people (among whom he may or may not have close friends, but certainly will have people he has worked with), specifically to compete with them, and, according to his post, actually TAKING working code away from them. He's essentially leaving a community, and joining its rival for pure money. He may have a legal right to do it (although I'm unclear on how he's taking his previously released changes and making them not-BSD licensed after release), but there are certainly moral questions involved in how he does it, and whether it's the right thing to do.
Now, certainly these aren't life-or-death morality issues. But they do exist.
A good plan might be to set up an intranet site listing all allowed (and specifically banned) extra-company software, with a web form for submitting suggestions. Every (increment of time), IT reviews the suggestions, and updates the banned/allowed list.
Now you still have the issue of employees working to get around bans, but if you're banning primarily malware (and have this listed next to the entry on the banned page), I don't think that will be a problem except from the genuinely malicious (who would be a problem anyway).
Also, if a company uses systems that are based off of a network image or are routinely refreshed from disk images (except the home/user directories), you could lock the computers down, and have IT update the images based on the suggestions with the most popular/requested software. The users are happy, because their programs get installed and they have agency in the process, and IT is happy because there's less room for users to destroy the systems.
Let me ask you - if you lose your ID badge, maybe leave it on the bus... should you be fired? After all, someone could use it to enter the building - it's a security risk that is all your fault, regardless of intent.
That's a really good analogy.
I find the prevalence of "If an employee is suboptimal in any way, fire them and start over" to be really creepy and upsetting.
For instance, what about that person who's slow picking up workplace policies and rhythms, but once they're caught up, phenomenal at their job? I mean, do they get to have valuable work and money for food and shelter? Or does a minor setback mean "Whoops, no job for you! Go live in a gutter!"
Any system that's going to be dealing with people needs to understand and deal with the mistakes we can't help but make.
At the same time, I also feel that the term legacy should probably be used a bit more literally.
Here, here.
Unit testing is a good thing. That doesn't mean that code without it is automatically legacy. I mean, does that mean that the instant the first object-oriented system showed up, all of the procedural code currently being written was suddenly legacy? Does it mean that the Linux Kernel is legacy, now? No. Because legacy already HAS a definition in this context.
It's bad enough having seventeen things with 'Java' somewhere in the name*. Do we have to make things more confusing by trying to map one name over two entirely separate concepts?
* Hyperbole intentional. Java/Javascript doesn't actually confuse me or most people for more than 5 minutes. But still. C'mon...
It may only work with Mac but it works well with all platforms.
I don't believe that the screen sharing is open-protocol or anything like that; thus, it seems very single-platform, at least for the use case that is presented.
Except the poster did, in fact, specify FOSS in the question.
Also, if they don't work exclusively Mac already, it's not free. Bundled with the OS doesn't mean free, it means "costed as part of the OS." That's part of why OEMs can say "With thousands of dollars worth of software!" when they sell these things.
Also, the poster specified that it is a small (thus, unlikely to be able to afford computer replacement) game development project (thus, unlikely to be targeting OSX anyway).
No one's dissing iChat... it just doesn't meet like 90% of the poster's requirements.
Especially (in some cases, probably exclusively) comment on your data structures. Logic is much easier to figure out after the fact from code than how many of what unit you stored where how.
Also, this has the handy side effect of limiting you to data structures that you understand well enough to describe in English.
Hmmmmm. I spot a bug here; If an instance of the program runs for more than a year solid starting or continuing through a leap year, you're going to get an off by one (day) error;-)
Wasn't it "Only learn one text editor completely?"
I mean, know vi, emacs, and the standard IDE pattern well enough to use them if dropped into them... but is it worth the time to become a wizard in multiple editors?
And on what you're programming in. In Perl, goto LABEL is a clearer, syntactically cleaner way to break out of loops than any of the various exception handling methods I've seen.
You see, there's where something like incentives should be brought in. Not the current bullshit system where so-called "incentives" are actually necessary wins to maintain house and home, but a system where they pay you a living wage for meeting your responsibilities, but over-producers can accomplish extra work for something like bounties.
A lot of retail sales forces nowadays have their procedures, forms, training, and company policy on the internet instead of doing paper mailouts or maintaining in-store books.
Also, it utterly ignores people with burst schedules. For instance, a receptionist (whose job hasn't been horribly overloaded) that doesn't have any calls coming in had BETTER have something to do; or else it's mind-numbing. Or what about people who are waiting on input from another employee? Sure, you can say "Go do something else business-related," but everywhere I've seen that policy, it's ended up being useless make-work (i.e. restocking basically full shelves, or re-inventorying counted merchandise).
Ideally, yes. In a well designed system, both employer and employee have power in the relationship.
Except that currently, the employer, on average, has a disproportionate slice of the power in this relationship.
I haven't been in a situation where I could voluntarily leave a job in quite a while. I'm college educated, reasonably intelligent, and have glowing references from my employers (and was good friends with both my most recent bosses).
Not actually true. There's a huge amount of legal writing and law covering exactly what can and can't be covered by a contract, what is and is not valid, etc. This is why people hire lawyers to go over and write them very carefully; because 10 - 20 years down the line, a single mistake can invalidate a whole section or even the entirety of a huge contract.
OTOH, the side that can afford lawyers is certainly in a better position out of the gate.
IANAL, but aren't these licenses, rather than contracts?
Maybe the decision itself isn't, but think of it as a community issue. He is, in fact, leaving a group of people (among whom he may or may not have close friends, but certainly will have people he has worked with), specifically to compete with them, and, according to his post, actually TAKING working code away from them. He's essentially leaving a community, and joining its rival for pure money. He may have a legal right to do it (although I'm unclear on how he's taking his previously released changes and making them not-BSD licensed after release), but there are certainly moral questions involved in how he does it, and whether it's the right thing to do.
Now, certainly these aren't life-or-death morality issues. But they do exist.
To sideways echo the original poster... how big does a ramdisk /tmp need to be?
Exactly.
A good plan might be to set up an intranet site listing all allowed (and specifically banned) extra-company software, with a web form for submitting suggestions. Every (increment of time), IT reviews the suggestions, and updates the banned/allowed list.
Now you still have the issue of employees working to get around bans, but if you're banning primarily malware (and have this listed next to the entry on the banned page), I don't think that will be a problem except from the genuinely malicious (who would be a problem anyway).
Also, if a company uses systems that are based off of a network image or are routinely refreshed from disk images (except the home/user directories), you could lock the computers down, and have IT update the images based on the suggestions with the most popular/requested software. The users are happy, because their programs get installed and they have agency in the process, and IT is happy because there's less room for users to destroy the systems.
(lisp (were (you (think (I'd)))))
That's a really good analogy.
I find the prevalence of "If an employee is suboptimal in any way, fire them and start over" to be really creepy and upsetting.
For instance, what about that person who's slow picking up workplace policies and rhythms, but once they're caught up, phenomenal at their job? I mean, do they get to have valuable work and money for food and shelter? Or does a minor setback mean "Whoops, no job for you! Go live in a gutter!"
Any system that's going to be dealing with people needs to understand and deal with the mistakes we can't help but make.
Here, here.
Unit testing is a good thing. That doesn't mean that code without it is automatically legacy. I mean, does that mean that the instant the first object-oriented system showed up, all of the procedural code currently being written was suddenly legacy? Does it mean that the Linux Kernel is legacy, now? No. Because legacy already HAS a definition in this context.
It's bad enough having seventeen things with 'Java' somewhere in the name*. Do we have to make things more confusing by trying to map one name over two entirely separate concepts?
* Hyperbole intentional. Java/Javascript doesn't actually confuse me or most people for more than 5 minutes. But still. C'mon...
Elaborate on what you mean here?
It may only work with Mac but it works well with all platforms.
I don't believe that the screen sharing is open-protocol or anything like that; thus, it seems very single-platform, at least for the use case that is presented.
VNC is what you need there... although it'll feel boggy as hell.
Except the poster did, in fact, specify FOSS in the question. Also, if they don't work exclusively Mac already, it's not free. Bundled with the OS doesn't mean free, it means "costed as part of the OS." That's part of why OEMs can say "With thousands of dollars worth of software!" when they sell these things. Also, the poster specified that it is a small (thus, unlikely to be able to afford computer replacement) game development project (thus, unlikely to be targeting OSX anyway). No one's dissing iChat... it just doesn't meet like 90% of the poster's requirements.
Since reality has left her out of Iraq, we might as well do so too? ;-)
The terrorists that Afganistan was supporting.
Iraq, not so much.
Will those of us who fail get cake as well?
Waaaaait. I don't believe in your cake.
Your cake, sir/madam, is a lie.
Especially (in some cases, probably exclusively) comment on your data structures. Logic is much easier to figure out after the fact from code than how many of what unit you stored where how.
Also, this has the handy side effect of limiting you to data structures that you understand well enough to describe in English.
Hmmmmm. I spot a bug here; If an instance of the program runs for more than a year solid starting or continuing through a leap year, you're going to get an off by one (day) error ;-)
Wasn't it "Only learn one text editor completely?"
I mean, know vi, emacs, and the standard IDE pattern well enough to use them if dropped into them... but is it worth the time to become a wizard in multiple editors?
And on what you're programming in. In Perl, goto LABEL is a clearer, syntactically cleaner way to break out of loops than any of the various exception handling methods I've seen.
Ahem. Just not worth it. Apparently this is the thread of typos.
But the economic heartburn, the terrible liberties-eroding diarrhea... It's just not with it.
You see, there's where something like incentives should be brought in. Not the current bullshit system where so-called "incentives" are actually necessary wins to maintain house and home, but a system where they pay you a living wage for meeting your responsibilities, but over-producers can accomplish extra work for something like bounties.
My last job had a form called a TPS report, for realz. I laughed until I cried. And then I cried, because it was a pain in the rear to fill out.
A lot of retail sales forces nowadays have their procedures, forms, training, and company policy on the internet instead of doing paper mailouts or maintaining in-store books.
Also, it utterly ignores people with burst schedules. For instance, a receptionist (whose job hasn't been horribly overloaded) that doesn't have any calls coming in had BETTER have something to do; or else it's mind-numbing. Or what about people who are waiting on input from another employee? Sure, you can say "Go do something else business-related," but everywhere I've seen that policy, it's ended up being useless make-work (i.e. restocking basically full shelves, or re-inventorying counted merchandise).
Ideally, yes. In a well designed system, both employer and employee have power in the relationship.
Except that currently, the employer, on average, has a disproportionate slice of the power in this relationship.
I haven't been in a situation where I could voluntarily leave a job in quite a while. I'm college educated, reasonably intelligent, and have glowing references from my employers (and was good friends with both my most recent bosses).