Fairly useless to me: Non deterministic turing machines / provability / halting, low level hardware stuff, programming in assembler, axiomatic semantics, much of the math.
Missing: Experience working on real world style projects, interface design, usability, a focus on testing and qa, exposure to programming tools and frameworks, good database coursework.
Good: Anything with hands on programming/team work/projects, data structures & algorithms, various special interest electives like networking/ai/3d graphics, operating systems.
This baffles me to this day, but in my undergrad curriculum (97-01), I don't think I ever made a single program for school that had anything more than a command line interface (ok, we made some in a 1 credit hour java course). No GUI based applications. No web based applications. Not only did I not know the first thing about good interface design, I lacked that innate appreciation for topics like separation of business logic from presentation logic.
I was in the applied software engineering camp and left a master's in CS for similar reasons. It's like the abstract people are from another world sometimes. Classic example, variable naming. In an applied setting, you name a variable like a loop counter something like currentDayIndex. In an abstract setting, you pick a random symbol out of the greek alpahbet.
A university is a seller which should pander only to its clients - the students attending it.
At a lot of institutions, particularly public ones, a great deal of the funding comes from tax dollars. In other words, society is a client of universities. This money is being spent for the greater good and... jobs and economic growth are all part of that. Also, as someone who works with a career services office, I can tell you that most students are very very very interested in using their degree to obtain a job.
I am astonished by the general public which advocates liberal arts education for general self-betterment, while condoning learning in computer science only if it "gets you a job."
I think you're setting up a straw man argument here. Most people don't talk in these kinds of absolutes. There's just some of us that would like to see an education in computers that was more practical: design, usability, project management instead of axiomatic semantics, non deterministic turing machines, and calculus 4. Part of the problem is that a lot of people want a software engineering degree and most schools only offer computer science.
Getting back to your comment about how a university should pander to their clients... when I went to school... there was an attitude among many of the faculty that they were here to "teach us how to think". It was fairly condescending and a lot of the required material was thrust upon unwilling students. In other words, there were many courses that students only took because they were required, not because they were useful to the student, not because they were interesting to the student.
An operating system has multiple types of end users. There are the end users who sit at the terminal and the system administrators who use the tools built up around the operating system to manage deployments of workstations. Put another way, management features are part of an operating system like Vista and sys admins are end users of those features.
In addition, Vista also has features that are specifically designed to be used by enterprises. For example, at my university, they have a volume licensing key server that will automatically activate any Vista copy on campus without entering a product key. This is a feature that was developed for and can only be used by enterprises. The end user for this feature is an enterprise.
So anyways, while I completely agree with you that Microsoft is focusing on their customers and not their end users, I would argue that their customers are in fact end users of Microsoft's product.
I also work at a campus career center (although soley in a tech capacity) and second most of this.
With respect to the display, I would suggest making it very clear which majors and position types you are looking for. Since you are small, you will not have a lot of name recognition. A lot of students will miss you when they are planning which companies to talk to at the fair. And in reality, a lot of students don't plan much of anything before the fair. In addition, if you are small, you are probably local, and depending on the market in the region, this can be a big plus for many students. Also, students love free junk and are mysteriously attracted to it.
Information sessions can be important as well, but if you offer one, you may have trouble filling it up depending on interest level. The campus career services center can give you an idea of how many people would show up if you offer one.
Posting your positions with the campus career services office and signing up to do interviews through career services are also both great ways to reach your target audience and (at least at my university) it is much cheaper than a career fair booth.
Also, be sure you have at least a few people. If you've never worked a career fair, it usually sucks especially if you are busy all day. Be sure you all agree on a strategy for things like tracking good candidates (different resume piles) and signing up people for interviews.
I'm a graduate student in computer science, and I have no idea why anyone would want to give a student an actual turing machine, much less a modern computer. It's fine as a means of removing tedium, but students need to do a lot of tedious things once or twice. In my computability and unsolvability class, I can't think of a single aspect of the class that would be improved by having a turing machine.
Ok, sarcasm aside, there were a number of times it would have been handy to have a programmable model of a basic turing machine running on a modern pc for visualization and testing purposes. I even thought about trying to write some software to do it. In a calculus class, a calculator can sometimes help you by allowing you to check your answers and providing some excellent visuals and it can sometimes hurt you by letting you rely on it for things you should be learning yourself.
I hang out with a lot of math grad students, and my experience with them is that they tend to be very smart people in the abstract, capable of doing a lot of complex reasoning in their heads. Several of them seem to strongly look down on calculator usage in general, not just in the classroom. In contrast, I've got a friend that struggles with basic algebra. She sees an equation with X's and Y's and has a VERY hard time mapping that set of symbols into something meaningful. She also has major math/confidence issues. Having a tool that helps her validate her work and provides concrete visualizations of equations can be helpful.
A calculator may be a crutch, but it's good to remember that some people have a much easier time walking with one than without.
We get a new user every couple of weeks so it's a low priority for us. I usually try to give them a single page facts sheet containing their login, important file server paths, how to access webmail offsite, and IT's contact information. We then spend a very little time doing things like opening up Outlook, talking about any special programs they'll be needing and what they'll need to do to get access to them. We've been looking at putting some of the generic information online, but unfortunately, different groups have different needs/ways of doing things, so this complicates things.
One thing good about this procedure is that it affords me some face time with new users. This gives them an opportunity to get to know me and hopefully lets them feel comfortable shooting questions my way. At the same time, spending a few minutes working with them gives me the opportunity to find out if this person is going to be an easy user or if they are some sort of demon spawn sent from hell to twist and snap the tattered remains of my soul by finding strange and spectacular new ways to fail their "use email" proficiency check.
If I had to do this 7-8 times a week, I might try to combine the sessions. That's just too much time and too many people. And my experience is that if you do the new user meeting, you get the new user questions for weeks or forever or until you repeatedly turf them.
Similarly, I work at a university and it's looking at deploying Microsoft's Key Management Service. This has spurred some conversation about activations in the past and future. In the past, we were given a single cd key from Microsoft that was good for an unlimited number of activations. Should the key escape to wide scale piracy, Microsoft's only recourse was to make the key, and all computers using it, non-genuine. While this did not happen at our university, it apparently did happen other places. So this is one example where legitimate pcs could be flagged as non-genuine.
I've also had two pcs installed with our still legitimate/genuine XP key be initially detected as "non-genuine" on windows update until I went through the www.microsoft.com/genuine portal.
In the future, it sounds like Microsoft won't be giving out any more unlimited activation keys. Instead, they will allow so many thousand activations on a key, and they can expand the number if they choose/you ask. At least, this is one thing they are doing with us. If it escapes to wide scale piracy, they will issue you a new key and just use the limit on the old key for damage control. This way, they won't be faced with a choice of making a legitimate organization's install base non genuine as collateral for making a million unlicensed pcs in china non genuine.
Even if the candidate screws up, it doesn't necessarily mean that the candidate is a problem. For example, I've gone into at least a few interviews jet-lagged, disoriented from driving around a strange city / getting lost on a large corporate campus, mind numbed from filling out paperwork, and nervous about the upcoming interviews. You're not really sure what to expect in the interview, casual discussion, programming specifics, etc. Then, all of a sudden, someone is asking you to implement some kind of C++ code on a whiteboard while they're holding a stopwatch and you've programmed in nothing but C# and Java for the past year and haven't had your morning coffee.
I've been in that situation a few times before, not really had my concentration/been in my element, and have written some truly ridiculous nonsensical code. I'm pretty sure one or two interviewers thought I was an absolute moron and would be a danger to the code base. Shrug, people have bad days, are good at different things in different settings, etc. If I interview someone, and they royally screw up, I might giggle about it a little behind their back, but I'm not about to tell them they are in the wrong industry after a 30 minute conversation. Besides, usually a bad interview is demoralizing enough without having some prick telling you he thinks you're technically incompetent.
I've tried all of these but always end up getting sidetracked. Usually, the pain comes in terms of trying to apply tests to poorly designed or rapidly changing program models or in trying to set up test data in a db.
Of these, I actually like SimpleTest the best so far, but I don't have more than a passing familiarity with any of them.
In terms of code quality, I think I've got more mileage out of goodish coding practices (separation of business/presentation logic, lots of acceptance testing) and libraries that support rapid development (eg DB_DataObject, HTML_QuickForms, Propel, Smarty).
The key is to find some work place that is more in line with your moral values.
After getting layed off in the bust, with little experience, I found a job working as a developer for a local technology company. The boss was something of a prick and he was very into controlling and monitoring things. Anyways, he had some very aggressive filters installed on our proxy. Like all filtering software, this software sucked. It didn't block a lot of what it was supposed to and it did block a lot of what it shouldn't. At some point, the boss decided employing bad blocking software was not enough. He wanted to be able to see a weekly report that showed every site every employee in his department visited and for a similar report to be sent out to every manager in the company. This assignment, he gave to me.
Writing this 1984-esque report has always been, in my mind, one of the worst things I've ever been asked to do. But if I quit the job then, I'd be broke with a new lease to break (again). So I wrote the damn report and did a fairly good job of it. About 2 weeks after the report went live, a manager noticed his account was being used "by someone" to surf porn. In this case, the person had spent about 10-15 minutes on some scantilly clad biker babe site. They traced it to some guy working in the distribution facility and fired him.
Did they have the right guy? How long had he worked there? Did he have a family to support? Was it really the manager? Who knows...? All I really know is some guy got fired for reasons I don't entirely agree with because of a report I wrote.
On one hand, I have always regretted making that report, but on the other hand refusing to do so would probably have resulted in me being fired after having moved to a new city for the job, breaking a second lease in a year, etc. I ended up quiting for other/additional reasons about 7 months later (after I had some financial footing).
Now I work in a university for substantially less pay than I would make in the private sector. And while I occassionally disagree with some policy here, people tend to be more in line with my morals, and I've never had a dilema at all like the one at my old company.
So my advice is this. If you can get out of the assignment, do so. If you can't and you can afford to quit and you think it's that morally objectionable, then quit. If not, do the assignment and, if you think there is more to come, start looking for another job that will be more in line with your morals.
Third, using these tools as akin to admitting you are committing piracy because the only concievable utility is to attempt to hide from industry.
Ironically, the first thing that caught my eye about this article was the potential use of this software for spyware/malware protection in an organization. Eg, I think tools like spybot (free) and windows defender (free?) and adaware (not free for orgs) do not do this kind of ip blocking. Maybe I'm wrong? Anyways, the fact that it is open source makes it particularly attractive too because I don't think there are many good open source products in this area.
Of course, geered towards the anti-riaa crowd, I doubt this software would be all that great for anti-spyware in a corporate setting, but it was still my first thought.
with science's initial state that nothing exists that isn't provable.
There is a misinterpretation here. Science is about hypothesis and experimentation. If something is not testable, there is no scientific reason for saying it is true. Consider, this applies equally to the statements "God exists" and "God does not exist." The initial state in science is not non-existence but rather uncertainty.
Incidentally, one might hypothesize that one might find out if god exists when dead. The scientific experiment would be to die and see what happens. Me, personally, I'm in no rush.
We know that the hardware always eventually fails.
We know that hardware always becomes obsolete.
If data is important to someone, it should be backed up and kept available on modern hardware. Disk failure and hardware obsoletion should be non-factors. If it's not important enough to take those safeguards, it's not actually important. Software obsoletion is, imo, a much bigger problem but the same rules apply.
We know that civilisations always fall.
For us to lose a critical quantity of modern knowledge, it would not be enough for a civilization to fail, it would have to be a global failure. And not just any global failure, but a shitstorm so great that no amount of preparation would save our collective asses. In the event of such a failure, we'd probably still have more hard copy to fall back on from the last century than was produced in the entirety of human civilization prior to that.
I don't have any particular gripes about pine. I've never used it.
Choice is good. How would the death of a project be good for someone who doesn't use it anyway?
As a system administrator, I frequently have to support crappy software and idiots, whether it's something one of my users has installed or something someone somewhere else has installed that one of my users is trying to communicate with. That said, there is a certain percentage of people out there using text based mail clients that do so because they are either too stupid or too stubborn to switch to a mail client that has the modern capabilities 90% of my users simply expect to exist for their recipients. This creates problems for me.
At any rate, my point is that, even as a non-user, there are many projects I have often wished would just die. You don't have to be a user of a particular piece of software for it to impact your life. Eg, everyone is impacted by things like Microsoft Office. Choice isn't necessarily bad, but bad choices are.
What a piece of work is math!
How noble in reason!
How infinite in faculties!
In plots and graphing, how express and admirable!
In Algebra, how like an angel!
In Analysis, how like a god!
The beauty of the world...
The paragon of sciences...
And yet... to me...
What is this quintessence of arithmetic?
Math delights not me.
What better way to understand side-effects than through monads?
Perhaps I'm dumb, but one of the reasons I dislike the inclusion of mathy style mathematics in CS degrees is because every word of the monad entry is damn near incomprehensible whilst every word of the CS entry just-makes-sense. I'm not even touching the wikipedia entry on F-Coalgebra. When I took advanced math in math and cs courses, I felt like half the time was spent just trying to understand all the weird terminology, tracking arbitrarily chosen single letter variables, and even more arbitrary symbols from foreign character sets.
"In category theory, a monad or triple is a type of functor, together with two associated natural transformations. Monads are important in the theory of pairs of adjoint functors. They can be viewed as monoid objects in a category of endofunctors (hence the name) and they generalize closure operators on posets to arbitrary categories.
"In computer science, a function is said to produce a side effect if it modifies some state other than its return value. For example, a function might modify a global or a static variable, modify one of its arguments, write data to a display or file, or read some data from other side-effecting functions. Side effects often make a program's behavior more difficult to predict."
So anyways, to me, this monad/functor/natural transformation stuff, and the materials that deal with it, all seem incredibly less clear than the CS way of looking at things. From a practical standpoint, what would learning the mathy way of looking at these things get me?
More focus on these in a CS context would be helpful to people such as myself who find math more interesting when it has a purpose
Adding to that sentiment, I've always thought that we in CS have much better ways of expressing the mathematical ideas we use than do the mathematicians. They always like to have these extremely dense unreadable expressions filled with greek symbols and arbitrary one letter variable names. It's literally greek to me. Meanwhile, in cs, we are turning this kind of expression of logical statements into a science in and of itself. If someone programmed like most mathematicians write, he would likely be universally hated amongst his coworkers. Why study graphs, set theory, or proofs in a math class when you can (and will) study it in a CS class?
I've started to use geshi and find it to be very nice. There is a plugin available for serendipity and probably for a number of other blog apps. One problem I've noted though, is that geshi can be very slow. Sometimes it takes 10-20 seconds to render a large ugly html file. On the other hand, I've noticed sometimes it only takes a few seconds. If you store the marked up code in the blog app instead of re-marking it up for every request, the delay probably won't be a major concern.
Even if you think that there are fewer technically qualified women for some IT roles - a claim I personally don't agree with
Whoa... how can anyone contest that? Only 7% of the people completing my CS program were female. The vast majority of all people I've known in IT have been male. There are far fewer women than men in IT. For there NOT to be fewer technically qualified women for some IT roles, women in the field would have to be 10 times more likely to be qualified than their male counterparts. You will find fewer qualified male nurses than female nurses because there are fewer male nurses.
It's not natural
And how exactly are single gender groups not natural? Bad for a large company, sure, I could see that... but it seems like our species has been organizing itself into single gender groups for various functions ever since its inception. I don't care if you're talking about primitive hunter/gatherer groups, guys at a sports pub, or girls at a mall. If anything, I'd say highly unbalanced gender groups are a lot more unnatural... and that's a large chunk of the problem.
Eric Fossler Lussier. He didn't really talk about lucent stuff other than to say generally what kinds of systems he worked on and relay that anecdote about swearing. In other words, if I thought he'd violated an nda or anything I wouldn't give his name. His CV says he was with Bell Labs / Lucent Technologies from 2000-2002.
I had an AI prof who used to work on these kinds of systems at Lucent. He told us that one of the usability bits they ran into was trying to detect when the AI was in over its head. Apparently, swearing proved to be a good indicator. So if you ever want to bypass the machine, just say "earmuffs" to your kids and start spewing profanity into the phone. I've never tried it myself, but if nothing else, I imagine it would be somewhat satisfying as a last resort.
I have a better idea. Let's just send Tom Hanks.
Fairly useless to me: Non deterministic turing machines / provability / halting, low level hardware stuff, programming in assembler, axiomatic semantics, much of the math.
Missing: Experience working on real world style projects, interface design, usability, a focus on testing and qa, exposure to programming tools and frameworks, good database coursework.
Good: Anything with hands on programming/team work/projects, data structures & algorithms, various special interest electives like networking/ai/3d graphics, operating systems.
This baffles me to this day, but in my undergrad curriculum (97-01), I don't think I ever made a single program for school that had anything more than a command line interface (ok, we made some in a 1 credit hour java course). No GUI based applications. No web based applications. Not only did I not know the first thing about good interface design, I lacked that innate appreciation for topics like separation of business logic from presentation logic.
I was in the applied software engineering camp and left a master's in CS for similar reasons. It's like the abstract people are from another world sometimes. Classic example, variable naming. In an applied setting, you name a variable like a loop counter something like currentDayIndex. In an abstract setting, you pick a random symbol out of the greek alpahbet.
A university is a seller which should pander only to its clients - the students attending it.
At a lot of institutions, particularly public ones, a great deal of the funding comes from tax dollars. In other words, society is a client of universities. This money is being spent for the greater good and... jobs and economic growth are all part of that. Also, as someone who works with a career services office, I can tell you that most students are very very very interested in using their degree to obtain a job.
I am astonished by the general public which advocates liberal arts education for general self-betterment, while condoning learning in computer science only if it "gets you a job."
I think you're setting up a straw man argument here. Most people don't talk in these kinds of absolutes. There's just some of us that would like to see an education in computers that was more practical: design, usability, project management instead of axiomatic semantics, non deterministic turing machines, and calculus 4. Part of the problem is that a lot of people want a software engineering degree and most schools only offer computer science.
Getting back to your comment about how a university should pander to their clients... when I went to school... there was an attitude among many of the faculty that they were here to "teach us how to think". It was fairly condescending and a lot of the required material was thrust upon unwilling students. In other words, there were many courses that students only took because they were required, not because they were useful to the student, not because they were interesting to the student.
An operating system has multiple types of end users. There are the end users who sit at the terminal and the system administrators who use the tools built up around the operating system to manage deployments of workstations. Put another way, management features are part of an operating system like Vista and sys admins are end users of those features.
In addition, Vista also has features that are specifically designed to be used by enterprises. For example, at my university, they have a volume licensing key server that will automatically activate any Vista copy on campus without entering a product key. This is a feature that was developed for and can only be used by enterprises. The end user for this feature is an enterprise.
So anyways, while I completely agree with you that Microsoft is focusing on their customers and not their end users, I would argue that their customers are in fact end users of Microsoft's product.
I also work at a campus career center (although soley in a tech capacity) and second most of this.
With respect to the display, I would suggest making it very clear which majors and position types you are looking for. Since you are small, you will not have a lot of name recognition. A lot of students will miss you when they are planning which companies to talk to at the fair. And in reality, a lot of students don't plan much of anything before the fair. In addition, if you are small, you are probably local, and depending on the market in the region, this can be a big plus for many students. Also, students love free junk and are mysteriously attracted to it.
Information sessions can be important as well, but if you offer one, you may have trouble filling it up depending on interest level. The campus career services center can give you an idea of how many people would show up if you offer one.
Posting your positions with the campus career services office and signing up to do interviews through career services are also both great ways to reach your target audience and (at least at my university) it is much cheaper than a career fair booth.
Also, be sure you have at least a few people. If you've never worked a career fair, it usually sucks especially if you are busy all day. Be sure you all agree on a strategy for things like tracking good candidates (different resume piles) and signing up people for interviews.
I'm a graduate student in computer science, and I have no idea why anyone would want to give a student an actual turing machine, much less a modern computer. It's fine as a means of removing tedium, but students need to do a lot of tedious things once or twice. In my computability and unsolvability class, I can't think of a single aspect of the class that would be improved by having a turing machine.
Ok, sarcasm aside, there were a number of times it would have been handy to have a programmable model of a basic turing machine running on a modern pc for visualization and testing purposes. I even thought about trying to write some software to do it. In a calculus class, a calculator can sometimes help you by allowing you to check your answers and providing some excellent visuals and it can sometimes hurt you by letting you rely on it for things you should be learning yourself.
I hang out with a lot of math grad students, and my experience with them is that they tend to be very smart people in the abstract, capable of doing a lot of complex reasoning in their heads. Several of them seem to strongly look down on calculator usage in general, not just in the classroom. In contrast, I've got a friend that struggles with basic algebra. She sees an equation with X's and Y's and has a VERY hard time mapping that set of symbols into something meaningful. She also has major math/confidence issues. Having a tool that helps her validate her work and provides concrete visualizations of equations can be helpful.
A calculator may be a crutch, but it's good to remember that some people have a much easier time walking with one than without.
We get a new user every couple of weeks so it's a low priority for us. I usually try to give them a single page facts sheet containing their login, important file server paths, how to access webmail offsite, and IT's contact information. We then spend a very little time doing things like opening up Outlook, talking about any special programs they'll be needing and what they'll need to do to get access to them. We've been looking at putting some of the generic information online, but unfortunately, different groups have different needs/ways of doing things, so this complicates things.
One thing good about this procedure is that it affords me some face time with new users. This gives them an opportunity to get to know me and hopefully lets them feel comfortable shooting questions my way. At the same time, spending a few minutes working with them gives me the opportunity to find out if this person is going to be an easy user or if they are some sort of demon spawn sent from hell to twist and snap the tattered remains of my soul by finding strange and spectacular new ways to fail their "use email" proficiency check.
If I had to do this 7-8 times a week, I might try to combine the sessions. That's just too much time and too many people. And my experience is that if you do the new user meeting, you get the new user questions for weeks or forever or until you repeatedly turf them.
Similarly, I work at a university and it's looking at deploying Microsoft's Key Management Service. This has spurred some conversation about activations in the past and future. In the past, we were given a single cd key from Microsoft that was good for an unlimited number of activations. Should the key escape to wide scale piracy, Microsoft's only recourse was to make the key, and all computers using it, non-genuine. While this did not happen at our university, it apparently did happen other places. So this is one example where legitimate pcs could be flagged as non-genuine.
I've also had two pcs installed with our still legitimate/genuine XP key be initially detected as "non-genuine" on windows update until I went through the www.microsoft.com/genuine portal.
In the future, it sounds like Microsoft won't be giving out any more unlimited activation keys. Instead, they will allow so many thousand activations on a key, and they can expand the number if they choose/you ask. At least, this is one thing they are doing with us. If it escapes to wide scale piracy, they will issue you a new key and just use the limit on the old key for damage control. This way, they won't be faced with a choice of making a legitimate organization's install base non genuine as collateral for making a million unlicensed pcs in china non genuine.
Consider that the problem could be you.
Even if the candidate screws up, it doesn't necessarily mean that the candidate is a problem. For example, I've gone into at least a few interviews jet-lagged, disoriented from driving around a strange city / getting lost on a large corporate campus, mind numbed from filling out paperwork, and nervous about the upcoming interviews. You're not really sure what to expect in the interview, casual discussion, programming specifics, etc. Then, all of a sudden, someone is asking you to implement some kind of C++ code on a whiteboard while they're holding a stopwatch and you've programmed in nothing but C# and Java for the past year and haven't had your morning coffee.
I've been in that situation a few times before, not really had my concentration/been in my element, and have written some truly ridiculous nonsensical code. I'm pretty sure one or two interviewers thought I was an absolute moron and would be a danger to the code base. Shrug, people have bad days, are good at different things in different settings, etc. If I interview someone, and they royally screw up, I might giggle about it a little behind their back, but I'm not about to tell them they are in the wrong industry after a 30 minute conversation. Besides, usually a bad interview is demoralizing enough without having some prick telling you he thinks you're technically incompetent.
- JUnit
- NUnit
- PhpUnit (I think there are multiple versions)
- Php SimpleTest
Of these, I actually like SimpleTest the best so far, but I don't have more than a passing familiarity with any of them.In terms of code quality, I think I've got more mileage out of goodish coding practices (separation of business/presentation logic, lots of acceptance testing) and libraries that support rapid development (eg DB_DataObject, HTML_QuickForms, Propel, Smarty).
The key is to find some work place that is more in line with your moral values.
After getting layed off in the bust, with little experience, I found a job working as a developer for a local technology company. The boss was something of a prick and he was very into controlling and monitoring things. Anyways, he had some very aggressive filters installed on our proxy. Like all filtering software, this software sucked. It didn't block a lot of what it was supposed to and it did block a lot of what it shouldn't. At some point, the boss decided employing bad blocking software was not enough. He wanted to be able to see a weekly report that showed every site every employee in his department visited and for a similar report to be sent out to every manager in the company. This assignment, he gave to me.
Writing this 1984-esque report has always been, in my mind, one of the worst things I've ever been asked to do. But if I quit the job then, I'd be broke with a new lease to break (again). So I wrote the damn report and did a fairly good job of it. About 2 weeks after the report went live, a manager noticed his account was being used "by someone" to surf porn. In this case, the person had spent about 10-15 minutes on some scantilly clad biker babe site. They traced it to some guy working in the distribution facility and fired him.
Did they have the right guy? How long had he worked there? Did he have a family to support? Was it really the manager? Who knows...? All I really know is some guy got fired for reasons I don't entirely agree with because of a report I wrote.
On one hand, I have always regretted making that report, but on the other hand refusing to do so would probably have resulted in me being fired after having moved to a new city for the job, breaking a second lease in a year, etc. I ended up quiting for other/additional reasons about 7 months later (after I had some financial footing).
Now I work in a university for substantially less pay than I would make in the private sector. And while I occassionally disagree with some policy here, people tend to be more in line with my morals, and I've never had a dilema at all like the one at my old company.
So my advice is this. If you can get out of the assignment, do so. If you can't and you can afford to quit and you think it's that morally objectionable, then quit. If not, do the assignment and, if you think there is more to come, start looking for another job that will be more in line with your morals.
Third, using these tools as akin to admitting you are committing piracy because the only concievable utility is to attempt to hide from industry.
Ironically, the first thing that caught my eye about this article was the potential use of this software for spyware/malware protection in an organization. Eg, I think tools like spybot (free) and windows defender (free?) and adaware (not free for orgs) do not do this kind of ip blocking. Maybe I'm wrong? Anyways, the fact that it is open source makes it particularly attractive too because I don't think there are many good open source products in this area.
Of course, geered towards the anti-riaa crowd, I doubt this software would be all that great for anti-spyware in a corporate setting, but it was still my first thought.
with science's initial state that nothing exists that isn't provable.
There is a misinterpretation here. Science is about hypothesis and experimentation. If something is not testable, there is no scientific reason for saying it is true. Consider, this applies equally to the statements "God exists" and "God does not exist." The initial state in science is not non-existence but rather uncertainty.
Incidentally, one might hypothesize that one might find out if god exists when dead. The scientific experiment would be to die and see what happens. Me, personally, I'm in no rush.
We know that the hardware always eventually fails.
We know that hardware always becomes obsolete.
If data is important to someone, it should be backed up and kept available on modern hardware. Disk failure and hardware obsoletion should be non-factors. If it's not important enough to take those safeguards, it's not actually important. Software obsoletion is, imo, a much bigger problem but the same rules apply.
We know that civilisations always fall.
For us to lose a critical quantity of modern knowledge, it would not be enough for a civilization to fail, it would have to be a global failure. And not just any global failure, but a shitstorm so great that no amount of preparation would save our collective asses. In the event of such a failure, we'd probably still have more hard copy to fall back on from the last century than was produced in the entirety of human civilization prior to that.
I don't have any particular gripes about pine. I've never used it.
Choice is good. How would the death of a project be good for someone who doesn't use it anyway?
As a system administrator, I frequently have to support crappy software and idiots, whether it's something one of my users has installed or something someone somewhere else has installed that one of my users is trying to communicate with. That said, there is a certain percentage of people out there using text based mail clients that do so because they are either too stupid or too stubborn to switch to a mail client that has the modern capabilities 90% of my users simply expect to exist for their recipients. This creates problems for me.
At any rate, my point is that, even as a non-user, there are many projects I have often wished would just die. You don't have to be a user of a particular piece of software for it to impact your life. Eg, everyone is impacted by things like Microsoft Office. Choice isn't necessarily bad, but bad choices are.
What a piece of work is math!
How noble in reason!
How infinite in faculties!
In plots and graphing, how express and admirable!
In Algebra, how like an angel!
In Analysis, how like a god!
The beauty of the world...
The paragon of sciences...
And yet... to me...
What is this quintessence of arithmetic?
Math delights not me.
What better way to understand side-effects than through monads?
Perhaps I'm dumb, but one of the reasons I dislike the inclusion of mathy style mathematics in CS degrees is because every word of the monad entry is damn near incomprehensible whilst every word of the CS entry just-makes-sense. I'm not even touching the wikipedia entry on F-Coalgebra. When I took advanced math in math and cs courses, I felt like half the time was spent just trying to understand all the weird terminology, tracking arbitrarily chosen single letter variables, and even more arbitrary symbols from foreign character sets.
Monads"In category theory, a monad or triple is a type of functor, together with two associated natural transformations. Monads are important in the theory of pairs of adjoint functors. They can be viewed as monoid objects in a category of endofunctors (hence the name) and they generalize closure operators on posets to arbitrary categories.
Side Effects"In computer science, a function is said to produce a side effect if it modifies some state other than its return value. For example, a function might modify a global or a static variable, modify one of its arguments, write data to a display or file, or read some data from other side-effecting functions. Side effects often make a program's behavior more difficult to predict."
So anyways, to me, this monad/functor/natural transformation stuff, and the materials that deal with it, all seem incredibly less clear than the CS way of looking at things. From a practical standpoint, what would learning the mathy way of looking at these things get me?
More focus on these in a CS context would be helpful to people such as myself who find math more interesting when it has a purpose
Adding to that sentiment, I've always thought that we in CS have much better ways of expressing the mathematical ideas we use than do the mathematicians. They always like to have these extremely dense unreadable expressions filled with greek symbols and arbitrary one letter variable names. It's literally greek to me. Meanwhile, in cs, we are turning this kind of expression of logical statements into a science in and of itself. If someone programmed like most mathematicians write, he would likely be universally hated amongst his coworkers. Why study graphs, set theory, or proofs in a math class when you can (and will) study it in a CS class?
I've started to use geshi and find it to be very nice. There is a plugin available for serendipity and probably for a number of other blog apps. One problem I've noted though, is that geshi can be very slow. Sometimes it takes 10-20 seconds to render a large ugly html file. On the other hand, I've noticed sometimes it only takes a few seconds. If you store the marked up code in the blog app instead of re-marking it up for every request, the delay probably won't be a major concern.
7 million subscribers @ $50 for game = $350 million
7 million subscribers @ $15 / month = $1260 million / year
Total: $1.6 billion + $1.2 billion/year
Box office totals for the top grossing movies:
Titanic: $600 million
Star Wars: $461 million
Shrek 2: $436 million
Total: $1.5 billion
I would not be the least bit surprised if World of Warcraft was the most successful entertainment venture of all time.
Throwing away some statistically useful data is a small sacrifice to make on the altar of egalitarianism.
Tell that to the auto insurance companies.
Even if you think that there are fewer technically qualified women for some IT roles - a claim I personally don't agree with
Whoa... how can anyone contest that? Only 7% of the people completing my CS program were female. The vast majority of all people I've known in IT have been male. There are far fewer women than men in IT. For there NOT to be fewer technically qualified women for some IT roles, women in the field would have to be 10 times more likely to be qualified than their male counterparts. You will find fewer qualified male nurses than female nurses because there are fewer male nurses.
It's not natural
And how exactly are single gender groups not natural? Bad for a large company, sure, I could see that... but it seems like our species has been organizing itself into single gender groups for various functions ever since its inception. I don't care if you're talking about primitive hunter/gatherer groups, guys at a sports pub, or girls at a mall. If anything, I'd say highly unbalanced gender groups are a lot more unnatural... and that's a large chunk of the problem.
Eric Fossler Lussier. He didn't really talk about lucent stuff other than to say generally what kinds of systems he worked on and relay that anecdote about swearing. In other words, if I thought he'd violated an nda or anything I wouldn't give his name. His CV says he was with Bell Labs / Lucent Technologies from 2000-2002.
I had an AI prof who used to work on these kinds of systems at Lucent. He told us that one of the usability bits they ran into was trying to detect when the AI was in over its head. Apparently, swearing proved to be a good indicator. So if you ever want to bypass the machine, just say "earmuffs" to your kids and start spewing profanity into the phone. I've never tried it myself, but if nothing else, I imagine it would be somewhat satisfying as a last resort.