It warms my heart to know that artists will be getting all the money that's due to them. Musicians always look so poor when I see them on television. Finally, they can afford the lifestyle they deserve.
CowboyNeal, you're a damn troll. Not only is this inflamatory and factually incorrect, I know you know better.
I agree that computers don't make this easier. Digging a few bits of paper from someone's trash will always be easier than, say, cross-referencing database records.
If you want to steal one person's identity, dumpster diving is the way to go.
But if you want to steal 30000 people's information, nothing beats a computer. With a large enough selection, you can hit each victim for a tiny sum, and fly under the radar. Ever hear that Law Enforcement (bless their simple little hearts) won't chase down fraud unless the damages are large enough? This means that if you hit one person for %50k, you get caught. But if you hit 200 people for %250 each, you live fat and happy 'till the end of your days. Harvesting tens of thousands of records at a time makes this strategy workable, but you do need a computer to pull it off.
Sounds like we're largely in agreement here. "Use the right tool for the job" and all that.
But I believe that stron typing does make for more stable, maintainable code. Here's why:
If I write a function in a strongly-typed language (I'm thinking in Java here), I can nail down exactly what I'm getting. All my assumptions about parameter types is made explicit to other programmers, and checked by the compiler.
On the other hand, if I'm using a weakly-typed, or untyped language, my assumptions cannot be checked by the compiler. (There are languages that get around this, but I'm taking the simplified case for now.) All the assumptions I'm making about the types of arguments I'm going to get are implicit in the code. If I'm calling that function, I need to know about its implementation in order to determine what kind of thingy it will work on. Likewise, if I want to change the implementation of the function, I need to know not only about the kind thingy it was meant to work on, but all the other types of thingies that are actually getting passed to it.
There are languages that get around this, with implicit typing, etc. But the bottom line seems to be that some kind of typechecking is simply too powerful a tool to give up in favor of letting programmers be a little lazier. In other words: Yes, Lazy is Good, but cover your ass at all times.
Computers are really good at remembering things and checking the consistency of large systems. These are exactly the things that humans are bad at. Strong typing just seems like a smart division of labor.
On the other hand, I've seen C and C++ programmers come up with the most amazingly fucked up atrocities to get around the strongly-typed nature of those languages, to solve a problem that could have been clearly and elegantly solved with a dynamically-typed language.
I've found that when I feel the urge to do this, that's a big fat flashing red sign that I've gotten lazy in my design.
Working around strong typing is like not wearing your seatbelt: you may get away with it for a while, but eventually something will go wrong, and the consequences will be horribly magnified because you circumvented the safety system.
A large part of programming is knowing how to get the computer to do your work for you, and a strong typing system can be made to do a lot of work. I make a point of never using Strings or ints to indicate state/type information. I define a DataType object, and implement a Visitor pattern. This lets me leverage strong typing: a method that accepts a DataType object knows exactly what it's getting, and implementing the DataTypeVisitor interface forces me to handle all possible cases, and all of this is caught at compile time, long before it causes any real damage.
You have to wonder how people this obvlivious to a free market managed to become an executive anywhere.
They don't want a free market. They want an untouchable monopoly, protected by the laws of economics and federal law. They don't care whether or not they can actually stop all the peer-to-peer systems; they just want to move another step closer to government-mandated locked-down DRM computers.
Over and over, I see posts that seem content to write off RIAA and MPAA representatives as idiots who simply don't understand the technology. This is a grevious mistake. I have friends in the entertainment industry. I'm practically family with a major-label executive. These people are very, very smart. And they know how to work the system. They are playing the game their way, and if we're not careful, they will win. The mainstream has never looked favorably on anti-establishment subcultures, and we have been slow in making inroads in government and in public perception. We need a PR department, and we need a lobby, and we need them yesterday.
Sorry, I'm ranting, I know. But I really think that we need to stand up and take a good look around. We can't fight the RIAA and MPAA with mathmatics proofs and P2P clients. By continuing to simply set up new P2P networks in spite of the Law, and by ignoring our governments, we resign our cause to the fringes. We will be troublemakers, miscreants with no morals. We will have a very, very hard time making ourselves heard in government or anywhere else. We have to fight this war on their territory.
You and I consider sub-folders to be "contained" by their parent folder. It's clear to us that if I share out/foo, then/foo/bar/ and/foo/zaz/ are also shared.
But my dad, for example, has a slightly different mental model of how the filesystem works. He sees folders as streets, and files as addresses along those streets. So to him,/foo/ doesn't "contain"/foo/bar/ or/foo/zaz/, you just have to go through/foo to get to them. After all, his house is on Maple St, which is off of Victoria Ave, but he doesn't think of his house as being "contained" in Victoria Ave.
Users are often self-taught, so they have odd (to us) mental models of what's going on inside that beige box on their desk. They make up their own analogies that make sense for them, and are often wrong in subtile ways, such as the "contains" vs. "is a path to" distinction.
There's a huge difference between supporting the public's rights to fair use, and wanting to emliminate copyright altogether. The current debate over copyright law centers on various partys' efforts to expand their rightful control over duplication to exert unrightful control over access.
So, to bring us back to the topic at hand: I support Lucas' right to do whatevery he wants with his own movies. But in the case of the Holy Trilogy, I wish he'd refrain, and leave them just as they are. (Or give us the option to view the old versions.)
I have a job, but I have many verry smart, verry capable friends who do not.
So, for all of them, I cordially invite you (and the company you work for) to piss off.
Now that that's out of the way, may I say that while posting this question here was in poor taste, I understand that this decision wasn't yours, so I'll offer a little advice: If you have any instinct for self-preservation, you'll find a new job immediately. This project is doomed, and that failure will be pinned on you. Find new work while your reputation is intact.
Or, if you actually don't care that you're going to get fired anyway, think of this: is being the go-between for a hostile employer and an apathetic programming team really what you dreamed of doing when you grew up?
Actually, it's amazingly comfortable once you get settled. All the little bumps and points sort of massage you if you distribute your weight. (Still hate stepping on bricks, though.) I used to do it when I was a kid, and would nearly fall asleep. I guess it's kinda like laying on a bed of nails.
Funny you should mention length of variables. I've never understood why anyone with A) decent typing skills and B) a real text editor would give a rat's ass about how long a variable name is.
Once I've typed ISDN_Terminals_Per_Trunk once, I can probably just type ISD M-/ and be done with it. Are typical software development tools so unforgivably lame that they lack something like emacs's dabbrev-expand?
Maybe my standards are misguided, but I've always considered this a basic function of a decent editor.
I've said this before, and I'll say it again. (It has also been well-argued by Clifford Stoll.)
A good education helps teach you to think. Computers don't belong in schools for the same reason that calculators don't belong in basic math classes. It's one thing if you don't actually do all the addition, subtraction, multiplication and division yourself. It is quite another if you can't. The same applies to logical reasoning, grammar, and anything else that computers make easier.
Hey, I think we've all been guilty of a little bullshit-spewage. That's part of life. If people learn a little something and change their opinions, I'm cool with that. Or maybe they just whine that the state oughtta take care of them, but in the end they learn that it simply doesn't, and whining isn't going to fix anything.
It takes time to make sense of something as life-shaking as being out of work for a while. I'm not going to hold it against anyone if they're still getting it figured out.
There's something strange happening (I call it cheating) when someone can graduate with a CS degree yet never use dynamic memory allocation knowingly...
There's something strange happening (I call it bullshit) when employers see college Computer Science programs as trade schools for C programmers.
In the real world, you don't get partial credit for a program that only dumps core or doesn't meet any of the design objectives.
College is not the real world. That seems obvious, but you don't seem to have thought about it much. Professors, TA's, etc. are trying to teach computer science, not train programmers.
No wonder the software industry is such a mess. I've seem CS *GRADUATE* students who couldn't use malloc().
You might be amazed to see what those graduate students have achieved without malloc().
Lemme tell ya, if you're not going to hire me simply because I don't know what malloc() does, then you can keep your job.
If you're finding that 95% of the candidates you talk to can't write a sort routine, and that you're having to fire people because they can't "program simple stuff on thier own," then you might want to re-think your hiring process. Sounds like you're getting all the wrong people.
Absolutely. The minute you start to geek out on your would-be constituents, you're going to loose them.
Also, running a city (IMHumbleO) isn't about the IT department. It's about widening streets for growing traffic demands, zoning for new development, or creating incentives for (small|big) business to move in. Depending on the size of the city, it's about leash laws and public access to school playgrounds.
IT and Linux is a loooooonggg way from any of the reasons that even I would want to vote for you.
after about 5 years at the keyboard (college, plus a couple years of full-time programming & posting to/.) I started noticing problems with my hands and wrists. (Tingling, stiffness, dull pain, etc.)
As soon as I started weight training, it all evaporated. I make sure to do some stretching (it's become something I just kinda do while I'm thinking), and I get out to the gym three nights a week. (Soon to be joined by weekly hocky games.)
There are a bunch of us here at work that type for a living. I've noticed that the guys who are in good shape (we've got a few ex-motocross riders) don't suffer from RSI. I have a friend who's a physical trainer, and she's helped a lot of people with wrist/CT problems just by getting them to do a little strength training on their wrists.
My pet theory: RSI & CT seem to be caused by overuse of underpowered muscles. Typing isn't stressful enough to make your arms stronger, but it is stressful enough to cause strain and eventual damage to over-worked muscles. Beef up, and you might avoid the problem.
There are several excercises that you can do to strengthen your wrists. My favorite is:
Tie a weight (5 lbs or so) to the end of a string, and tie the string to the middle of a 2-foot pole. (I use a cut-off hockey stick, and a small milk jug for the weight.)
Hold the pole in front of you with both hands, palms down, with the string hanging between them.
Now, reel in the weight. Turn the pole away from you until the weight comes all the way up. Then turn the pole toward you untill the weight goes all the way down and back again. Repeat.
You can do this with your arms resting on your knees, or train your shoulders and posture by doing it standing.
I'm fully aware that strength isn't the only factor in RSI and CT. But anything that trains strength and flexibility seems to help. Good luck, all!
If you're here asking us how to do this, you might not be qualified to handle this sort of security issue.
You have basically two options:
Hire a security consultant
Let your client know that they need to hire a security consultant.
Either way, you need to let your client know about this issue, and ensure that you're not going to be held responsible in the event of data loss/theft. Try to tackle this one yourself, without enough experience, and you're setting yourself up for a heap of trouble. Be a professional. Know your limitations.
This focus on skills, rather than knowledge is, I think, causing many of the problems in the United States' educational system. Kids don't learn to think, they memorize specific processes. "You just stick the right formula in; a solution for every fool."
I've heard it said that some IT managers prefer to hire people with Mathmatics, rather than CS degrees, "because they want people who can think." For as long as there have been books and teachers, kids have been asking, "but when am I ever going to use any of this stuff?" It worries me that the educators are now asking the same question.
Educators increasingly focus on getting students to come up with good answers. It is infinitely more important that they teach students to ask good questions.
So, how many slashdotters out there are well-adjusted, sociable geeks (Hmm, oxymoron?), and how many of you are/have been diagnosed as being "different" from your fellow homo sapiens?
When I was in 1st grade, the teacher recommended that I be tested for placement in "Special Education"-- classes geared toward students with learning disabilities. I was tested, but found not to be in need of special classes.
When I was in 2nd grade, my teacher recommended that I be placed in the "Gifted and Talented Education" program-- classes geared toward academically gifted students. I was tested, and found to be worthy of accelerated classes.
When I was in 6th grade, I was placed (as my "GaTE" status dictated) in the accelerated math class, where I promptly fell behind, mostly because of a *terrible* teacher. [I will not rant... I will not rant...] I was quickly booted from the class (no parent-teacher conference, no warning, no nothing) and place in the "regular" math class, where I was hopelessly bored, and spent most of my time reading ahead in the book and scoring 100% on the exams. The kids there thoght I was a freak. Too smart to be in with them, too dumb to be with the advanced class. I began to think so too.
In college, it was suggested that I might have some kind of learning disability in math, yet my calculus tutor often asked me why I felt that I needed him. It was also suggested that I might become a world-class tuba player, yet the music school kicked me out for "failing to progress toward a degree". (I then switched to a CS major and kicked ass.)
What have I learned? In diagnosis as in life, fuck what they think. Just put the pedal down and leave a nice long patch o' rubber on the asphalt. All their diagnoses mean exatly zip in the face of a life well lived.
CowboyNeal, you're a damn troll. Not only is this inflamatory and factually incorrect, I know you know better.
But if you want to steal 30000 people's information, nothing beats a computer. With a large enough selection, you can hit each victim for a tiny sum, and fly under the radar. Ever hear that Law Enforcement (bless their simple little hearts) won't chase down fraud unless the damages are large enough? This means that if you hit one person for %50k, you get caught. But if you hit 200 people for %250 each, you live fat and happy 'till the end of your days. Harvesting tens of thousands of records at a time makes this strategy workable, but you do need a computer to pull it off.
Stupid? Yep. Legal? Unfortunately.
Solution:
But I believe that stron typing does make for more stable, maintainable code. Here's why:
If I write a function in a strongly-typed language (I'm thinking in Java here), I can nail down exactly what I'm getting. All my assumptions about parameter types is made explicit to other programmers, and checked by the compiler.
On the other hand, if I'm using a weakly-typed, or untyped language, my assumptions cannot be checked by the compiler. (There are languages that get around this, but I'm taking the simplified case for now.) All the assumptions I'm making about the types of arguments I'm going to get are implicit in the code. If I'm calling that function, I need to know about its implementation in order to determine what kind of thingy it will work on. Likewise, if I want to change the implementation of the function, I need to know not only about the kind thingy it was meant to work on, but all the other types of thingies that are actually getting passed to it.
There are languages that get around this, with implicit typing, etc. But the bottom line seems to be that some kind of typechecking is simply too powerful a tool to give up in favor of letting programmers be a little lazier. In other words: Yes, Lazy is Good, but cover your ass at all times.
Computers are really good at remembering things and checking the consistency of large systems. These are exactly the things that humans are bad at. Strong typing just seems like a smart division of labor.
Working around strong typing is like not wearing your seatbelt: you may get away with it for a while, but eventually something will go wrong, and the consequences will be horribly magnified because you circumvented the safety system.
A large part of programming is knowing how to get the computer to do your work for you, and a strong typing system can be made to do a lot of work. I make a point of never using Strings or ints to indicate state/type information. I define a DataType object, and implement a Visitor pattern. This lets me leverage strong typing: a method that accepts a DataType object knows exactly what it's getting, and implementing the DataTypeVisitor interface forces me to handle all possible cases, and all of this is caught at compile time, long before it causes any real damage.
Over and over, I see posts that seem content to write off RIAA and MPAA representatives as idiots who simply don't understand the technology. This is a grevious mistake. I have friends in the entertainment industry. I'm practically family with a major-label executive. These people are very, very smart. And they know how to work the system. They are playing the game their way, and if we're not careful, they will win. The mainstream has never looked favorably on anti-establishment subcultures, and we have been slow in making inroads in government and in public perception. We need a PR department, and we need a lobby, and we need them yesterday.
Sorry, I'm ranting, I know. But I really think that we need to stand up and take a good look around. We can't fight the RIAA and MPAA with mathmatics proofs and P2P clients. By continuing to simply set up new P2P networks in spite of the Law, and by ignoring our governments, we resign our cause to the fringes. We will be troublemakers, miscreants with no morals. We will have a very, very hard time making ourselves heard in government or anywhere else. We have to fight this war on their territory.
But my dad, for example, has a slightly different mental model of how the filesystem works. He sees folders as streets, and files as addresses along those streets. So to him, /foo/ doesn't "contain" /foo/bar/ or /foo/zaz/, you just have to go through /foo to get to them. After all, his house is on Maple St, which is off of Victoria Ave, but he doesn't think of his house as being "contained" in Victoria Ave.
Users are often self-taught, so they have odd (to us) mental models of what's going on inside that beige box on their desk. They make up their own analogies that make sense for them, and are often wrong in subtile ways, such as the "contains" vs. "is a path to" distinction.
Jeez... guess I should really be ashamed, huh.
Or flame to your hear's content.
I had a whole rant chambered and ready to fly, but I'll just keep it short.
Does it trouble anyone else that the above comment rated a "5: Insightful"?
Oh...fuck it. Why do I bother?
So, to bring us back to the topic at hand: I support Lucas' right to do whatevery he wants with his own movies. But in the case of the Holy Trilogy, I wish he'd refrain, and leave them just as they are. (Or give us the option to view the old versions.)
So, for all of them, I cordially invite you (and the company you work for) to piss off.
Now that that's out of the way, may I say that while posting this question here was in poor taste, I understand that this decision wasn't yours, so I'll offer a little advice: If you have any instinct for self-preservation, you'll find a new job immediately. This project is doomed, and that failure will be pinned on you. Find new work while your reputation is intact.
Or, if you actually don't care that you're going to get fired anyway, think of this: is being the go-between for a hostile employer and an apathetic programming team really what you dreamed of doing when you grew up?
Actually, it's amazingly comfortable once you get settled. All the little bumps and points sort of massage you if you distribute your weight. (Still hate stepping on bricks, though.) I used to do it when I was a kid, and would nearly fall asleep. I guess it's kinda like laying on a bed of nails.
Once I've typed ISDN_Terminals_Per_Trunk once, I can probably just type ISD M-/ and be done with it. Are typical software development tools so unforgivably lame that they lack something like emacs's dabbrev-expand?
Maybe my standards are misguided, but I've always considered this a basic function of a decent editor.
A good education helps teach you to think. Computers don't belong in schools for the same reason that calculators don't belong in basic math classes. It's one thing if you don't actually do all the addition, subtraction, multiplication and division yourself. It is quite another if you can't. The same applies to logical reasoning, grammar, and anything else that computers make easier.
It takes time to make sense of something as life-shaking as being out of work for a while. I'm not going to hold it against anyone if they're still getting it figured out.
That reminds me... didn't someone say we can filter AC's now? Or am I thinking of K5?
Lemme tell ya, if you're not going to hire me simply because I don't know what malloc() does, then you can keep your job.
If you're finding that 95% of the candidates you talk to can't write a sort routine, and that you're having to fire people because they can't "program simple stuff on thier own," then you might want to re-think your hiring process. Sounds like you're getting all the wrong people.
Also, running a city (IMHumbleO) isn't about the IT department. It's about widening streets for growing traffic demands, zoning for new development, or creating incentives for (small|big) business to move in. Depending on the size of the city, it's about leash laws and public access to school playgrounds.
IT and Linux is a loooooonggg way from any of the reasons that even I would want to vote for you.
As soon as I started weight training, it all evaporated. I make sure to do some stretching (it's become something I just kinda do while I'm thinking), and I get out to the gym three nights a week. (Soon to be joined by weekly hocky games.)
There are a bunch of us here at work that type for a living. I've noticed that the guys who are in good shape (we've got a few ex-motocross riders) don't suffer from RSI. I have a friend who's a physical trainer, and she's helped a lot of people with wrist/CT problems just by getting them to do a little strength training on their wrists. My pet theory: RSI & CT seem to be caused by overuse of underpowered muscles. Typing isn't stressful enough to make your arms stronger, but it is stressful enough to cause strain and eventual damage to over-worked muscles. Beef up, and you might avoid the problem.
There are several excercises that you can do to strengthen your wrists. My favorite is:
- Tie a weight (5 lbs or so) to the end of a string, and tie the string to the middle of a 2-foot pole. (I use a cut-off hockey stick, and a small milk jug for the weight.)
- Hold the pole in front of you with both hands, palms down, with the string hanging between them.
- Now, reel in the weight. Turn the pole away from you until the weight comes all the way up. Then turn the pole toward you untill the weight goes all the way down and back again. Repeat.
You can do this with your arms resting on your knees, or train your shoulders and posture by doing it standing.I'm fully aware that strength isn't the only factor in RSI and CT. But anything that trains strength and flexibility seems to help. Good luck, all!
Anonymous source + bad grammar + stupid warning at the end = probably bogus. We'll know when we see the "study".
You have basically two options:
- Hire a security consultant
- Let your client know that they need to hire a security consultant.
Either way, you need to let your client know about this issue, and ensure that you're not going to be held responsible in the event of data loss/theft. Try to tackle this one yourself, without enough experience, and you're setting yourself up for a heap of trouble. Be a professional. Know your limitations.This focus on skills, rather than knowledge is, I think, causing many of the problems in the United States' educational system. Kids don't learn to think, they memorize specific processes. "You just stick the right formula in; a solution for every fool."
I've heard it said that some IT managers prefer to hire people with Mathmatics, rather than CS degrees, "because they want people who can think." For as long as there have been books and teachers, kids have been asking, "but when am I ever going to use any of this stuff?" It worries me that the educators are now asking the same question.
Educators increasingly focus on getting students to come up with good answers. It is infinitely more important that they teach students to ask good questions.
When I was in 2nd grade, my teacher recommended that I be placed in the "Gifted and Talented Education" program-- classes geared toward academically gifted students. I was tested, and found to be worthy of accelerated classes.
When I was in 6th grade, I was placed (as my "GaTE" status dictated) in the accelerated math class, where I promptly fell behind, mostly because of a *terrible* teacher. [I will not rant... I will not rant...] I was quickly booted from the class (no parent-teacher conference, no warning, no nothing) and place in the "regular" math class, where I was hopelessly bored, and spent most of my time reading ahead in the book and scoring 100% on the exams. The kids there thoght I was a freak. Too smart to be in with them, too dumb to be with the advanced class. I began to think so too.
In college, it was suggested that I might have some kind of learning disability in math, yet my calculus tutor often asked me why I felt that I needed him. It was also suggested that I might become a world-class tuba player, yet the music school kicked me out for "failing to progress toward a degree". (I then switched to a CS major and kicked ass.)
What have I learned? In diagnosis as in life, fuck what they think. Just put the pedal down and leave a nice long patch o' rubber on the asphalt. All their diagnoses mean exatly zip in the face of a life well lived.