Let's look at this question from a philosophy angle. Let's say Google is bent on doing good, or at the very least, committed to avoiding evil. If they then employ or otherwise use the services of someone, like a lobbying organization, with a history of doing evil, is Google doing evil?
There are two possibilities here. One is that the lobbying organization with a track record of evil does no evil while being payed by Google. The other is that the lobbying organization continues its standard practice of evil behavior while on the clock for Google.
In the first case, one could perhaps argue that paying someone who used to do evil that no longer does evil is giving them a new start, a chance to make things right. However if the lobbying organization doesn't do evil on behalf of Google, but still does evil on behalf of other clients, then one could argue that Google is supporting the evil-doer financially, even if it isn't contributing to evil directly.
Let's examine the second case. If the organization actually does commit evil directly while on the clock for Google, and Google is aware of it, then one would have a difficult time arguing that Google is not at least guilty of contributory evil.
Of course, none of this says what good or evil actually are. I'll leave that as an excercise for the reader.
One way to reduce the challenges of using Javascript and AJAX across browsers is to use a library that abstracts away many of the differences from one browser to another. One such library is MochiKit, which provides AJAX / remote scripting support, functional language tools, portable DOM manipulation, and event signalling. It's even got some cool flashy visual effects.
Anyway, I'm not affiliated with the MochiKit at all; I'm just a very satisfied user and even use it on my own site.
You mentioned that you needed to process credit cards. Check out my employer, TrustCommerce, which offers a completely open source credit card processing API for connecting to our payment gateway. It compiles on tons of platforms (including Linux), and we have versions for many programming languages: C, C++, PHP, Python, Ruby, Perl, ColdFusion, Lisp, etc. All code is GPL.
I used to work at NASA Ames, starting back in 1996. On a daily basis, I used Perl, Apache, and all the GNU tools I could get my hands on. And this wasn't just a lone coder using this software either. Everyone on the project used open source software either directly or indirectly.
So it's really great that some people within NASA are making a more formal push for open source software, and are even discussing releasing some of their own, but open source within NASA is hardly new!
I work for TrustCommerce, a credit card processing gateway that just happens to compete with Verisign, the gateway mentioned in this article. What I want to know is why the Verisign rep said nothing about the velocity controls that should have been in place on the account in question. Velocity controls work like this: If a merchant goes over a certain number of transactions per day or per card, no more transactions are let through. The whole point of these controls are to prevent exactly this sort of basic fraud from occurring in the first place.
Hey, I'm one of the guys who works on these HDPS Linux systems. For modelling, we're primarily a Maya shop. Maya has had a Linux port for a while, and many other 3D animation packages have Linux versions, with the glaring exception of 3D Studio Max.
As far as the rigs themselves, we run a custom 3D viewer based on Maya's Realtime SDK. As another poster has said, a puppeteer puts their hands in these sort of weird metal controls, and the character on-screen moves their face and head in realtime.
Note that this is technically not motion capture. Motion capture involves reading the exterior movement of a body or face with either optical or magnetic sensors. And then the exterior of the CG model is moved accordingly. This is not very accurate at all for facial animation because you are just moving around the surface of the face. What we do is allow the puppeteer to drive the virtual muscles of the character's face with their hand movements, thereby getting a much better facial performance than is possible with motion capture.
However, motion capture is very useful for body movement. And in fact, we have married the facial performance described above with traditional motion capture for the body, so that you can have one puppeteer performing a 3D model's face while another performer controls the body by dancing around a stage. All in realtime. It's quite cool to see in action.
Keep in mind that we do much more than Muppet characters. We're sort of a service available to anyone who has facial animation they want done. We do video games, movies, TV, etc.
Hey guys, I'm the sysadmin who runs all the Red Hat machines that this article talks about. We've got four "rigs" on wheels, each with two shock-mounted AMD machines running a customied Red Hat 7.x with an RTLinux kernel. Each side of the rigs has a flat panel LCD and a keyboard. One side let's you puppeteer a computer-generated character on-screen in realtime with custom controls. The other side is for a technician to set everything up. Right now we're transitioning to a dual-processor rig with a single machine and only one keyboard.
This stuff is really neat to see in person. Using HDPS, a trained puppeteer can create computer graphics facial animations in realtime that might take a team of animators several weeks.
There are some images of our system in use available.
You can email me (dhelfman at la.creatureshop.henson.com) if you've got any questions.
You're completely misunderstanding the point of this language. "Representation-independent" semantics does NOT mean that you'll code in little happy egyptian symbols rather than text. It means that code can be presented to the programmer in whatever form best suits the task at hand, whether that be text, a call graph, a class hierarchy, etc.
Here is the general flow of Meyer's argument for the immorality of free software:
Premise: Eric Raymond is a gun nut.
Premise: Other members of the free software movement have not vocally "dissociated [themselves] from the gun propaganda."
Deduction: Therefore, other members of the free software movement must agree with Eric Raymond.
Dedution: Thus, all members of the free software movement are gun nuts.
Premise: Gun nuts are immoral people.
Deduction: The free software movement is immoral. "That [a denouncement of the gun movement] has not happened is a sign of the distortion of the moral values of the free software movement."
Normally, I'd make a witty or snide remark here about such laughable logic, but I think that Meyer does more to discredit his own argument than anything I can say.
Actually, no. The goal of the Freenet project is complete freedom of speech. You can't have that freedom of speech if you restrict certain types of files. Either the network allows anonymous posting of files, or it doesn't. You can't make the technical design discriminate among different types of files.
So yeah, the network will be used, in part, for warez. It'll probably be used for pornography too. That's just the price you'll have to pay if you want other "more important" forms of speech to be protected too.. like, say: political dissent.
The only reason Metallica's hired henchmen were able to find specific law-breaking users is due to the braindead design of Napster. There are (at least) two ways that a user can be caught:
If the NetPD people connected to Napster with a bunch of fake Metallica MP3s, they could log everyone who downloaded the MP3s from them.
Or, the NetPD people could instead search Napster for people with Metallica MP3s.
Both of these approaches to privacy violation work in the first place because of Napster's lack of caching. Let's say you, as a user, want to download a particular MP3 on Napster. Your machine must directly connect to the machine the MP3 is hosted on. There goes your privacy.
Now, let's do the same thing on Freenet (an up-and-coming distributed network system, like Napster, but more intended for free speech and anonymity than just music downloads). On Freenet, your request for a particular file doesn't go directly to the machine the file is hosted on. Rather, you connect to any local Freenet node, and that node connects to its local nodes, and so on, until the file you're looking for is found.
Then, do you connect to the host with the file and download it directly? No, of course not. If you did, we'd be back in this whole Metallica mess. Instead, the file is returned through the series of nodes, one by one, like popping off the stack when returning from a recursive function. And the beauty of this design is that at each node along the way a copy of the requested file is cached. So not only do you get pretty decent anonymity, you also get free decentralized worldwide file caching. The files naturally and transparently gravitate towards the nodes where they're being requested the most often.
Anyway, check out the Freenet web site if you want to know more about the project. I just thought I'd point out that there are technical solutions to this sort of privacy problem, and they're not too far away at all. Go Freenet.
My HTML tags were correct when I posted this.. I even double-checked. Something's screwy with slashdot's tag filtering. Anyway, here's the link to the email message, if anyone's interested..
You may find this site a great help in determining exactly which movies you can boycott if you're at all worried about the whole DeCSS mess. It lists the mainstream movies that are currently playing in theaters, along with their respective studio affiliations and whether they're a plaintiff in the DeCSS lawsuit.
Here at UCLA, they've just switched the CS operating systems class from hacking Minix to hacking Linux. Windows users who don't know Unix suddenly have to learn bash in two weeks and then begin hacking their own kernel syscalls when they're done with that. It makes for some interesting tech support for us at the UCLA LUG.
Sawmill has a really nice graphical key bindings editor that lets you assign any key (or key combination) to just about any window management action that you can think of: raising windows, cycling windows, moving windows, resizing windows, killing windows, maximizing, minimizing, cycling workspaces, etc.
Of course, you'll need to use the mouse to initially configure your key bindings.
When I tried to read the linked article, I got this error:
403 Forbidden
This webserver does not answer requests from browsers that do not set the HTTP_USER_AGENT variable (the browser ID string). Please try your request again using a properly configured browser.
I guess I better go disable my Junkbuster privacy-enhacing proxy so that I'll be allowed to read this article about privacy violations.
You're right in that moderation is an attempt to rid this site of trolls, wherever they may be from. But my point is that, in the long run, it's ultimately a useless fight. CmdrTaco will keep coding in more moderation features and more special cases and more rules and more regulations. And it might even cause a few trolls to be moderated down. But at what cost? What about the rest of the discussion? What about the relevant posts that get mismoderated? Or the dissenting opinions that are slapped down because the vast majority doesn't agree with them? I'm just worried that in our zeal to rid this site of all trolls and flamers, we're ignoring the fact that we may be damaging any chance of rational discussion, which requires dissenting opinions in order to function!
Let's look at this question from a philosophy angle. Let's say Google is bent on doing good, or at the very least, committed to avoiding evil. If they then employ or otherwise use the services of someone, like a lobbying organization, with a history of doing evil, is Google doing evil?
There are two possibilities here. One is that the lobbying organization with a track record of evil does no evil while being payed by Google. The other is that the lobbying organization continues its standard practice of evil behavior while on the clock for Google.
In the first case, one could perhaps argue that paying someone who used to do evil that no longer does evil is giving them a new start, a chance to make things right. However if the lobbying organization doesn't do evil on behalf of Google, but still does evil on behalf of other clients, then one could argue that Google is supporting the evil-doer financially, even if it isn't contributing to evil directly.
Let's examine the second case. If the organization actually does commit evil directly while on the clock for Google, and Google is aware of it, then one would have a difficult time arguing that Google is not at least guilty of contributory evil.
Of course, none of this says what good or evil actually are. I'll leave that as an excercise for the reader.
One way to reduce the challenges of using Javascript and AJAX across browsers is to use a library that abstracts away many of the differences from one browser to another. One such library is MochiKit, which provides AJAX / remote scripting support, functional language tools, portable DOM manipulation, and event signalling. It's even got some cool flashy visual effects.
Anyway, I'm not affiliated with the MochiKit at all; I'm just a very satisfied user and even use it on my own site.
You mentioned that you needed to process credit cards. Check out my employer, TrustCommerce, which offers a completely open source credit card processing API for connecting to our payment gateway. It compiles on tons of platforms (including Linux), and we have versions for many programming languages: C, C++, PHP, Python, Ruby, Perl, ColdFusion, Lisp, etc. All code is GPL.
See here.
Correction. It's a really terrible Gimp job.
http://torsion.org/witten/watch.jpg
So it's really great that some people within NASA are making a more formal push for open source software, and are even discussing releasing some of their own, but open source within NASA is hardly new!
Woah! This topic is eerily familiar. Check out this comic on adopting KDE users.
I work for TrustCommerce, a credit card processing gateway that just happens to compete with Verisign, the gateway mentioned in this article. What I want to know is why the Verisign rep said nothing about the velocity controls that should have been in place on the account in question. Velocity controls work like this: If a merchant goes over a certain number of transactions per day or per card, no more transactions are let through. The whole point of these controls are to prevent exactly this sort of basic fraud from occurring in the first place.
As far as the rigs themselves, we run a custom 3D viewer based on Maya's Realtime SDK. As another poster has said, a puppeteer puts their hands in these sort of weird metal controls, and the character on-screen moves their face and head in realtime.
Note that this is technically not motion capture. Motion capture involves reading the exterior movement of a body or face with either optical or magnetic sensors. And then the exterior of the CG model is moved accordingly. This is not very accurate at all for facial animation because you are just moving around the surface of the face. What we do is allow the puppeteer to drive the virtual muscles of the character's face with their hand movements, thereby getting a much better facial performance than is possible with motion capture.
However, motion capture is very useful for body movement. And in fact, we have married the facial performance described above with traditional motion capture for the body, so that you can have one puppeteer performing a 3D model's face while another performer controls the body by dancing around a stage. All in realtime. It's quite cool to see in action.
Keep in mind that we do much more than Muppet characters. We're sort of a service available to anyone who has facial animation they want done. We do video games, movies, TV, etc.
This stuff is really neat to see in person. Using HDPS, a trained puppeteer can create computer graphics facial animations in realtime that might take a team of animators several weeks. There are some images of our system in use available.
You can email me (dhelfman at la.creatureshop.henson.com) if you've got any questions.
Why do they require a non-disclosure agreement to do "open source" development?
You're completely misunderstanding the point of this language. "Representation-independent" semantics does NOT mean that you'll code in little happy egyptian symbols rather than text. It means that code can be presented to the programmer in whatever form best suits the task at hand, whether that be text, a call graph, a class hierarchy, etc.
Normally, I'd make a witty or snide remark here about such laughable logic, but I think that Meyer does more to discredit his own argument than anything I can say.
So yeah, the network will be used, in part, for warez. It'll probably be used for pornography too. That's just the price you'll have to pay if you want other "more important" forms of speech to be protected too.. like, say: political dissent.
- If the NetPD people connected to Napster with a bunch of fake Metallica MP3s, they could log everyone who downloaded the MP3s from them.
- Or, the NetPD people could instead search Napster for people with Metallica MP3s.
Both of these approaches to privacy violation work in the first place because of Napster's lack of caching. Let's say you, as a user, want to download a particular MP3 on Napster. Your machine must directly connect to the machine the MP3 is hosted on. There goes your privacy.Now, let's do the same thing on Freenet (an up-and-coming distributed network system, like Napster, but more intended for free speech and anonymity than just music downloads). On Freenet, your request for a particular file doesn't go directly to the machine the file is hosted on. Rather, you connect to any local Freenet node, and that node connects to its local nodes, and so on, until the file you're looking for is found.
Then, do you connect to the host with the file and download it directly? No, of course not. If you did, we'd be back in this whole Metallica mess. Instead, the file is returned through the series of nodes, one by one, like popping off the stack when returning from a recursive function. And the beauty of this design is that at each node along the way a copy of the requested file is cached. So not only do you get pretty decent anonymity, you also get free decentralized worldwide file caching. The files naturally and transparently gravitate towards the nodes where they're being requested the most often.
Anyway, check out the Freenet web site if you want to know more about the project. I just thought I'd point out that there are technical solutions to this sort of privacy problem, and they're not too far away at all. Go Freenet.
My HTML tags were correct when I posted this.. I even double-checked. Something's screwy with slashdot's tag filtering. Anyway, here's the link to the email message, if anyone's interested..
I'd just like to put out a warning to any enterprising college students who are reading about all these neat MIT and Caltech pranks and are thinking of trying something similar at their own schools. If your school is not prank-friendly and/or you get caught, you can find yourself in a whole boatload of trouble. What happened to me was that I tried a certain prank at my dumb school that was similar to an old one at MIT. Basically I sent a little email to several.. erm.. hundred.. freshman, letting them know that they had been reassigned to live in the University Library or the basement of Hedrick Hall due to overcrowding in the university. People believed it and called the Housing Office in droves. Some even showed up at the library to have a look at their new beds. Needless to say, the university was not amused. So they kicked me out of the dorms (with 4 weeks to go in the school year left and finals rapidly approaching!) and gave me 60 hours of community service. Sure, I probably shouldn't have sent the email in the first place, or I should have made it ultra-obvious that it was a joke (I thought I had done that..), but the university's reaction was way overkill. So the moral of this story: Don't pull a prank if you're at all worried about possible punishment. :)
You may find this site a great help in determining exactly which movies you can boycott if you're at all worried about the whole DeCSS mess. It lists the mainstream movies that are currently playing in theaters, along with their respective studio affiliations and whether they're a plaintiff in the DeCSS lawsuit.
Here at UCLA, they've just switched the CS operating systems class from hacking Minix to hacking Linux. Windows users who don't know Unix suddenly have to learn bash in two weeks and then begin hacking their own kernel syscalls when they're done with that. It makes for some interesting tech support for us at the UCLA LUG.
Who's up for a Quake port?
There were no less than two pro-opensource articles on this topic in the San Jose Mercury News not too long ago. By the Computing editor, no less.
Of course, you'll need to use the mouse to initially configure your key bindings.
You're right in that moderation is an attempt to rid this site of trolls, wherever they may be from. But my point is that, in the long run, it's ultimately a useless fight. CmdrTaco will keep coding in more moderation features and more special cases and more rules and more regulations. And it might even cause a few trolls to be moderated down. But at what cost? What about the rest of the discussion? What about the relevant posts that get mismoderated? Or the dissenting opinions that are slapped down because the vast majority doesn't agree with them? I'm just worried that in our zeal to rid this site of all trolls and flamers, we're ignoring the fact that we may be damaging any chance of rational discussion, which requires dissenting opinions in order to function!