Following the standard FOSS policy "release often", release some parts of the system that are ready - some demon, some apps, and keep adding. Linux wasn't built in a day, and the first versions required Minix to compile it, it was a long process of creating it. Why not release OpenSolaris piece-by-piece, so people interested in it could start working on the non-encumbered parts?
Imagine this: I'm running commercial Solaris. I have some app provided by the system, that does the work in a realy kludgy way, with some of my custom wrapper scripts to let it work at all. I know I can fix it and make it work as it should with a few simple changes to the source of the app. I don't need whole OS. I need sources of this one single component. And they lay there on the harddrives of SUN employees, ready to release, waiting till some completely different parts are finished, and in the meantime I lose $1000 a day because the kludge doesn't do its job well enough. So why won't they release it?
A famous maths professor working at a university, one day calls a plumber because his tap is leaking. The plumber replaces the seal, presents the bill.
"Whoa! That's a week of my salary! For replacing a simple seal!" "Want to earn as much as I do? Become a plumber. It really IS that easy."
So the professor decided to give it a try. And it really worked out great. He left the university, he was repairing pipes, replacing seals, several works a week, salary about 20 times what he would get from the university. It lasted several years.
Until the Union decided all plumbers need to have at least high school finished. So, there were some classes to refresh the memory and then a test. And the math class, teacher calls our professor to the blackboard and asks to write the formula for surface of a circle.
And the professor realises it was so long ago since he used it last, sometime during studies yet, that he forgot! But he thinks, "I'm a math professor. I can derive that formula". So he starts deriving it. Draws a circle, splits into infinite number of infinitisemal pieces, adds Jacobian for radial projection, integrates and satisfied, writes: S=-pi*r^2.
But hey, that minus must be wrong, surface can't be negative. So he starts checking his calculations, looks at them, examines, can't find the mistake. Time passes, the teacher looks, more and more annoyed, whispers rise from the classroom, and after a while they become recognisable: "Reverse the limits of the integral! Reverse the limits of the integral!"
And IBM took real care to put every single most vaguely relevant file on the drive. 80 gigabytes of source code - ascii text! This is more than 10000 times the content of The Bible (which is about 6MB). This is completely useless for manual search, and electronic search WILL yield millions of false positives, which then must be culled by hand. SCO made a huge mistake by demanding "all the data". IBM just called the bluff and provided them with more than they bargained for. It's useless for SCO and IBM appeared to be very friendly to provide it in form of a searchable database, and not as printouts.
Actually, the problem is even worse with -this- subject. You open a webpage with some browser hacks. You change something in the browser. Due to your modifications, the browser doesn't display the page anymore so you don't know how to undo your hack, ending up possibly wiping profile, reinstalling the browser and if you reached too deep, maybe even reinstalling windows(if any).
Dead-tree version of docs may be harder to grep, but it won't crash on you, and there's little chance the host hosting it will be down. (think about logic of keeping a backup recovery manual on the drive you back-up and of course all back-up tapes...)
Except Wall Street Journal past articles are usually more valuable. There's two kinds of data, one that goes outdated really fast, becoming useless really fast, and the kind that adds to the "knowledge base", making the total sum of knowledge more valuable. Usually "flash news" and "forecasts" where shallow memes and unconfirmed info is passed just to keep you "standing by" for more, later, is pretty worthless, except of the sentimental value. On the other hand, in-depth articles lose very little over time. The piece about landing on the Moon may be cool to watch, but if you want to learn about the Moon and the mission, you look for an aftermatch article.
The problem is they want a single subscription option, which is wrong. I'm not going to pay $50 for a single article I wanted to read but missed. I won't pay $2.50/article if I'm performing a summary research, requiring me to analyse 5000 different articles. Maybe a year back is not enough for me? Maybe it's way too much, as I want to make some monthly digests?
A good range of options is a reasonable choice. Another reasonable choice is "pay per kilobyte" with bulk discounts. A single $50/unlimited access option won't attract too many customers.
1) One who thinks $50.000-250.000 is less than they'd spend in lawsuits 2) One who want to cull slacking employees who c&p code instead of writing their own 3) One that wants to screw the competition over (examining THEIR code) 4) One, who is writing a huge compound project consisting of both proprietary and GNU parts, and lost track (or just wants to check) what source must be released, and where are the touchy "glue areas" where special care must be taken as to what has to be released, and where dependencies removed so it wouldn't infringe upon GPL. 5) One who wants to check for leaks of THEIR OWN code into the GPL world illegally (ex-employees releasing company secrets etc) 6) One who wants to make sure the subcontractor sells them original work, and not some modified publically available GPL'd code they can't legally use in their project. 7) Customer who wants to outfox the cheating seller ("It contains GPL'd code, I want the source.") 8) EFF. Settlements from lawsuits will be more than enough to pay for the service. 9) The paranoid. Okay... 10) Companies who "inherit" code i.e. by buying other companies and wanting to keep their codebase clean before merging. Like, Adobe could check Flash sources now, who knows where it's been...:)
Probably more too. Note this is NOT an open source initiative. And the problem with GPL is that it's strongly viral - someone determined enough can not only request compensation for infringing on their IP. They can demand you open-source any application that contains GPL'd code. (sure you may remove the offending piece from any future releases from now on, but if I bought your program already and it contains GPL'd code I still have right to receive the source of the version I bought, and I may force you to give it to me by court's order!)
Imagine Microsoft getting forced to release Longhorn on GPL because someone proves it contains and depends on a small GPL'd code:)
Yes, except if someone writes something in certain way, they have some reason. First, clarity. Changing white spaces or braces location won't hide it. Changing more, like function names, makes the program much harder to maintain. Changing structure of the code (double negatives, unrolling loops, changing the off-by-one conditions etc) further impacts efficiency of the code and may introduce heisenbugs. Of course running it through optimizing compiler would undo most of your work, and where not, leave less optimal code - it's usually written in such a way so it would be easy to swallow for optimizer, and if not, it's far from optimal). Sure you can modify GNU code to look completely different using machine, but you end up with a pile of stinking crap, that does compile but runs way worse than original. Or you could do it by hand, but then wouldn't it be easier to write it from scratch? Or finally, make a directory required_by_gpl, paste in the library sources and hooks necessary to include it if modified, and include any LGPL code you wish in your proprietary work, giving it proper credit and using it legally.
Actually, there are even some loopholes to use pure GPL code with your proprietary project. You just need the GPL'd part to run separately, through some wrapper, and to have the wrapper open source and generic enough that if you wrote "something else that does the same thing as the GNU part", your main program would still work. Making your program -use- the GNU piece (freedom of use), but not -depend- on it (viral spread of GPL license onto dependent code). Of course the GPL'd piece with source code and all, your proprietary program separately.
Yeah, like these guys who got a lawsuit threat from Microsoft because they were hosting OpenOffice on their servers. (it has Office in name, must be pirated version of MS Office!)
Re:DLL encryption will render this ineffective
on
The Open-Source Detector
·
· Score: 3, Insightful
Except decrypting the code before running it takes significant portion of CPU time, effectively making the "open source alternatives" much faster. Hiding, obscuring, obfuscating, all that creates a lot of overhead...
And of course it can be done by examining the memory dump instead of executable file. It must be decrypted to run.
There are 4 areas where computational power is required in such FPS games. 1) Visual rendering - what the player sees. VERY heavy. That's what standard networked "client" does. 2) Bot AI - Way too "lightweight" as for my liking. Generally quite light. 3) Token world - actual "physical model of the world", managing players and bots, calculating collisions, area damage etc, where the real game goes on. The "display client" gets only camera position and a handful of stats, while all the rest goes on behind the scenes. Kind of "Dungeon Master" task. Listen to players, tell them the outcome of their actions, let them imagine what it looks like. This is actually a pretty light job. 4) Management - transferring data between all the above. Sending updates on player and item positions to the rendering client so it could combine them into the local cache of the world map, forwarding player actions to the "world management", all the networking stuff etc.
All the above are quite neatly separable into distinct tasks. The natural place for "Management" is together with the "token world" to make them work really fast - they together make a "dedicated server". It's usually much lighter than client+server like in a standard single player game, so you can squeeze more of it on one CPU. 100 clients isn't all that much...
The "client" task is the most heavyweight, but it's very heavy on the GPU, not the CPU. CPU has very little to do unless GPU lacks some feature which must be software-emulated (and when things start to suck).
And the "bare bones" of the bot task are very lightweight. You get 98% of the CPU time left to perform all the "bot thinking" stuff. From which less than 1% is being used... Make the bot REALLY smart by taking all the CPU power you want, but accessing only as much data as a player would see - local cache of the map plus updates.
Of course bots could communicate, but this could be event-driven, making it life-like, not each bot "talking" 2500 times a second by sending message to each bot, each tick, but only when they -do- have something to communicate, i.e. "I see the enemy at..."
What's more interesting is the Bud litigation... There are two breweries who make Bud. Budweiser and Budeiovice. Both with some 200 years of tradition. Two completely different companies, different beers. In different countries, created independently, without anything like trademark laws at that time. Now, in the era of international trade of common goods, like beer, when they began entering each other's market space, they began fighting about who does Bud belongs to...
As far as I understood it... it very badly scales up. Straight road to standard, hot fusion reactors there. But what is important, it perfectly scales DOWN. Nuclear-powered nanobots anyone?
No, the mindset of microsoft is... - management - Max Profit - marketing - making it seem to be cool/fun. - designers - whoring to the upper management - programmers, QA - Get paid without overworking yourself
Manager: "My stock option value is another $100 now. Let's find the guilty..." Marketing: "So how do we wrap this rotten fish to make it look fresh?" Designer: "Whoa, this SOUNDS so modern, that boss MUST be impressed! (Will anyone use it though? No.)" Programmer: "I'm to implement this pile of crap? Okay, let's get done with this and forget as fast as possible." QA: "Smoketest passed, boss approved, deadline in 2 days, stamping 'ready for release' and not digging any deeper or I might find something somebody might not like."
That's the mindset of many software corporations. Possibly including RedHat as well.
Linux is supposed to be fun. That's the most important part about it. Not "good for mission-critical applications", not "suitable for enterprise solutions", not "desktop-ready", not "lower in TCO than competition", not "faster", not "more free", not "less bloated", not "more robust", not "scalable", "stable", "secure", "efficient", "competitive", "easy". Just fun. This is the ultimate priority and all the rest results directly from it. Make it a corporate monster and you take all the fun away from it, so let's avoid it. Make it free, and you make it more fun, so let's make it free.
Security is interesting, but gets boring on the long run. Stabilizing, bugfixes etc are a drudgery, but later using buggy code sucks. Cleaning up badly written code is difficult. Writing drivers really sucks. Features are fun.
Learning, improving yourself, changing coding style, using new techniques, this all has such a strong impact, that I wouldn't touch my own code from 2005 with a 2-yard pole tied on the end of another 2-yard pole. I'd rewrite it from scratch, making it twice as fast, thrice as reliable and four times more readable. And taking 1/10 the time fixing the old code would take.
Reading your own old code leads only to frustration. ("My god, I'm such a moron to have written this!"). A ton of GOTO in a C program? Excuse me, I'd better take the data files and don't make me look at that. Triple-nested switch()? Hurts! My brain hurts! Condition look-up table organised as some 100x100 array of if() RUN! RUN! IT'S GONNA BLOW!!!!
Following the standard FOSS policy "release often", release some parts of the system that are ready - some demon, some apps, and keep adding. Linux wasn't built in a day, and the first versions required Minix to compile it, it was a long process of creating it. Why not release OpenSolaris piece-by-piece, so people interested in it could start working on the non-encumbered parts?
Imagine this: I'm running commercial Solaris. I have some app provided by the system, that does the work in a realy kludgy way, with some of my custom wrapper scripts to let it work at all. I know I can fix it and make it work as it should with a few simple changes to the source of the app. I don't need whole OS. I need sources of this one single component. And they lay there on the harddrives of SUN employees, ready to release, waiting till some completely different parts are finished, and in the meantime I lose $1000 a day because the kludge doesn't do its job well enough. So why won't they release it?
A famous maths professor working at a university, one day calls a plumber because his tap is leaking. The plumber replaces the seal, presents the bill.
"Whoa! That's a week of my salary! For replacing a simple seal!"
"Want to earn as much as I do? Become a plumber. It really IS that easy."
So the professor decided to give it a try. And it really worked out great. He left the university, he was repairing pipes, replacing seals, several works a week, salary about 20 times what he would get from the university. It lasted several years.
Until the Union decided all plumbers need to have at least high school finished. So, there were some classes to refresh the memory and then a test. And the math class, teacher calls our professor to the blackboard and asks to write the formula for surface of a circle.
And the professor realises it was so long ago since he used it last, sometime during studies yet, that he forgot! But he thinks, "I'm a math professor. I can derive that formula". So he starts deriving it. Draws a circle, splits into infinite number of infinitisemal pieces, adds Jacobian for radial projection, integrates and satisfied, writes: S=-pi*r^2.
But hey, that minus must be wrong, surface can't be negative. So he starts checking his calculations, looks at them, examines, can't find the mistake. Time passes, the teacher looks, more and more annoyed, whispers rise from the classroom, and after a while they become recognisable: "Reverse the limits of the integral! Reverse the limits of the integral!"
"But... ...it plays Space Invaders, Galaga, and a bunch of other arcade games."
[launches MAME]
*drool* "I played that when I was 6! GIMME!"
And IBM took real care to put every single most vaguely relevant file on the drive. 80 gigabytes of source code - ascii text! This is more than 10000 times the content of The Bible (which is about 6MB). This is completely useless for manual search, and electronic search WILL yield millions of false positives, which then must be culled by hand.
SCO made a huge mistake by demanding "all the data". IBM just called the bluff and provided them with more than they bargained for. It's useless for SCO and IBM appeared to be very friendly to provide it in form of a searchable database, and not as printouts.
Actually, the problem is even worse with -this- subject.
You open a webpage with some browser hacks. You change something in the browser. Due to your modifications, the browser doesn't display the page anymore so you don't know how to undo your hack, ending up possibly wiping profile, reinstalling the browser and if you reached too deep, maybe even reinstalling windows(if any).
Dead-tree version of docs may be harder to grep, but it won't crash on you, and there's little chance the host hosting it will be down.
(think about logic of keeping a backup recovery manual on the drive you back-up and of course all back-up tapes...)
Except Wall Street Journal past articles are usually more valuable. There's two kinds of data, one that goes outdated really fast, becoming useless really fast, and the kind that adds to the "knowledge base", making the total sum of knowledge more valuable. Usually "flash news" and "forecasts" where shallow memes and unconfirmed info is passed just to keep you "standing by" for more, later, is pretty worthless, except of the sentimental value. On the other hand, in-depth articles lose very little over time. The piece about landing on the Moon may be cool to watch, but if you want to learn about the Moon and the mission, you look for an aftermatch article.
The problem is they want a single subscription option, which is wrong. I'm not going to pay $50 for a single article I wanted to read but missed. I won't pay $2.50/article if I'm performing a summary research, requiring me to analyse 5000 different articles. Maybe a year back is not enough for me? Maybe it's way too much, as I want to make some monthly digests?
A good range of options is a reasonable choice. Another reasonable choice is "pay per kilobyte" with bulk discounts. A single $50/unlimited access option won't attract too many customers.
1) One who thinks $50.000-250.000 is less than they'd spend in lawsuits :)
:)
2) One who want to cull slacking employees who c&p code instead of writing their own
3) One that wants to screw the competition over (examining THEIR code)
4) One, who is writing a huge compound project consisting of both proprietary and GNU parts, and lost track (or just wants to check) what source must be released, and where are the touchy "glue areas" where special care must be taken as to what has to be released, and where dependencies removed so it wouldn't infringe upon GPL.
5) One who wants to check for leaks of THEIR OWN code into the GPL world illegally (ex-employees releasing company secrets etc)
6) One who wants to make sure the subcontractor sells them original work, and not some modified publically available GPL'd code they can't legally use in their project.
7) Customer who wants to outfox the cheating seller ("It contains GPL'd code, I want the source.")
8) EFF. Settlements from lawsuits will be more than enough to pay for the service.
9) The paranoid. Okay...
10) Companies who "inherit" code i.e. by buying other companies and wanting to keep their codebase clean before merging. Like, Adobe could check Flash sources now, who knows where it's been...
Probably more too.
Note this is NOT an open source initiative. And the problem with GPL is that it's strongly viral - someone determined enough can not only request compensation for infringing on their IP. They can demand you open-source any application that contains GPL'd code. (sure you may remove the offending piece from any future releases from now on, but if I bought your program already and it contains GPL'd code I still have right to receive the source of the version I bought, and I may force you to give it to me by court's order!)
Imagine Microsoft getting forced to release Longhorn on GPL because someone proves it contains and depends on a small GPL'd code
Yes, except if someone writes something in certain way, they have some reason. First, clarity. Changing white spaces or braces location won't hide it. Changing more, like function names, makes the program much harder to maintain. Changing structure of the code (double negatives, unrolling loops, changing the off-by-one conditions etc) further impacts efficiency of the code and may introduce heisenbugs. Of course running it through optimizing compiler would undo most of your work, and where not, leave less optimal code - it's usually written in such a way so it would be easy to swallow for optimizer, and if not, it's far from optimal).
Sure you can modify GNU code to look completely different using machine, but you end up with a pile of stinking crap, that does compile but runs way worse than original. Or you could do it by hand, but then wouldn't it be easier to write it from scratch?
Or finally, make a directory required_by_gpl, paste in the library sources and hooks necessary to include it if modified, and include any LGPL code you wish in your proprietary work, giving it proper credit and using it legally.
Actually, there are even some loopholes to use pure GPL code with your proprietary project. You just need the GPL'd part to run separately, through some wrapper, and to have the wrapper open source and generic enough that if you wrote "something else that does the same thing as the GNU part", your main program would still work. Making your program -use- the GNU piece (freedom of use), but not -depend- on it (viral spread of GPL license onto dependent code). Of course the GPL'd piece with source code and all, your proprietary program separately.
Yeah, like these guys who got a lawsuit threat from Microsoft because they were hosting OpenOffice on their servers. (it has Office in name, must be pirated version of MS Office!)
Except decrypting the code before running it takes significant portion of CPU time, effectively making the "open source alternatives" much faster. Hiding, obscuring, obfuscating, all that creates a lot of overhead...
And of course it can be done by examining the memory dump instead of executable file. It must be decrypted to run.
There are 4 areas where computational power is required in such FPS games.
1) Visual rendering - what the player sees. VERY heavy. That's what standard networked "client" does.
2) Bot AI - Way too "lightweight" as for my liking. Generally quite light.
3) Token world - actual "physical model of the world", managing players and bots, calculating collisions, area damage etc, where the real game goes on. The "display client" gets only camera position and a handful of stats, while all the rest goes on behind the scenes. Kind of "Dungeon Master" task. Listen to players, tell them the outcome of their actions, let them imagine what it looks like. This is actually a pretty light job.
4) Management - transferring data between all the above. Sending updates on player and item positions to the rendering client so it could combine them into the local cache of the world map, forwarding player actions to the "world management", all the networking stuff etc.
All the above are quite neatly separable into distinct tasks. The natural place for "Management" is together with the "token world" to make them work really fast - they together make a "dedicated server". It's usually much lighter than client+server like in a standard single player game, so you can squeeze more of it on one CPU. 100 clients isn't all that much...
The "client" task is the most heavyweight, but it's very heavy on the GPU, not the CPU. CPU has very little to do unless GPU lacks some feature which must be software-emulated (and when things start to suck).
And the "bare bones" of the bot task are very lightweight. You get 98% of the CPU time left to perform all the "bot thinking" stuff. From which less than 1% is being used... Make the bot REALLY smart by taking all the CPU power you want, but accessing only as much data as a player would see - local cache of the map plus updates.
Of course bots could communicate, but this could be event-driven, making it life-like, not each bot "talking" 2500 times a second by sending message to each bot, each tick, but only when they -do- have something to communicate, i.e. "I see the enemy at..."
Yes, they will Embrace And Extend(tm) it.
I'm surprised with more than 200% difference between the price of the cluster and equivalent in separate desktop computers.
No worries. He can set up WINE on it and run the Windows version of SETI@home with the screensaver, emulated :)
96 Dooms - no. But 1 Doom using "dual CPU" and 94 Really Smart Bots.
What's more interesting is the Bud litigation...
There are two breweries who make Bud. Budweiser and Budeiovice. Both with some 200 years of tradition. Two completely different companies, different beers. In different countries, created independently, without anything like trademark laws at that time. Now, in the era of international trade of common goods, like beer, when they began entering each other's market space, they began fighting about who does Bud belongs to...
With a little exception...
"If Microsoft servers after the migration crashed from slashdotting, imagine what would happen to our hosts under load."
As far as I understood it... it very badly scales up. Straight road to standard, hot fusion reactors there. But what is important, it perfectly scales DOWN. Nuclear-powered nanobots anyone?
No, the mindset of microsoft is...
- management - Max Profit
- marketing - making it seem to be cool/fun.
- designers - whoring to the upper management
- programmers, QA - Get paid without overworking yourself
Manager: "My stock option value is another $100 now. Let's find the guilty..."
Marketing: "So how do we wrap this rotten fish to make it look fresh?"
Designer: "Whoa, this SOUNDS so modern, that boss MUST be impressed! (Will anyone use it though? No.)"
Programmer: "I'm to implement this pile of crap? Okay, let's get done with this and forget as fast as possible."
QA: "Smoketest passed, boss approved, deadline in 2 days, stamping 'ready for release' and not digging any deeper or I might find something somebody might not like."
That's the mindset of many software corporations. Possibly including RedHat as well.
winnuke 2130706433
Most of web apps work with IPs converted from 4-digt dot-separated 256-base numbering to decimal.
For example, try http://1109654166 for "alternate form of Slashdot IP"
Sure. Hack me. My hostname is warez.ziew.org
No, this is humor. Seen the foot icon?
Check "humor" in topics you want filtered off in your prefs and stop complaining.
Linux is supposed to be fun. That's the most important part about it. Not "good for mission-critical applications", not "suitable for enterprise solutions", not "desktop-ready", not "lower in TCO than competition", not "faster", not "more free", not "less bloated", not "more robust", not "scalable", "stable", "secure", "efficient", "competitive", "easy". Just fun. This is the ultimate priority and all the rest results directly from it. Make it a corporate monster and you take all the fun away from it, so let's avoid it. Make it free, and you make it more fun, so let's make it free.
Security is interesting, but gets boring on the long run.
Stabilizing, bugfixes etc are a drudgery, but later using buggy code sucks.
Cleaning up badly written code is difficult.
Writing drivers really sucks.
Features are fun.
Learning, improving yourself, changing coding style, using new techniques, this all has such a strong impact, that I wouldn't touch my own code from 2005 with a 2-yard pole tied on the end of another 2-yard pole. I'd rewrite it from scratch, making it twice as fast, thrice as reliable and four times more readable. And taking 1/10 the time fixing the old code would take.
Reading your own old code leads only to frustration. ("My god, I'm such a moron to have written this!"). A ton of GOTO in a C program? Excuse me, I'd better take the data files and don't make me look at that. Triple-nested switch()? Hurts! My brain hurts! Condition look-up table organised as some 100x100 array of if() RUN! RUN! IT'S GONNA BLOW!!!!