In my very limited experience, ccds and even film just aren't as good as adjusting to the huge range of intensities that a human eyeball can handle.
I don't think you have to worry about the headlights blinding *you*, because the lcd can't dump out that much light. But it blinds the *camera*. Ever notice how a digital camcorder totally looses it for a bit when you pan from light to shade ?
I think it can be done correctly, and even better than glass. But you might need a fancier camera.
The real question is, does the energy saved by reducing drag make up for the drain on the batteries from running the lcds and camera ?
What if you looked over to pass and saw goatse.cx ? That could cause a real accident.
But in reality, it sounds like a closed-circuit TV thing, not really something to worry about. I'd think more about the relibility, and wether the camera and lcd system would work as well at night -- I think headlights might wash it out, and you probably want to be able to adjust the brightness on those LCDs.
I like the windmill idea though. What about solar cells ? You'd have to be a person who drove short trips for them to be able to counteract the extra weight, and work out to be a net gain.
I've been thinking about a similar project. I gave up on bluetooth because the range limitations and the annoying click-through license they had on that massive thousand page spec. (If they can't even publish the spec without a EULA, then I think it will eventually be doomed to the kind of patent and license ambiguity that WAP is.)
What I wanted to do was make low-bandwidth devices which would also be routers and hop messages from one to the other. The initial application I wanted was a two way pager like device, such as those from skytel, which would instant messaging or email. If the device couldn't find the recipient within range, but could find another device, that device might re-broadcast it. I was thinking of doing this in the 2.4 GHz or 900 MHz ranges. If you can design a protocol that can adapt well enough, using this with higher bandwidth and more powerful equipment might give you wireless internet. But I just wanted email and instant messaging, like that which you can do on the newer cell phones.
Setting up a protocol to do that with any kind of effectiveness is hard, but DARPA did some research on it around the same time (or a decade after) they were doing the internet routing protocols. Whatever you do, all the re-broadcasting and hopping will cut down on the bandwidth (because you have to shut up while someone re-broadcasts your message) and latency, but it should be enough for instant messaging of text messages.
Anyway, one interesting gadget I ran across that I thought might be of use as a prototyper was the cybiko, a children's toy which multi-hops messages. The company is supposedly releasing an SDK, and I was waiting for them to put it out to see how low-level it went, if I could modify the networking protocols or not.
Their web page is www.cybiko.com; unfortunately they went flash, so I don't even know what the most recent news from them is. The $129 price tag is more than my impluse buy level for that type of thing. I've posted on slashdot a few times asking if anyone was hacking these, but no one ever responded, which is probably a bad sign.
I like the multi-hop part of the cybiko, because it creates a powerful network (well, powerful in it's geographic reach, not bandwidth or latency) without a massive investment in an infrastructure which then has to be paid off over time with the subscriptions. I like the idea of buying devices with cash and just having them work, and work better as more people get them, without having to give your name, credit card, and a DNA sample to some company that then continually bills you for more than they told you it would cost, tacking on roaming charges and FCC connection fees and all the other small frauds. It should be a system which automatically gets better in areas where it is used, and there is no wasted investment in areas where it isn't. (With a cell phone you are paying for a lot of rural towers that are not making money.) I envisioned special "repeater" devices with no UI that someone could buy and put up to increase the network in areas where they wanted it.
Who wants to start a company ? I'm sure that if it takes off then Motorola will just start pumping these out and drive us out of business, but it could be fun.
Whether they take in some form of alcohol or hydrogen gas or methane, the cheapest way to get the stuff that you have to put in there is still from petroleum from the ground.
So it's not really an alternative fuel unless you use alcohol from agricultural waste or methane from sewage treatment or something. The hope is that you use a lot less petroleum, because it would be more efficient.
The license issues on the back end of a web site are no more vital than the license issues of the web server they use. And no one "falls victim" to this issue at all.
A few years ago, if you wrote and GPL'd a nice piece of server-side code, you might expect to benefit from changes others made from it because they would have to distribute it to make a lot of money off of it.
But one among many of the constant stream of new efficiencies is easier methods of allowing people all over the world to run anything on one computer without distributing it to many places. This is but one in a long chain of tricks to get more out of your computer and system it is part off.
So ?
It doesn't particularly favor closed code or open code. After all, all those people who couldn't figure out how to install linux can now use it via VNC and workspot.
You can't respond to every little shift the technological landscape with panic and more restrictive licenses. That path is doomed.
I still think this is a non-issue. Without knowing the details of what you are doing it's hard to tell, but it should fall into one of two catagories:
1) The generated code is a derived work. A good example would be a useful library of C pre-processor macros, or macros in any other language; running them through the C preprocessor would not produce a GPL-free work that you could modify and distribute without restriction. I could write a piece of code to turn a C++ template library into a massive set of non-templated code instantiated for some set of types, but I think the resulting work would be a derived work and also under the GPL. I think that running an automated process on a set of code should often be derived work -- you can't use sed to make a GPL free set of code by simply changing variable names, to give another example.
2) The generated code is object code. Examples of this would be those translators that translate code from one language into C, such as scheme or fortran. Here it doesn't seem very useful to insist that the output be under the GPL, and it clearly is not a derived work of the translator. Running f2c on GPL fortran code produces something that you cannot distribute except under the terms of the GPL, no question about it.
In general, I would say if the user had to write special input to make the new code, your tool was rather like a processor, and would fall into case two. You seem to describe a case in which someone would download code from you and change a few lines and rebuild, not adding new work of their own; and the building process happens to be a 2-stage one of generating the code and then compiling it, very analogous to pre-processor macro expansion followed by compilation.
If you want to describe your project in more detail here or via email, feel free. But check out this library: www.fftw.org. It is a GPL'd library, which has the code generator and the generated code in the package under the GPL. Perhaps by analogy to that package you can resolve your questions, or you might want to consult the authors of fftw on their thoughts.
I aggree that CGI and CORBA-like component architectures fall into this catagory. I disagree that this is a problem or even a particularly interesting nuance of the GPL.
Part of the reason is that CGI and CORBA are like web based applications in that they are also massively over hyped. If a software project decides to use CORBA, that's a sure sign that you will never find a use for that project.
If someone takes a GPL'd CORBA component and modifies it but doesn't distribute it, and makes it's use available via the internet or some other network, that's fine. They still can't distribute it outside of their company. They can distribute it's use a little more, but they are not going to make a lot of money that way. And they won't be able to sell the service to people who need to be networkologically isolated because of security reasons, such as defense labs, which are big consumers of that CORBA crap.
Consider also that the expansion of possibilities that comes from network availability works for Free Software as much as against it. Think of all the people who telneted into Compaq's linux server to try out alpha linux and liked it. Think of those VNC oriented people who were offering linux accounts, like workspot.com. If the industry developes to the point that you can try a dozen different applications or OS's with a click of the mouse, then Free Software's qualities will shine through, and it will be harder for other software to compete.
Why is it so important to have a GPL on machine generated code ? Machine generated code is functionally close to compiler output. Most machine generated output is not that useful -- it's the ability to modify the generator that is useful, and not in question, in this senario.
What you are trying to do is beyound what the GPL offers, and that is why you are having problems. You can keep secrete the code that you compile with gcc and distribute the binaries.
There really is no reason to concern yourself with restricting other's restrictions on object code. In your case, the useful and powerful part will always be program A. Your attempt to saddle program A with a more restrictive version of the GPL -- more restrictive in that it will apply to the result of processing -- is unlikely to gain program A widespread acceptance.
Consider that someone could compile a program with gcc and then use a hex editor to edit it. Who cares ?
What is this program B that is so useful yet machine generated ? Enlighten us, Viking Coder.
Because web based applications are not going be a big part of anything. Like the marketeers facination with "push" a few years ago, it just won't catch on.
The whole concept is based on the idea that with many users who only use the service a little bit, you can try for small usage based fees. That will go the same route as web-based email that you pay for, or portals. The barrier to entry is so low that anyone can talk a few mill out of VC and start a service that is "free for now, while we build a customer base." Soon they realize that charging people money instantly destroys all loyalty, and they'll be in the "we're exploring alternative revenue models" phase, and then they will either be bought by Yahoo or Yahoo will add the same service, and the hype will move on. That's if anybody wants to use their tool in the first place.
Web based application columnists come up with a variety of false arguments as to why they might succeed:
1) Customer's local computing power won't be up to the requirements of the software provided over the web.
Yeah, right. The network delay will be roughly equal to the longer execution time. The types of applications put forward as good candidates for this often include photo editing or otherwise require a lot of data transfer. And even the "network computers" are basically fairly powerful PCs.
2) The tasks will be things the user does so infrequently that purchasing the software is not justified, but a small fee might be.
Most of the cost of software, especially Free Software, is in learning how to use it, which you still have to do over the web. If you make it easy to learn to use, someone else will see the improvements and make the GPL'd software it was derived from easier to use.
3) I have a niche market piece of software -- only aqua farmers with seven webbed toes on their right foot will need it once every five years -- so no competition will appear. This market would be impossible for anyone else, but with web I reach every seven toed fish farmer in the world !
There's a reason why no one else will try to compete with you. Think about it. Also think carefully about why you can't reach every seven toed fish farmer with a download site for the software. What advantage does a web based app offer here ?
4) Somebody famous said "the network is the computer" at some marketing seminar I went to. I think his name was Ellison. Everybody was clapping ! He's rich, right ? And I read in Datamation that Microsoft is interested in web based apps !
Get a socially useful job like garbage collection or lettuce picking, there is no place for you in the new economy.
Summary:
Don't screw with the GPL, which is working well and changing the world. Just let these web based application providers compete the hell out of each other and gradually become another selection on yahoo, which will still make money from banner ads. Sure, some people will do nasty things with copies of the software you wrote, and some portion of the brainless masses that also run windows will fall victim to them. Don't worry about it, because those dimwits will give up the practical benefits of free software while entering a business that is completely untenable.
In addition to picking out a hardware infrastructure, you also want to pay attention to the network setup so that someone outside the facility cannot do something nasty or annoying.
Even if you don't allow an unknown MAC address to mount drives or have other dangerous access, they still might be able to sniff and evesdrop.
I don't see how there can be clashes. The rebelling registrars are registering names ending in.uk and.de style country codes. No one in the US is registering.uk domain names. They can totally go there own way, and there will never be a name conflict, because all of their names have.uk or.bg or whatever, and ours have.us,.net,.org,.com, etc.
In fact, you can make your own top level domain, as long as you can get people to use your name server to resolve the names in it. There are companies (I think AlterNic is one) who are doing this or trying. In previous discussions of this issue it has been suggested that a system be set up that would allow people to begin resolving their own top level domains; users could choose who to use to resolve names.
For example, there is no reason why I shouldn't be allowed to select a machine at the Free Software Foundation to resolve all names ending in.fsf, and my ISP's name server for all others. I should also be able to put in special rules to "correct" mistakes by registrars in disputes, like assigning a particular resolver to resolve etoy.com and etoys.com.
All of this is mostly available now -- you can edit/etc/resolve.conf and/etc/hosts -- but it should be made so easy that lots of people will do it. I would like to see a future where people voting will decide who contested domain names belong to; of course people can't vote on each individual instance which is contested, but they should have that ability, and most of them will simply choose to have their name requests resolved by an organization which mostly reflects their opinions.
The only point to all my babbling is that I want to convince people like you that one doesn't need to leash oneself to some big organization to resolve names. I see the registrars as kind of floating on borrowed time -- they are used out of conveinence and the management probably has no idea of how easily they can be tossed aside if they start screwing up.
Also look for other posts and threads in that story. Some people posted links to companies that were actually doing it, resolving alternative TLDs or planning to.
I think it is largely a matter of the big guys like ICANN and NetworkSolutions just haven't screwed up badly enough to drive us to it.
I think that the project should be started anyway, though; those of us who are hardcore freedom lovers in the Stallmanesque style can use it, and it's existence would hopefully moderate the actions of ICANN and its ilk.
I shared Mediaone with my roommates when I lived in Cambridge, MA. It sucked. I ran a server and one of my roommates even mapped his domain name to it; that much worked fine. I used to ssh in from work and from home to work all the time, except when it wasn't working, which was a huge portion of the time. It eventually got into a permanent condition of only working for about 30 seconds, and then you had to do a network restart to get it working again. Maybe it was because they were scanning my ports and fucking with me because I was running a server -- I don't care, I will never purchase anything from them again.
By the way, if someone else scans ports on their network, they get all excited and call the ISP about a hacking attempt. I know because I asked a friend to scan my box and attempt to break into it. It seems a little hypocritical for them to scan my box but complain about other people doing the same thing.
Anyway, I am moving to Austin, Texas. What are people's experiences with broadband service there ?
Yeah, at first I was going to just stick with the first paragraph, but I got carried away. I can't believe that Bruce didn't read the part about being sued by your wife and children for not having enough money; how can you respond seriously to something like that ?
You have to understand that the boss in this case has an obligation to the company's owners and shareholders to maximize profits. The company management can be sued if they don't -- it's called fiduciary responsibility. This has been explained repeatedly on slashdot in the context of why Amazon had to sue to protect the one-click patent, why the MPAA had to after that Norwegian kid, and other issues. Try to read up on these things before posting.
I think this person should be a little more understanding of the boss's position, and maybe even a little proactive. See if you can borrow some of this software from a friend who works somewhere else, and save the cost of even buying one copy. Another good one is to take the original copy back and get your money back, after making copies and installing it one every machine in the company. And afterwards, pay yourself a small reward -- go to the secretary's computer and help yourself to a RAM upgrade. You can sell it on ebay if you don't have any extra slots. I think your wife and children might be able to sue you if you don't make as much money as possible. People usually don't notice a missing UPS backup until the power goes out -- but they are very heavy; you can take this fiduciary responsibility too far and get hernia, so be careful.
I was waiting for someone to say this. All you really need is the ISBN entries of the books you have, right ? So why have every book with an ISBN in there ?
For a textbook situation, you likely to get a high repetition. So what you want to do is carefully set up the user interface so the first person gets to type in the whole description, but subsequent people can type in some part of the record (author, title, ISBN, call number) and it will complete the rest of it for them. You should have some way of checking and correcting the entries -- perhaps random checks of books you can physically access.
What type of notice (if any) would you need on the submission form, if any, so that you could hold copyright and then GPL the database you collect ?
If you write a nice tool, you have the potential to produce something that other small independent bookstores might use. It is always annoying to me to go to a small used bookstore and not be able to ask them to check their inventory by computer. If all the bookstores could easily inventory their stock and link them to one search engine that would tell you where to go, it would be much easier to find cheap copies of rare books.
I'm going to drift off topic a bit here, but I'd like to suggest that if you produce a tool other bookstores can use, you design the system to encourage users to share their database back with a central repository in a CVS-like way. Then when there are conflicts indicating errors ( two books with the same ISBN, for example) these can be resolved by human intervention. Also, you build up a database free of licensing restraint which can compete with restricted commercial products. If you make it easy enough to use that little county libraries and small town bookstores across the world are constantly entering and correcting material, collaboratively producing a high quality product not controlled by a corporation, that would be awesome.
To go even more offtopic, I have thought before of the possibility of huge distributed collabortive efforts to produce unfettered databases; the projects I thought made the most sense were dictionaries (there should be a GPL'd dictionary complete with work histories, pronounciation, etc, and everything else you expect in a good dictionary) and maps (I thought you might be able to produce some decent maps if you provided a tool that would allow someone to update a copy of it on a palm pilot with one of those GPS modules on it).
Clueless users figured out the first domain name resolving sceme. I remember having to tell my TA what http:// was all about, back in the days of Mosaic. If your users are clueless, and you don't have an alternate URL, then you have to give them a clue; that's how the internet grew so big in the first place.
And as for two people with the same top level domain, the point is that each individual can choose how to handle that (all though the majority will go along with the default of their setup). We don't want to replace domain name disputes with tld disputes. The idea is to simply put the power for each person to decide for themselves out there; I expect ICANN and friends will get their act together under threat of competition.
One could set up a proxy similar to the anomozier which would allow you to enter a URL such as http://ristroph-gateway.mediaone.net/resolve.pl?na me=ftp.xyz.fsf which would take them to the right place; I would set up such a thing for those in my organization who needed it, although I would have to shut off access to others if it got overloaded. But if it gets big, yahoo or some other portal wannabe will set these up for free.
I don't see a clear reason why my machine has to use a particular method of resolving a text address to an IP address. Why can't we add our own top level domains by making our machines use a different DNS server to resolve, say, *.fsf or *.slashdot or even *.natalie ?
If someone with a machine that can be a DNS server just appoints themselves head resolver honcho, then everyone who chooses to use the service can. Of course, perhaps Bruce and Eric might both start resolving *.communityloudmouth, but people will choose whose service to use individually, and I think that's the way it should be.
What would be needed is to set up the whole plan carefully, so that it was easy for users to assign different DNS servers to different blocks of domain names. This continuous annoyance would be fixed as people simply voted for the DNS servers they trusted. I for one would be delighted to point my DNS requests at a server that pledged to resolve etoy and etoys correctly, and ignored whatever judicial injuctions that the "official" top level DNS's choose to respect.
What has to be set up carefully is the tool which allows users to do this. If we make it easy for people to do what they want instead of what an incompetent committee rules, then the right things will happen. If you put useful information on machines with.fsf names, and make some simple java plugin that will cause the browser to resolve those correctly, then people will use it and these recurring domain name stories will become pointless noise.
This ask slashdot comes at a good time for me because I am in the process of selecting a tool now.
The one that was competing with doxygen was Doc++. Has anyone had any good or bad experience with it ? What about CERN's Root tool ?
I'm leaning toward doxygen just because Mozilla is using it. While I care much more about other aspects of documentation besides class diagrams, check out this huge graph generated by doxygen on mozilla.
On one project I worked on we went the other way -- from documentation to code -- using a big FrameMaker document and tool that would convert all the tables into C struct definitions, and generate an interface library. While I think closely linking the code and the documentation is critical (preferably generating the documents in the build process, so they are never out of date) the code to document strategy seems much more flexible.
Well, it is random in that the digits are distributed evenly. But it is not random in that if you know the preceeding digits, you can easily predict the next one. There are different definitions of "random" involved here.
If you took the first N digits of PI and used them to encrypt your harddisk, say by simply xor'ing them, it would be fairly easy to break the encryption and read the disk. So you need a string of digits which somehow has some more random property than the digits of PI -- I like to think of it in terms of a minimum description length; you can write a very short program to generate the digits of PI, but you can't for a truely random string of digits.
I think that for really strong security, government-proof stuff, I'd have more confidence in a hardware generator of real random numbers. But this question seems to be addressing the speed of the generation; I would suspect that as the bandwidth generated goes up, those devices tend to produce less random output.
Rating a random number generator requires careful analysis to check that it is decent, and I'm don't think that you can prove that a string of bits is random. It is basically the same problem as proving an encryption system unbreakable.
I believe that would be "Linux is only free if your time has no value." Do a search on the whole phrase and you will see it attributed to none other than jwz in several places, I could not quickly locate the original interview.
jwz certainly has some choice quotes to his name. Check out some of them in the "Unix Hater's Handbook". But he hasn't even updated the links section of www.jwz.org in quite a while, not to mention Gruntle. I guess now that he owns a night club he's got nothing to complain about anymore. Must be nice.
Reality check: you can just put up the cameras and not even turn them on, their main purpose is just to scare off people. You will get your money's worth that way and have to write no software, although it would be fun make the system.
Another thing, even though this is probably obvious to you, don't set it up so that the video record is archived on a machine that will be stolen. Also, consider the reliability of the internet connection -- can someone disable it by tripping over a wire or running a program to bog it down ? Not that most theives are that smart; they'll be scared of by unworking cameras.
Secondly, the company I work for has done some video surveillence and monitoring projects, and one thing to remember is that the ability to search and index the record is very important. Often it is not clear exactly when the object disappeared (or whatever the event was), and so being able to narrow your search down with cues from doors opening, motion sensors, or other information is very important.
One job we once did was inspired by an institution that had a vehicle stolen, but hiring one of those video-surveilence consulting places which specialized in this sort of thing to fast-forward through four days (it was a long weekend) of tape on several parking lot exits actually cost more than the vehicle was worth, so they didn't bother. If the pictures had been processed to detect motion as they were stored, then it would have been reasonable, if you had software that would let you jump to motion scenes, or do searches such as "show me all exits (not entries) of vehicles in which there were no other vehicle motion in preceeding ten minutes, and happened at night".
If I wanted to steal a monitored computer, I would first turn it off and put a sticky note on it saying it always crashed after it was on for a while (thus people don't mess with it for a couple of days). That way you can't search the video log based on the moment it disappeared from the network. After a couple of days I'd just take it; hopefully I could be alone with it long enough to pop the case open and just grap the HD, RAM, and whatever, and then leave the case there to be discovered empty days/weeks later. Then you have no way of looking at the video record and jumping ahead or backward until you found the moment the machine disappeared.
But the ultimate VSAM (Video Surveilence and Monitoring) system would allow you to search based on the presence of a single person in the room in the area of question for more than X minutes; then you'd nail me.
In my very limited experience, ccds and even film just aren't as good as adjusting to the huge range of intensities that a human eyeball can handle.
I don't think you have to worry about the headlights blinding *you*, because the lcd can't dump out that much light. But it blinds the *camera*. Ever notice how a digital camcorder totally looses it for a bit when you pan from light to shade ?
I think it can be done correctly, and even better than glass. But you might need a fancier camera.
The real question is, does the energy saved by reducing drag make up for the drain on the batteries from running the lcds and camera ?
What if you looked over to pass and saw goatse.cx ? That could cause a real accident.
But in reality, it sounds like a closed-circuit TV thing, not really something to worry about. I'd think more about the relibility, and wether the camera and lcd system would work as well at night -- I think headlights might wash it out, and you probably want to be able to adjust the brightness on those LCDs.
I like the windmill idea though. What about solar cells ? You'd have to be a person who drove short trips for them to be able to counteract the extra weight, and work out to be a net gain.
I've been thinking about a similar project. I gave up on bluetooth because the range limitations and the annoying click-through license they had on that massive thousand page spec. (If they can't even publish the spec without a EULA, then I think it will eventually be doomed to the kind of patent and license ambiguity that WAP is.)
What I wanted to do was make low-bandwidth devices which would also be routers and hop messages from one to the other. The initial application I wanted was a two way pager like device, such as those from skytel, which would instant messaging or email. If the device couldn't find the recipient within range, but could find another device, that device might re-broadcast it. I was thinking of doing this in the 2.4 GHz or 900 MHz ranges. If you can design a protocol that can adapt well enough, using this with higher bandwidth and more powerful equipment might give you wireless internet. But I just wanted email and instant messaging, like that which you can do on the newer cell phones.
Setting up a protocol to do that with any kind of effectiveness is hard, but DARPA did some research on it around the same time (or a decade after) they were doing the internet routing protocols. Whatever you do, all the re-broadcasting and hopping will cut down on the bandwidth (because you have to shut up while someone re-broadcasts your message) and latency, but it should be enough for instant messaging of text messages.
Anyway, one interesting gadget I ran across that I thought might be of use as a prototyper was the cybiko, a children's toy which multi-hops messages. The company is supposedly releasing an SDK, and I was waiting for them to put it out to see how low-level it went, if I could modify the networking protocols or not.
Their web page is www.cybiko.com; unfortunately they went flash, so I don't even know what the most recent news from them is. The $129 price tag is more than my impluse buy level for that type of thing. I've posted on slashdot a few times asking if anyone was hacking these, but no one ever responded, which is probably a bad sign.
I like the multi-hop part of the cybiko, because it creates a powerful network (well, powerful in it's geographic reach, not bandwidth or latency) without a massive investment in an infrastructure which then has to be paid off over time with the subscriptions. I like the idea of buying devices with cash and just having them work, and work better as more people get them, without having to give your name, credit card, and a DNA sample to some company that then continually bills you for more than they told you it would cost, tacking on roaming charges and FCC connection fees and all the other small frauds. It should be a system which automatically gets better in areas where it is used, and there is no wasted investment in areas where it isn't. (With a cell phone you are paying for a lot of rural towers that are not making money.) I envisioned special "repeater" devices with no UI that someone could buy and put up to increase the network in areas where they wanted it.
Who wants to start a company ? I'm sure that if it takes off then Motorola will just start pumping these out and drive us out of business, but it could be fun.
I am becoming annoyed at this persistent urban legend of oil companies having some super-efficient or free energy source bottled up somewhere.
Why don't you back your statements up with some links to ibm's patent server, microbarn . . . or stop posting stuff you read on the bathroom wall.
Of course, fuel cells still need . . . . fuel!
Whether they take in some form of alcohol or hydrogen gas or methane, the cheapest way to get the stuff that you have to put in there is still from petroleum from the ground.
So it's not really an alternative fuel unless you use alcohol from agricultural waste or methane from sewage treatment or something. The hope is that you use a lot less petroleum, because it would be more efficient.
The license issues on the back end of a web site are no more vital than the license issues of the web server they use. And no one "falls victim" to this issue at all.
A few years ago, if you wrote and GPL'd a nice piece of server-side code, you might expect to benefit from changes others made from it because they would have to distribute it to make a lot of money off of it.
But one among many of the constant stream of new efficiencies is easier methods of allowing people all over the world to run anything on one computer without distributing it to many places. This is but one in a long chain of tricks to get more out of your computer and system it is part off.
So ?
It doesn't particularly favor closed code or open code. After all, all those people who couldn't figure out how to install linux can now use it via VNC and workspot.
You can't respond to every little shift the technological landscape with panic and more restrictive licenses. That path is doomed.
I still think this is a non-issue. Without knowing the details of what you are doing it's hard to tell, but it should fall into one of two catagories:
1) The generated code is a derived work. A good example would be a useful library of C pre-processor macros, or macros in any other language; running them through the C preprocessor would not produce a GPL-free work that you could modify and distribute without restriction. I could write a piece of code to turn a C++ template library into a massive set of non-templated code instantiated for some set of types, but I think the resulting work would be a derived work and also under the GPL. I think that running an automated process on a set of code should often be derived work -- you can't use sed to make a GPL free set of code by simply changing variable names, to give another example.
2) The generated code is object code. Examples of this would be those translators that translate code from one language into C, such as scheme or fortran. Here it doesn't seem very useful to insist that the output be under the GPL, and it clearly is not a derived work of the translator. Running f2c on GPL fortran code produces something that you cannot distribute except under the terms of the GPL, no question about it.
In general, I would say if the user had to write special input to make the new code, your tool was rather like a processor, and would fall into case two. You seem to describe a case in which someone would download code from you and change a few lines and rebuild, not adding new work of their own; and the building process happens to be a 2-stage one of generating the code and then compiling it, very analogous to pre-processor macro expansion followed by compilation.
If you want to describe your project in more detail here or via email, feel free. But check out this library: www.fftw.org. It is a GPL'd library, which has the code generator and the generated code in the package under the GPL. Perhaps by analogy to that package you can resolve your questions, or you might want to consult the authors of fftw on their thoughts.
I aggree that CGI and CORBA-like component architectures fall into this catagory. I disagree that this is a problem or even a particularly interesting nuance of the GPL.
Part of the reason is that CGI and CORBA are like web based applications in that they are also massively over hyped. If a software project decides to use CORBA, that's a sure sign that you will never find a use for that project.
If someone takes a GPL'd CORBA component and modifies it but doesn't distribute it, and makes it's use available via the internet or some other network, that's fine. They still can't distribute it outside of their company. They can distribute it's use a little more, but they are not going to make a lot of money that way. And they won't be able to sell the service to people who need to be networkologically isolated because of security reasons, such as defense labs, which are big consumers of that CORBA crap.
Consider also that the expansion of possibilities that comes from network availability works for Free Software as much as against it. Think of all the people who telneted into Compaq's linux server to try out alpha linux and liked it. Think of those VNC oriented people who were offering linux accounts, like workspot.com. If the industry developes to the point that you can try a dozen different applications or OS's with a click of the mouse, then Free Software's qualities will shine through, and it will be harder for other software to compete.
Why is it so important to have a GPL on machine generated code ? Machine generated code is functionally close to compiler output. Most machine generated output is not that useful -- it's the ability to modify the generator that is useful, and not in question, in this senario.
What you are trying to do is beyound what the GPL offers, and that is why you are having problems. You can keep secrete the code that you compile with gcc and distribute the binaries.
There really is no reason to concern yourself with restricting other's restrictions on object code. In your case, the useful and powerful part will always be program A. Your attempt to saddle program A with a more restrictive version of the GPL -- more restrictive in that it will apply to the result of processing -- is unlikely to gain program A widespread acceptance.
Consider that someone could compile a program with gcc and then use a hex editor to edit it. Who cares ?
What is this program B that is so useful yet machine generated ? Enlighten us, Viking Coder.
Because web based applications are not going be a big part of anything. Like the marketeers facination with "push" a few years ago, it just won't catch on.
The whole concept is based on the idea that with many users who only use the service a little bit, you can try for small usage based fees. That will go the same route as web-based email that you pay for, or portals. The barrier to entry is so low that anyone can talk a few mill out of VC and start a service that is "free for now, while we build a customer base." Soon they realize that charging people money instantly destroys all loyalty, and they'll be in the "we're exploring alternative revenue models" phase, and then they will either be bought by Yahoo or Yahoo will add the same service, and the hype will move on. That's if anybody wants to use their tool in the first place.
Web based application columnists come up with a variety of false arguments as to why they might succeed:
1) Customer's local computing power won't be up to the requirements of the software provided over the web.
Yeah, right. The network delay will be roughly equal to the longer execution time. The types of applications put forward as good candidates for this often include photo editing or otherwise require a lot of data transfer. And even the "network computers" are basically fairly powerful PCs.
2) The tasks will be things the user does so infrequently that purchasing the software is not justified, but a small fee might be.
Most of the cost of software, especially Free Software, is in learning how to use it, which you still have to do over the web. If you make it easy to learn to use, someone else will see the improvements and make the GPL'd software it was derived from easier to use.
3) I have a niche market piece of software -- only aqua farmers with seven webbed toes on their right foot will need it once every five years -- so no competition will appear. This market would be impossible for anyone else, but with web I reach every seven toed fish farmer in the world !
There's a reason why no one else will try to compete with you. Think about it. Also think carefully about why you can't reach every seven toed fish farmer with a download site for the software. What advantage does a web based app offer here ?
4) Somebody famous said "the network is the computer" at some marketing seminar I went to. I think his name was Ellison. Everybody was clapping ! He's rich, right ? And I read in Datamation that Microsoft is interested in web based apps !
Get a socially useful job like garbage collection or lettuce picking, there is no place for you in the new economy.
Summary:
Don't screw with the GPL, which is working well and changing the world. Just let these web based application providers compete the hell out of each other and gradually become another selection on yahoo, which will still make money from banner ads. Sure, some people will do nasty things with copies of the software you wrote, and some portion of the brainless masses that also run windows will fall victim to them. Don't worry about it, because those dimwits will give up the practical benefits of free software while entering a business that is completely untenable.
In addition to picking out a hardware infrastructure, you also want to pay attention to the network setup so that someone outside the facility cannot do something nasty or annoying.
Even if you don't allow an unknown MAC address to mount drives or have other dangerous access, they still might be able to sniff and evesdrop.
I don't see how there can be clashes. The rebelling registrars are registering names ending in .uk and .de style country codes. No one in the US is registering .uk domain names. They can totally go there own way, and there will never be a name conflict, because all of their names have .uk or .bg or whatever, and ours have .us, .net, .org, .com, etc.
.fsf, and my ISP's name server for all others. I should also be able to put in special rules to "correct" mistakes by registrars in disputes, like assigning a particular resolver to resolve etoy.com and etoys.com.
/etc/resolve.conf and /etc/hosts -- but it should be made so easy that lots of people will do it. I would like to see a future where people voting will decide who contested domain names belong to; of course people can't vote on each individual instance which is contested, but they should have that ability, and most of them will simply choose to have their name requests resolved by an organization which mostly reflects their opinions.
In fact, you can make your own top level domain, as long as you can get people to use your name server to resolve the names in it. There are companies (I think AlterNic is one) who are doing this or trying. In previous discussions of this issue it has been suggested that a system be set up that would allow people to begin resolving their own top level domains; users could choose who to use to resolve names.
For example, there is no reason why I shouldn't be allowed to select a machine at the Free Software Foundation to resolve all names ending in
All of this is mostly available now -- you can edit
The only point to all my babbling is that I want to convince people like you that one doesn't need to leash oneself to some big organization to resolve names. I see the registrars as kind of floating on borrowed time -- they are used out of conveinence and the management probably has no idea of how easily they can be tossed aside if they start screwing up.
And you don't even have a slashdot account ! Wow.
Ways of doing this have been discussed in slashdot threads on similar stories, some of which I posted to. For example:
3 5233&cid=40
http://slashdot.org/comments.pl?sid=00/06/26/12
Also look for other posts and threads in that story. Some people posted links to companies that were actually doing it, resolving alternative TLDs or planning to.
I think it is largely a matter of the big guys like ICANN and NetworkSolutions just haven't screwed up badly enough to drive us to it.
I think that the project should be started anyway, though; those of us who are hardcore freedom lovers in the Stallmanesque style can use it, and it's existence would hopefully moderate the actions of ICANN and its ilk.
I shared Mediaone with my roommates when I lived in Cambridge, MA. It sucked. I ran a server and one of my roommates even mapped his domain name to it; that much worked fine. I used to ssh in from work and from home to work all the time, except when it wasn't working, which was a huge portion of the time. It eventually got into a permanent condition of only working for about 30 seconds, and then you had to do a network restart to get it working again. Maybe it was because they were scanning my ports and fucking with me because I was running a server -- I don't care, I will never purchase anything from them again.
By the way, if someone else scans ports on their network, they get all excited and call the ISP about a hacking attempt. I know because I asked a friend to scan my box and attempt to break into it. It seems a little hypocritical for them to scan my box but complain about other people doing the same thing.
Anyway, I am moving to Austin, Texas. What are people's experiences with broadband service there ?
Yeah, at first I was going to just stick with the first paragraph, but I got carried away. I can't believe that Bruce didn't read the part about being sued by your wife and children for not having enough money; how can you respond seriously to something like that ?
You have to understand that the boss in this case has an obligation to the company's owners and shareholders to maximize profits. The company management can be sued if they don't -- it's called fiduciary responsibility. This has been explained repeatedly on slashdot in the context of why Amazon had to sue to protect the one-click patent, why the MPAA had to after that Norwegian kid, and other issues. Try to read up on these things before posting.
I think this person should be a little more understanding of the boss's position, and maybe even a little proactive. See if you can borrow some of this software from a friend who works somewhere else, and save the cost of even buying one copy. Another good one is to take the original copy back and get your money back, after making copies and installing it one every machine in the company. And afterwards, pay yourself a small reward -- go to the secretary's computer and help yourself to a RAM upgrade. You can sell it on ebay if you don't have any extra slots. I think your wife and children might be able to sue you if you don't make as much money as possible. People usually don't notice a missing UPS backup until the power goes out -- but they are very heavy; you can take this fiduciary responsibility too far and get hernia, so be careful.
I was waiting for someone to say this. All you really need is the ISBN entries of the books you have, right ? So why have every book with an ISBN in there ?
For a textbook situation, you likely to get a high repetition. So what you want to do is carefully set up the user interface so the first person gets to type in the whole description, but subsequent people can type in some part of the record (author, title, ISBN, call number) and it will complete the rest of it for them. You should have some way of checking and correcting the entries -- perhaps random checks of books you can physically access.
What type of notice (if any) would you need on the submission form, if any, so that you could hold copyright and then GPL the database you collect ?
If you write a nice tool, you have the potential to produce something that other small independent bookstores might use. It is always annoying to me to go to a small used bookstore and not be able to ask them to check their inventory by computer. If all the bookstores could easily inventory their stock and link them to one search engine that would tell you where to go, it would be much easier to find cheap copies of rare books.
I'm going to drift off topic a bit here, but I'd like to suggest that if you produce a tool other bookstores can use, you design the system to encourage users to share their database back with a central repository in a CVS-like way. Then when there are conflicts indicating errors ( two books with the same ISBN, for example) these can be resolved by human intervention. Also, you build up a database free of licensing restraint which can compete with restricted commercial products. If you make it easy enough to use that little county libraries and small town bookstores across the world are constantly entering and correcting material, collaboratively producing a high quality product not controlled by a corporation, that would be awesome.
To go even more offtopic, I have thought before of the possibility of huge distributed collabortive efforts to produce unfettered databases; the projects I thought made the most sense were dictionaries (there should be a GPL'd dictionary complete with work histories, pronounciation, etc, and everything else you expect in a good dictionary) and maps (I thought you might be able to produce some decent maps if you provided a tool that would allow someone to update a copy of it on a palm pilot with one of those GPS modules on it).
Clueless users figured out the first domain name resolving sceme. I remember having to tell my TA what http:// was all about, back in the days of Mosaic. If your users are clueless, and you don't have an alternate URL, then you have to give them a clue; that's how the internet grew so big in the first place.
a me=ftp.xyz.fsf which would take them to the right place; I would set up such a thing for those in my organization who needed it, although I would have to shut off access to others if it got overloaded. But if it gets big, yahoo or some other portal wannabe will set these up for free.
And as for two people with the same top level domain, the point is that each individual can choose how to handle that (all though the majority will go along with the default of their setup). We don't want to replace domain name disputes with tld disputes. The idea is to simply put the power for each person to decide for themselves out there; I expect ICANN and friends will get their act together under threat of competition.
One could set up a proxy similar to the anomozier which would allow you to enter a URL such as http://ristroph-gateway.mediaone.net/resolve.pl?n
I don't see a clear reason why my machine has to use a particular method of resolving a text address to an IP address. Why can't we add our own top level domains by making our machines use a different DNS server to resolve, say, *.fsf or *.slashdot or even *.natalie ?
.fsf names, and make some simple java plugin that will cause the browser to resolve those correctly, then people will use it and these recurring domain name stories will become pointless noise.
If someone with a machine that can be a DNS server just appoints themselves head resolver honcho, then everyone who chooses to use the service can. Of course, perhaps Bruce and Eric might both start resolving *.communityloudmouth, but people will choose whose service to use individually, and I think that's the way it should be.
What would be needed is to set up the whole plan carefully, so that it was easy for users to assign different DNS servers to different blocks of domain names. This continuous annoyance would be fixed as people simply voted for the DNS servers they trusted. I for one would be delighted to point my DNS requests at a server that pledged to resolve etoy and etoys correctly, and ignored whatever judicial injuctions that the "official" top level DNS's choose to respect.
What has to be set up carefully is the tool which allows users to do this. If we make it easy for people to do what they want instead of what an incompetent committee rules, then the right things will happen. If you put useful information on machines with
The one that was competing with doxygen was Doc++. Has anyone had any good or bad experience with it ? What about CERN's Root tool ?
I'm leaning toward doxygen just because Mozilla is using it. While I care much more about other aspects of documentation besides class diagrams, check out this huge graph generated by doxygen on mozilla.
On one project I worked on we went the other way -- from documentation to code -- using a big FrameMaker document and tool that would convert all the tables into C struct definitions, and generate an interface library. While I think closely linking the code and the documentation is critical (preferably generating the documents in the build process, so they are never out of date) the code to document strategy seems much more flexible.
Well, it is random in that the digits are distributed evenly. But it is not random in that if you know the preceeding digits, you can easily predict the next one. There are different definitions of "random" involved here.
If you took the first N digits of PI and used them to encrypt your harddisk, say by simply xor'ing them, it would be fairly easy to break the encryption and read the disk. So you need a string of digits which somehow has some more random property than the digits of PI -- I like to think of it in terms of a minimum description length; you can write a very short program to generate the digits of PI, but you can't for a truely random string of digits.
Rating a random number generator requires careful analysis to check that it is decent, and I'm don't think that you can prove that a string of bits is random. It is basically the same problem as proving an encryption system unbreakable.
Check out this guy's page: http://webnz.com/robert/index.html and in particular this section: http://webnz.com/robert/true_rng.html I ran accross Robert Davies' site a long time ago, it may have actually been something posted to slashdot in the early days.
I believe that would be "Linux is only free if your time has no value." Do a search on the whole phrase and you will see it attributed to none other than jwz in several places, I could not quickly locate the original interview.
jwz certainly has some choice quotes to his name. Check out some of them in the "Unix Hater's Handbook". But he hasn't even updated the links section of www.jwz.org in quite a while, not to mention Gruntle. I guess now that he owns a night club he's got nothing to complain about anymore. Must be nice.
Reality check: you can just put up the cameras and not even turn them on, their main purpose is just to scare off people. You will get your money's worth that way and have to write no software, although it would be fun make the system.
Another thing, even though this is probably obvious to you, don't set it up so that the video record is archived on a machine that will be stolen. Also, consider the reliability of the internet connection -- can someone disable it by tripping over a wire or running a program to bog it down ? Not that most theives are that smart; they'll be scared of by unworking cameras.
Secondly, the company I work for has done some video surveillence and monitoring projects, and one thing to remember is that the ability to search and index the record is very important. Often it is not clear exactly when the object disappeared (or whatever the event was), and so being able to narrow your search down with cues from doors opening, motion sensors, or other information is very important.
One job we once did was inspired by an institution that had a vehicle stolen, but hiring one of those video-surveilence consulting places which specialized in this sort of thing to fast-forward through four days (it was a long weekend) of tape on several parking lot exits actually cost more than the vehicle was worth, so they didn't bother. If the pictures had been processed to detect motion as they were stored, then it would have been reasonable, if you had software that would let you jump to motion scenes, or do searches such as "show me all exits (not entries) of vehicles in which there were no other vehicle motion in preceeding ten minutes, and happened at night".
If I wanted to steal a monitored computer, I would first turn it off and put a sticky note on it saying it always crashed after it was on for a while (thus people don't mess with it for a couple of days). That way you can't search the video log based on the moment it disappeared from the network. After a couple of days I'd just take it; hopefully I could be alone with it long enough to pop the case open and just grap the HD, RAM, and whatever, and then leave the case there to be discovered empty days/weeks later. Then you have no way of looking at the video record and jumping ahead or backward until you found the moment the machine disappeared.
But the ultimate VSAM (Video Surveilence and Monitoring) system would allow you to search based on the presence of a single person in the room in the area of question for more than X minutes; then you'd nail me.