I was die-hard on XP, but then I tried Windows 7 for the last couple of days and will simply NEVER go back to XP again..
Besides, if you're gonna do SSD, Windows 7 is the way forward. XP will be obsolete, like Red Hat 5 and Windows 98SE. Do you really want to risk your data or latest gadget to fail?
Win 7 vs XP: * Better looking * Fast * More options, integrated backup, it's a big mess, but most of it works. Yeah, u know the drill by now, but it *mostly* works, most of the time, and then it's "good enuff" * More integrated recovery tools. More chances of getting back up and running.. * More robust, flexible & userfriendly install. Not as good as Ubuntu, but better than last time. * Support * SSD support without all the headaches necessary on XP & Vista. If you're like me, you don't want your drive to die in its infancy.. * non-admin accounts works * UAE security, and no, it's not as annoying as on Vista * Better driver support than Vista, runs newer hardware without slipstreaming tons of drivers * More native drivers available on Windows Update * DX11
Not a quantum-leap, but Windows 7 fixes most nuances with Vista, and has more OPTIONS;-) XP is already obsoleted by Windows 7 IMHO.
I'd suggest you read up on I2P. It is not as simple as to block some ports, since I2P utilizes a random port per node. You'd have to do deep packet inspection on the encrypted traffic. I'm not sure how big the I2P-fingerprint is, but my guess is you could disguise the traffic as ssh, https or similar traffic easily, if not already done so.
I also countered the legitimate argument in the original post, suggesting we start using I2P for *any and all* content, also legitimate ones. Then the courts, which ideally represents the population, will have a hard time cracking down on I2P as a whole, unless you live in China or other human rights breakers..
If your ISP blocks incoming connections, I2P will still work automatically, as long as your tunnel is using at least 1 hop, which is default for new tunnels. Then other anonymous nodes will act as "incoming server" for you..
Point is: Internet is inherently insecure and untrustworthy. It is already heavily monitored, and Man-In-The-Middle attacks are possibly more rampant than we'd like to think it is.
I2P is already general-purpose enough to replace most features of internet v1, and already addresses most issues of anonymity and transparent encryption elegantly.
While politicians and the lawyers fight over the freedom of internet v1, it's not such a bad idea to stand on another leg in a more secure network, built on top of the old internets.
All the more reason to move over to I2P, or other general darknets, which can provide application-agnostic anonymous networking with end-to-end encryption. Why wait for the inevitable when we can build a secure internet on top of the old one?
With I2P, there are no central DNS servers and, the ISP / IP-address of a specific service is ideally not knowable, neither are the ISP / IP-addresses of visitors to e.g. a political website. I2P being p2p, no authority has the power to shut down a site, prevent visitors using services in the I2P "darkcloud" or even snoop on the network activities (without using leaking honeypots, assimilating keys somehow or perform (D)DOS attacks). I2P uses random ports, so it's not as simple to block as blocking a portrange either. Being based on p2p coupled with encrypted tunnels, I2P resists most common attacks, even by formidable adversaries such as governments. You can run any website, any type of application, over I2P, however care must of course be taken to eliminate "identity leaks" in the application layer, even though the network-layer takes care of most anonymity, encryption and p2p.
So if you are to host "objectionable" content, whatever that may mean across the globe, I'd suggest taking a peek at I2P, as the "normal" internuts seems to be screwed in the short/mid-term. Heck, we should probably start using I2P for any and all purposes, so that I2P content is "legitimate" and equally protected from being censored and snooped upon in the first place.
I2P main site as a start. It's java and open source, so easily cross-platform and performs well (for a Java app anyway): http://www.i2p2.de/
Pre-Fallen: Helpless, scared beings who scuttle around on their little island on a planet theeming with life, but they've yet to explore anything more than the few vegetables on their little island / "garden".
"Fallen": Predators: Enslaving planet after planet, in order to expand its own agendas and territories. Pretty much stuck on the level of humanity the last 500 years. Enlightened: Actively monitoring Earth, awaiting the moment humanity is ready for first contact on a global scale. Only allowed to help with short-lived abductions and contact with crazy people, who won't be believed ever. Yes, yes, I jest;-)
In order to become enlightened, ironically, you have to "fall". If humanity never "fell", the bible, Jesus, everything would become meaningless. Wisdom cannot exist without failure, indeed, it totally depends on it.
Not that Christianity is my cup of tea, however, all religions have contributed alot to earth's spiritual development. Even when they fail tremendously, we can learn alot from that as well as when they "do good".
Why would you assume most such incidents would be reported?
Insiders will not break their loyalty, and any breach of loyalty are disencouraged, thus the insecure practices lives on until something even more major breaks.
How about Banking & Finance: The core system is even reachable from Windows networks.
I've been working within the banking industry and having the entire windows network knocked down due to viruses. The only reason there's no major disruption to the core services is that they're usually DB2 and kinda archaic.
Problem: His company now sees him as a liability. Anything he does with this domain can backfire ten times. He claims nothing to do with the domain, so he should have nothing to do with it at all.
State will then lose money on patents. Now its an increasing chunk of dough to grease the state machinery. Doing it properly, not screwing society over, is not profitable. If the budget changes, so will the state's priorities regarding the patent system have to change..
If something can be made in 1 week by a teenager, on no pay or salary, then it obviously is not worth protecting with hundreds of thousands in court fees to make greedy lawyers rich, at the expense of society at large and more pressing cases.
Software lowers the bar of innovation, so yes, nothing in software is really worth protecting. Software is already protected by copyright, which should provide sufficient protection, without hindering the free market to unfold itself.
There is a reason programmers in the field are called "code monkeys". After 4-5 years, if you haven't moved on or up, you are either a real geek, or just love mind-numbing work. There's usually not much innovation going on, just translation of real world processes into the world of computers. At any time, you can usually be replaced by another guy, don't fool yourself. Same with patents. It is not unusual for many people around the globe to get the same ideas at the same time, because the bar to software is so low..
but in all "fairness" if someone had the idea first then why shouldn't they get some benefit from it ?
Because it isn't "fair", whatever that should mean? Neither is it supposed to be the reason for the patent system in the first place.
The test for non-obviousness was supposed to make patents innovative beyond mere ideas, ie. full documentation of implementations which otherwise would be lost in trade secrets and obfuscation. However, non-obviousness tests are seldom used for anything else than delay a certain application, until it is reworded enough to be granted. This makes sense to the patent office and state, which earns Big Money from granting a mind-numbing number of patents each year. It also makes sense for huge mega-corporations, because they get defensive and offensive patent portfolios to squash lesser competitors with. It even makes incredible sense for patent-trolls, as they can push/buy up patents from dying companies, and extort money, without risking anything themselves, as they are producing nothing of value themselves, only sue successful businesses through courts out of the remains of dying businesses..
This all works splendidly on the cost of everyone else: inventors who are restricted in arbitrary fashion and customers who are forced to buy inferior products at exessive prices. It makes any business a risky operation, because at any time, you can be sued into oblivion, despite otherwise successes in the marketplace. Thus, the state monopoly-granted patent system works against the free market.
If it was "fair", then if someone has an idea, they shouldn't be sued into oblivion when implementing their idea as a business or "free software", just because someone "thought of it first", which is not even proven beyond any reasonable doubt. If everyone gets the same idea, or if the patent is just a physical process translated into the world of computers and software, then it shouldn't be patentable at all, since it is an obvious invention, a natural evolution of software to scratch an obvious itch.
Of course, only big corporations have the money to build a huge patent portfolio, and then use it as a defense mechanism, or even aggressively attack GPL, BSD, open source and free software. You can bet your sorry ass, Mozilla Firefox, Linux and most complex software out there, already violates hundreds of patents. It's just because of bad PR, the dogs have been kept in leash, but we remember SCO, and it is not far-fetched some dying corporation with real ownership of patents, could go for licenses instead of competing in the marketplace.
Just because nobody has patented it yet, doesn't mean nobody has thought about it. Just because nobody has started doing business around it, doesn't mean there are 20 competitors working on it already. Patents usually just gets in the way and squash the little inventor trying to do business themselves. They then have no recourse but to find a huge corporation sugardaddy to implement their idea at all.
Patents were never supposed to cover ideas themselves, but certain implementations thereof. The problem with software, is that copyright already protects software, so there if you're going to cover something more, you need to rape your constitutional forefathers, as USA, land of the "free", is doing now.
Evolution, will sort itself out though. USA will go bankrupt into its own corruption, greed, war-mongering and neglect of the environment and its own citizens. Somewhere, in the free world, some country will ignore software patents, and through that gain competitive advantage.
However, it's not as bad and gloomy as you describe...
Just because you haven't experienced it yet, doesn't mean it doesn't happen.
I've seen too many forum posts with "my Vista doesn't support X sound card" or "they just released a crippled driver which removed X cool features from my sound card"!
For people who buy expensive cards and use them professionally, this behaviour is unacceptable. When Creative and its ilk behave this way, they should be boycotted and everyone warned about it.
Try some searches. I think you'll be surprised how much is still unsupported, or have been crippled in new versions in proprietary software.
Your post is one of the wisest I've read in a long time.
It's about people recognize different people serve different roles. Stallman has his "free software" role to play. Miguel has the "pragmatic software" role. Ballmer has the "chair throwing" role.
Thanks! Nice to read such contributions to a discussion, and wish more people would read the comments before blurting out with the same comments on every topic. Why post if you're just reiterating what has been said zillion times before?
I see you like the play of devil's advocate. This goes against the spirit of the GPL.
However, in legal perspective (IANAL), I don't think it will work out like that. You see, either you accept the license (GPL) and you get to redistribute the software under the GPL license. Or you don't accept the GPL license, in such case, copyright would still be with the original copyright holders.
Now, any works under copyright doesn't have to have been sold yet. You can always discuss the price with the copyright holder for proprietary use. Better do it before using the code though, as you may have more bargaining power then. The fact that you didn't, even if you didn't know, copyright still stands. The copyright holder can make you have to pull all your violating binaries / code from any distribution, which could actually cost alot by itself if infringement is big.
Price will be at market price, or whatever agreement with the copyright holder. Not sure if there are any limits to demands here.
Just because the sourcecode can be distributed under the GPL license doesn't mean it no longer have any market value. It can be relicensed under any other free or non-free license by the actual copyright holder (not those who merely redistribute under GPL), with or without monetary or other compensation.
This vibes very much with what other posters have said, that the GPL itself give value back in form of collaboration. If you don't want to collaborate with the rest of the world though, you gotta pay something else. Many companies are already using this strategy to make money off of GPLed software, selling their rights to companies who wants to do proprietary work.
I didn't know this thread was about convincing somebody that software patents can be ingenious. I am not about to argument *for* that position though, even if they are not of the "silly" kind.
RSA was patented. Where was the benefit to society. It only held off the use of RSA until it got opened again. Someone wanted to hold RSA away from the public, and patents was a perfect tool to wield that power, and delay crypto software for the masses for a while. Are we sheeple or what?
Software != Mathematics. However, when you are patenting a hardware device, you are patenting the implementation of it. Software patents however, seem to try to abolish all kinds of implementations on the *idea* itself.
Even if piece of software is ingenious, it seems to me just a way to avoid competition, and control the market. Nobody else can build on such "ingenuity", which also hinders innovation in many cases. It may bring innovation, just to circumvent the patent, but it seems a costly way to ensure innovation to me.
About cost. Patents are only costly for the small players. For bigger companies, they're just part of expenses of controlling the market. The cost of a patent is not really that much, and an individual can easily affort several patents without being really rich.
Then you have to think about the cost of being sued, for knowingly or unknowingly breaching a patent, and the overall work of ensuring you are not breaching patents, without reading them, because they are legally dangerous to read (triple damages!). Indeed, the whole patent thing seems more about control, power and squashing competition, rather than fostering innovation and contributing to sciences and arts. The real cost of patents is in the judicial system, where the smaller fish have very difficult time, especially if they are not a litiguous patent-holding company that produces nothing of they're own (then they are impervious to breaching patents, except maybe business patents).
There is nothing standing in the way of patenting mathematical formulas, if the legal system / politicians decide it. It will just further make things complicated and raise the barrier for everybody but the bigger players in the mathematical field too.
Patents will of course expire, but 20 years is a long time in the software industry. It seems silly to have to wait 20 years for every RSA. For most of these problems, you can usually come up with a competing and better implementation yourself in shorter time, however software patents seek to hinder that!
I just don't see any use for software patents, and maybe also many hardware patents are way overboard. They've just gone too far..
Hehe, whatever you imagine to be offensive, got deleted I think. Because no offense taken what is in your posts. I am usually very sensitive, but maybe because you are actually trying not to be aggressive, it doesn't hit? Dunno. Browsing/. earns you a thick online skin anyways. Too many insecure nerds I guess:)
It doesn't matter. If you are out to get the project accomplished, I have some suggestions along the road. Aside from being polite, which you are, that is a very constructive start.
I am by no way an UI designer though, but know what I like. Fact is, the XP UI seems good enough for me now, so anything new would have to be brilliant and simple, such as many of the Google interfaces. Examples: Google Search, labels/tags in GMail, Picasa, Photoshop, etc. I haven't tried Win7, but I think they haven't cleaned up their configuration yet, only changed things around, so many of my beefs with XP is still there. Maybe the taskbar is better though, haven't bothered to look that hard at it (if something works, I think people tend to stick with it).
Requirements gathering - you do have a list of requirements for the project, don't you? It should be treated like any regular company project, with requirements gathering, architecture, system design, etc. Requirements gathering will ensure you know *where* the project is heading, and *why* you do the design choices that you do. Ie., something might seem like a good idea (hello KDE), but putting every feature in, might actually make the product suck in the end. For many, KDE is overkill, and Gnome is just simpler and cleaner, like OS X. I usually use KDE though, since I'm a poweruser and want it to be more like Windows, so the features should be present, just hidden cleverly, as you already mentioned.
Requirements can be high-level goals of project success, and also a list of more low-level ones.
Instead of hiring programmers (sounds expensive, and the product might never take off). I would suggest find a prototype-language, ie. like Ruby, or Visual Basic, just something simple to get started on a prototype. I would prefer Ruby, since you could actually do many things in-language, and it could actually go all the way to production. It'll probably be fast enough.
So making a prototype, you are more free to do changes during development, and since you're the only guy who knows what you want, you can save time in so many ways. Not having to document too much, changing thins underway, and making something that actually works (according to you).
Then it's user acceptance testing. Getting someone else to use your system, get their complaints etc. Fun stuff!;-) Often with such an experimental system, you will need to change half of the interface around, so it should be a little flexible from the start, but not invest too much time in classes and fancy frameworks either.. Just make it work.
It'll take longer time than you thought. So you should really just decide to go through with it, no matter how long it takes, or how it turns out.
Requirements should take care of the future of the product as well. Will you send the prototype to production. Will you give it off to KDE or Gnome, for them to implement the prototype in their frameworks? Will you sell the idea? Patent it? It should have a clear future, even before you begin, and even if you never really finish it, someone else might use the project to accomplish something.
And above all, have fun with it:-) Sounds like a fun project, and I like the *idea*, if you can accomplish all what you say you can:-)
In the end though, you would have to convince me and everybody else why we should leave our current system, which sorta works, for this. Maybe it shouldn't differ too much in basic functionality?
Sheltering kids until they're 18, not letting them speak to store employees or use the internet, earns an "F" in my book. All you've done is create an adult with the mental capacity of a 5-year-old. This new Canadian law that forbids kid from interacting with adults (online) is just plain stupid.
Nope, you're only making sure they will learn it from someone else. You never know who that someone might be, a troubled child, or a good-hearted curious child with solid parents, or anybody. But not from you.
The child is going to mature, one way or another. So still your solution sounds best to me.
Odds of this happening, zero. I think Google would face a lot of criticism if they made it that easy to dodge ISP tracking of their users.
DNS over encrypted channel? Would require some client-side changes on the OS / gateway level.
Google would get praise from me if they did something like that. DNS is far too insecure and open these days. UDP should be used for games, not for something you need to rely on.
My thoughts exactly when seeing that code. It just didn't compile in my head, so have no other comment about the other stuff grandparent post tried to convey;-)
Too much C / C++ in childhood.. Now it's Ruby all the way...;-)
Of course this is what you get for using global variables in local loops. You should teach the user about the use of local variables over global scope, and how he can even use a bit more creativity and use names like account_counter or row_index, or something other than "i". "i" is over-used when clearly a more descriptive name can even save you some comments, by conveying enough information just by its own name and general use..
E.g. This is a BAD comment:/* loop from 0 to 100 */ for (i=0; i=100; i++)
This doesn't need much comment other than maybe a higher-level one: for account_index=0; account_index = 100; account_index++)
This actually sounds like Ruby, which once you get past the powerful, yet seductive syntax, you can actually write things in a much more compact way, while retaining the readability. It doesn't go too far, like making the whole code like reading prose (too much text is also horrible), but mixes minimal syntactic sugar with text and good function/variable names, so that you can write iterators and whatever language extension you need, while retaining the original meaning of what you're overloading, or just use the common ones. Beats the hell out of for i = 1 to 100, although you can use that convention too as a stepping stone until you get the dynamic beauty of intepreted prototype-like languages like Ruby.
Most Ruby libraries are actually thus very easy to read, since the same syntactic sugar are used over and over, to save lines of code, and convey the similar or exactly the same meaning, without repeating itself unnessesarily. It's neat to have one way of iterating, instead of so many variations like: for i=1 to 100 do i=1;while i = 100) break;end etc.. You can still do this in Ruby, but since all Ruby-libraries (which span everything you will ever need) follow ruby conventions like "duck" typing, you will eventually start using the more "rubyesqe" conventions more and more. They just make more sense and give more flexibility.
Literate programming sounds neat, but actually Ruby with its DRY and other principles has practical solutions for spagghetti code. It does require programmers not indoctrinated with Perl though, as they will just go into their old routine to make a mess (just kiddin, almost;-)
And while you're cleverly thinking about all this, the other guys have just finished another product for you to maintain. Horrible code too, but the customer bought it and now it needs to be maintained and upgraded, until it becomes a horrible spagghetti monster - and you start all over again with fresh code (but now YOU're on the team coding new things, and have such a deadline, you forget all your ramblings of "best practices", and just make some code that finally works).. You're not proud, you left that years ago, but you get paid.
I was die-hard on XP, but then I tried Windows 7 for the last couple of days and will simply NEVER go back to XP again..
Besides, if you're gonna do SSD, Windows 7 is the way forward. XP will be obsolete, like Red Hat 5 and Windows 98SE. Do you really want to risk your data or latest gadget to fail?
Win 7 vs XP:
* Better looking
* Fast
* More options, integrated backup, it's a big mess, but most of it works. Yeah, u know the drill by now, but it *mostly* works, most of the time, and then it's "good enuff"
* More integrated recovery tools. More chances of getting back up and running..
* More robust, flexible & userfriendly install. Not as good as Ubuntu, but better than last time.
* Support
* SSD support without all the headaches necessary on XP & Vista. If you're like me, you don't want your drive to die in its infancy..
* non-admin accounts works
* UAE security, and no, it's not as annoying as on Vista
* Better driver support than Vista, runs newer hardware without slipstreaming tons of drivers
* More native drivers available on Windows Update
* DX11
Not a quantum-leap, but Windows 7 fixes most nuances with Vista, and has more OPTIONS ;-)
XP is already obsoleted by Windows 7 IMHO.
Face it, XP is dying ;-)
I'd suggest you read up on I2P. It is not as simple as to block some ports, since I2P utilizes a random port per node. You'd have to do deep packet inspection on the encrypted traffic. I'm not sure how big the I2P-fingerprint is, but my guess is you could disguise the traffic as ssh, https or similar traffic easily, if not already done so.
I also countered the legitimate argument in the original post, suggesting we start using I2P for *any and all* content, also legitimate ones. Then the courts, which ideally represents the population, will have a hard time cracking down on I2P as a whole, unless you live in China or other human rights breakers..
If your ISP blocks incoming connections, I2P will still work automatically, as long as your tunnel is using at least 1 hop, which is default for new tunnels. Then other anonymous nodes will act as "incoming server" for you..
Please check out http://www.i2p2.de/how.html for more.
Point is: Internet is inherently insecure and untrustworthy. It is already heavily monitored, and Man-In-The-Middle attacks are possibly more rampant than we'd like to think it is.
I2P is already general-purpose enough to replace most features of internet v1, and already addresses most issues of anonymity and transparent encryption elegantly.
While politicians and the lawyers fight over the freedom of internet v1, it's not such a bad idea to stand on another leg in a more secure network, built on top of the old internets.
All the more reason to move over to I2P, or other general darknets, which can provide application-agnostic anonymous networking with end-to-end encryption. Why wait for the inevitable when we can build a secure internet on top of the old one?
With I2P, there are no central DNS servers and, the ISP / IP-address of a specific service is ideally not knowable, neither are the ISP / IP-addresses of visitors to e.g. a political website. I2P being p2p, no authority has the power to shut down a site, prevent visitors using services in the I2P "darkcloud" or even snoop on the network activities (without using leaking honeypots, assimilating keys somehow or perform (D)DOS attacks). I2P uses random ports, so it's not as simple to block as blocking a portrange either. Being based on p2p coupled with encrypted tunnels, I2P resists most common attacks, even by formidable adversaries such as governments. You can run any website, any type of application, over I2P, however care must of course be taken to eliminate "identity leaks" in the application layer, even though the network-layer takes care of most anonymity, encryption and p2p.
So if you are to host "objectionable" content, whatever that may mean across the globe, I'd suggest taking a peek at I2P, as the "normal" internuts seems to be screwed in the short/mid-term. Heck, we should probably start using I2P for any and all purposes, so that I2P content is "legitimate" and equally protected from being censored and snooped upon in the first place.
I2P main site as a start. It's java and open source, so easily cross-platform and performs well (for a Java app anyway):
http://www.i2p2.de/
Pre-Fallen: Helpless, scared beings who scuttle around on their little island on a planet theeming with life, but they've yet to explore anything more than the few vegetables on their little island / "garden".
"Fallen": ;-)
Predators: Enslaving planet after planet, in order to expand its own agendas and territories. Pretty much stuck on the level of humanity the last 500 years.
Enlightened: Actively monitoring Earth, awaiting the moment humanity is ready for first contact on a global scale. Only allowed to help with short-lived abductions and contact with crazy people, who won't be believed ever. Yes, yes, I jest
In order to become enlightened, ironically, you have to "fall". If humanity never "fell", the bible, Jesus, everything would become meaningless. Wisdom cannot exist without failure, indeed, it totally depends on it.
Not that Christianity is my cup of tea, however, all religions have contributed alot to earth's spiritual development. Even when they fail tremendously, we can learn alot from that as well as when they "do good".
Why would you assume most such incidents would be reported?
Insiders will not break their loyalty, and any breach of loyalty are disencouraged, thus the insecure practices lives on until something even more major breaks.
How about Banking & Finance: The core system is even reachable from Windows networks.
I've been working within the banking industry and having the entire windows network knocked down due to viruses. The only reason there's no major disruption to the core services is that they're usually DB2 and kinda archaic.
Problem: His company now sees him as a liability. Anything he does with this domain can backfire ten times. He claims nothing to do with the domain, so he should have nothing to do with it at all.
DO NOT DO ANYTHING RIGHT NOW BUT GET A LAWYER!
Correction: ...they will do with _your_ money.
AND it's paying for your enormous deficit, which is likely to bankrupt US pretty soon..
Ok, you've got two unwinnable wars, then what?
State will then lose money on patents. Now its an increasing chunk of dough to grease the state machinery. Doing it properly, not screwing society over, is not profitable. If the budget changes, so will the state's priorities regarding the patent system have to change..
http://www.uspto.gov/about/stratplan/ar/2006/30605_stmntnetcost.jsp
If something can be made in 1 week by a teenager, on no pay or salary, then it obviously is not worth protecting with hundreds of thousands in court fees to make greedy lawyers rich, at the expense of society at large and more pressing cases.
Software lowers the bar of innovation, so yes, nothing in software is really worth protecting. Software is already protected by copyright, which should provide sufficient protection, without hindering the free market to unfold itself.
There is a reason programmers in the field are called "code monkeys". After 4-5 years, if you haven't moved on or up, you are either a real geek, or just love mind-numbing work. There's usually not much innovation going on, just translation of real world processes into the world of computers. At any time, you can usually be replaced by another guy, don't fool yourself. Same with patents. It is not unusual for many people around the globe to get the same ideas at the same time, because the bar to software is so low..
but in all "fairness" if someone had the idea first then why shouldn't they get some benefit from it ?
Because it isn't "fair", whatever that should mean? Neither is it supposed to be the reason for the patent system in the first place.
The test for non-obviousness was supposed to make patents innovative beyond mere ideas, ie. full documentation of implementations which otherwise would be lost in trade secrets and obfuscation. However, non-obviousness tests are seldom used for anything else than delay a certain application, until it is reworded enough to be granted. This makes sense to the patent office and state, which earns Big Money from granting a mind-numbing number of patents each year. It also makes sense for huge mega-corporations, because they get defensive and offensive patent portfolios to squash lesser competitors with. It even makes incredible sense for patent-trolls, as they can push/buy up patents from dying companies, and extort money, without risking anything themselves, as they are producing nothing of value themselves, only sue successful businesses through courts out of the remains of dying businesses..
This all works splendidly on the cost of everyone else: inventors who are restricted in arbitrary fashion and customers who are forced to buy inferior products at exessive prices. It makes any business a risky operation, because at any time, you can be sued into oblivion, despite otherwise successes in the marketplace. Thus, the state monopoly-granted patent system works against the free market.
If it was "fair", then if someone has an idea, they shouldn't be sued into oblivion when implementing their idea as a business or "free software", just because someone "thought of it first", which is not even proven beyond any reasonable doubt. If everyone gets the same idea, or if the patent is just a physical process translated into the world of computers and software, then it shouldn't be patentable at all, since it is an obvious invention, a natural evolution of software to scratch an obvious itch.
Of course, only big corporations have the money to build a huge patent portfolio, and then use it as a defense mechanism, or even aggressively attack GPL, BSD, open source and free software. You can bet your sorry ass, Mozilla Firefox, Linux and most complex software out there, already violates hundreds of patents. It's just because of bad PR, the dogs have been kept in leash, but we remember SCO, and it is not far-fetched some dying corporation with real ownership of patents, could go for licenses instead of competing in the marketplace.
Just because nobody has patented it yet, doesn't mean nobody has thought about it. Just because nobody has started doing business around it, doesn't mean there are 20 competitors working on it already. Patents usually just gets in the way and squash the little inventor trying to do business themselves. They then have no recourse but to find a huge corporation sugardaddy to implement their idea at all.
Patents were never supposed to cover ideas themselves, but certain implementations thereof. The problem with software, is that copyright already protects software, so there if you're going to cover something more, you need to rape your constitutional forefathers, as USA, land of the "free", is doing now.
Evolution, will sort itself out though. USA will go bankrupt into its own corruption, greed, war-mongering and neglect of the environment and its own citizens. Somewhere, in the free world, some country will ignore software patents, and through that gain competitive advantage.
However, it's not as bad and gloomy as you describe...
Just because you haven't experienced it yet, doesn't mean it doesn't happen.
I've seen too many forum posts with "my Vista doesn't support X sound card" or "they just released a crippled driver which removed X cool features from my sound card"!
For people who buy expensive cards and use them professionally, this behaviour is unacceptable. When Creative and its ilk behave this way, they should be boycotted and everyone warned about it.
Try some searches. I think you'll be surprised how much is still unsupported, or have been crippled in new versions in proprietary software.
Your post is one of the wisest I've read in a long time.
It's about people recognize different people serve different roles.
Stallman has his "free software" role to play.
Miguel has the "pragmatic software" role.
Ballmer has the "chair throwing" role.
Thanks! Nice to read such contributions to a discussion, and wish more people would read the comments before blurting out with the same comments on every topic.
Why post if you're just reiterating what has been said zillion times before?
I see you like the play of devil's advocate.
This goes against the spirit of the GPL.
However, in legal perspective (IANAL), I don't think it will work out like that. You see, either you accept the license (GPL) and you get to redistribute the software under the GPL license.
Or you don't accept the GPL license, in such case, copyright would still be with the original copyright holders.
Now, any works under copyright doesn't have to have been sold yet. You can always discuss the price with the copyright holder for proprietary use.
Better do it before using the code though, as you may have more bargaining power then.
The fact that you didn't, even if you didn't know, copyright still stands. The copyright holder can make you have to pull all your violating binaries / code from any distribution, which could actually cost alot by itself if infringement is big.
Price will be at market price, or whatever agreement with the copyright holder. Not sure if there are any limits to demands here.
Just because the sourcecode can be distributed under the GPL license doesn't mean it no longer have any market value. It can be relicensed under any other free or non-free license by the actual copyright holder (not those who merely redistribute under GPL), with or without monetary or other compensation.
This vibes very much with what other posters have said, that the GPL itself give value back in form of collaboration. If you don't want to collaborate with the rest of the world though, you gotta pay something else. Many companies are already using this strategy to make money off of GPLed software, selling their rights to companies who wants to do proprietary work.
Always remember: GPL == free software, GPL != free beer
I didn't know this thread was about convincing somebody that software patents can be ingenious. I am not about to argument *for* that position though, even if they are not of the "silly" kind.
RSA was patented. Where was the benefit to society. It only held off the use of RSA until it got opened again. Someone wanted to hold RSA away from the public, and patents was a perfect tool to wield that power, and delay crypto software for the masses for a while. Are we sheeple or what?
Software != Mathematics. However, when you are patenting a hardware device, you are patenting the implementation of it. Software patents however, seem to try to abolish all kinds of implementations on the *idea* itself.
Even if piece of software is ingenious, it seems to me just a way to avoid competition, and control the market. Nobody else can build on such "ingenuity", which also hinders innovation in many cases. It may bring innovation, just to circumvent the patent, but it seems a costly way to ensure innovation to me.
About cost. Patents are only costly for the small players. For bigger companies, they're just part of expenses of controlling the market. The cost of a patent is not really that much, and an individual can easily affort several patents without being really rich.
Then you have to think about the cost of being sued, for knowingly or unknowingly breaching a patent, and the overall work of ensuring you are not breaching patents, without reading them, because they are legally dangerous to read (triple damages!). Indeed, the whole patent thing seems more about control, power and squashing competition, rather than fostering innovation and contributing to sciences and arts. The real cost of patents is in the judicial system, where the smaller fish have very difficult time, especially if they are not a litiguous patent-holding company that produces nothing of they're own (then they are impervious to breaching patents, except maybe business patents).
There is nothing standing in the way of patenting mathematical formulas, if the legal system / politicians decide it. It will just further make things complicated and raise the barrier for everybody but the bigger players in the mathematical field too.
Patents will of course expire, but 20 years is a long time in the software industry. It seems silly to have to wait 20 years for every RSA. For most of these problems, you can usually come up with a competing and better implementation yourself in shorter time, however software patents seek to hinder that!
I just don't see any use for software patents, and maybe also many hardware patents are way overboard. They've just gone too far..
Hehe, whatever you imagine to be offensive, got deleted I think. Because no offense taken what is in your posts. I am usually very sensitive, but maybe because you are actually trying not to be aggressive, it doesn't hit? Dunno. Browsing /. earns you a thick online skin anyways. Too many insecure nerds I guess :)
It doesn't matter. If you are out to get the project accomplished, I have some suggestions along the road. Aside from being polite, which you are, that is a very constructive start.
I am by no way an UI designer though, but know what I like. Fact is, the XP UI seems good enough for me now, so anything new would have to be brilliant and simple, such as many of the Google interfaces. Examples: Google Search, labels/tags in GMail, Picasa, Photoshop, etc. I haven't tried Win7, but I think they haven't cleaned up their configuration yet, only changed things around, so many of my beefs with XP is still there. Maybe the taskbar is better though, haven't bothered to look that hard at it (if something works, I think people tend to stick with it).
Requirements gathering - you do have a list of requirements for the project, don't you? It should be treated like any regular company project, with requirements gathering, architecture, system design, etc. Requirements gathering will ensure you know *where* the project is heading, and *why* you do the design choices that you do. Ie., something might seem like a good idea (hello KDE), but putting every feature in, might actually make the product suck in the end. For many, KDE is overkill, and Gnome is just simpler and cleaner, like OS X. I usually use KDE though, since I'm a poweruser and want it to be more like Windows, so the features should be present, just hidden cleverly, as you already mentioned.
Requirements can be high-level goals of project success, and also a list of more low-level ones.
Instead of hiring programmers (sounds expensive, and the product might never take off). I would suggest find a prototype-language, ie. like Ruby, or Visual Basic, just something simple to get started on a prototype. I would prefer Ruby, since you could actually do many things in-language, and it could actually go all the way to production. It'll probably be fast enough.
So making a prototype, you are more free to do changes during development, and since you're the only guy who knows what you want, you can save time in so many ways. Not having to document too much, changing thins underway, and making something that actually works (according to you).
Then it's user acceptance testing. Getting someone else to use your system, get their complaints etc. Fun stuff! ;-) Often with such an experimental system, you will need to change half of the interface around, so it should be a little flexible from the start, but not invest too much time in classes and fancy frameworks either.. Just make it work.
It'll take longer time than you thought. So you should really just decide to go through with it, no matter how long it takes, or how it turns out.
Requirements should take care of the future of the product as well. Will you send the prototype to production. Will you give it off to KDE or Gnome, for them to implement the prototype in their frameworks? Will you sell the idea? Patent it? It should have a clear future, even before you begin, and even if you never really finish it, someone else might use the project to accomplish something.
And above all, have fun with it :-) Sounds like a fun project, and I like the *idea*, if you can accomplish all what you say you can :-)
In the end though, you would have to convince me and everybody else why we should leave our current system, which sorta works, for this. Maybe it shouldn't differ too much in basic functionality?
Sheltering kids until they're 18, not letting them speak to store employees or use the internet, earns an "F" in my book. All you've done is create an adult with the mental capacity of a 5-year-old. This new Canadian law that forbids kid from interacting with adults (online) is just plain stupid.
Nope, you're only making sure they will learn it from someone else. You never know who that someone might be, a troubled child, or a good-hearted curious child with solid parents, or anybody. But not from you.
The child is going to mature, one way or another. So still your solution sounds best to me.
Odds of this happening, zero. I think Google would face a lot of criticism if they made it that easy to dodge ISP tracking of their users.
DNS over encrypted channel? Would require some client-side changes on the OS / gateway level.
Google would get praise from me if they did something like that. DNS is far too insecure and open these days. UDP should be used for games, not for something you need to rely on.
Don't worry. Facebook will have all the detailed pictures :-)
Tell that to Sweden!
My thoughts exactly when seeing that code. It just didn't compile in my head, so have no other comment about the other stuff grandparent post tried to convey ;-)
Too much C / C++ in childhood.. Now it's Ruby all the way... ;-)
Of course this is what you get for using global variables in local loops.
You should teach the user about the use of local variables over global scope, and how he can even use a bit more creativity and use names like account_counter or row_index, or something other than "i". "i" is over-used when clearly a more descriptive name can even save you some comments, by conveying enough information just by its own name and general use..
E.g. This is a BAD comment: /* loop from 0 to 100 */
for (i=0; i=100; i++)
This doesn't need much comment other than maybe a higher-level one:
for account_index=0; account_index = 100; account_index++)
This actually sounds like Ruby, which once you get past the powerful, yet seductive syntax, you can actually write things in a much more compact way, while retaining the readability. It doesn't go too far, like making the whole code like reading prose (too much text is also horrible), but mixes minimal syntactic sugar with text and good function/variable names, so that you can write iterators and whatever language extension you need, while retaining the original meaning of what you're overloading, or just use the common ones. Beats the hell out of for i = 1 to 100, although you can use that convention too as a stepping stone until you get the dynamic beauty of intepreted prototype-like languages like Ruby.
Most Ruby libraries are actually thus very easy to read, since the same syntactic sugar are used over and over, to save lines of code, and convey the similar or exactly the same meaning, without repeating itself unnessesarily. It's neat to have one way of iterating, instead of so many variations like:
for i=1 to 100 do
i=1;while i = 100) break;end
etc.. You can still do this in Ruby, but since all Ruby-libraries (which span everything you will ever need) follow ruby conventions like "duck" typing, you will eventually start using the more "rubyesqe" conventions more and more. They just make more sense and give more flexibility.
Literate programming sounds neat, but actually Ruby with its DRY and other principles has practical solutions for spagghetti code. It does require programmers not indoctrinated with Perl though, as they will just go into their old routine to make a mess (just kiddin, almost ;-)
And while you're cleverly thinking about all this, the other guys have just finished another product for you to maintain. Horrible code too, but the customer bought it and now it needs to be maintained and upgraded, until it becomes a horrible spagghetti monster - and you start all over again with fresh code (but now YOU're on the team coding new things, and have such a deadline, you forget all your ramblings of "best practices", and just make some code that finally works).. You're not proud, you left that years ago, but you get paid.
He he.. why I left "IT"..