Do you have several pieces available for trade yet?
Are you uploading at a double-digit speed?
I'm currently downloading at 20.7K/s with Azureus.
As far as can a swarm be slashdotted or not, I've seen discussions of that topic, but with only 70 peers visible in the swarm right now, we are nowhere near the level of that happening.
The law of supply and demand, formulated by Alfred Marshall is "when goods are traded in a market at a price where consumers demand more goods than firms are prepared to supply, this shortage (or excess demand) will tend to lead to increases in the price of the goods." While conservatives tend to see this as not only true but a natural law, I and many others disagree with this statement as put. These are fairly involved arguments so it would be hard to summarize why, but I'll try (and fail - a short outline of the argument is unconvicing, although it gives one an idea of what the disagreement is about).
People who disagree with this law think that the price of an object is determined right before it is brought to market. In other words, a commodity does not go to a market where it finds its price, its price is known right before it is sent to market. It's price is determined by how much constant capital was spent on the commodity (raw materials, tool usage etc.) plus how much value the worker who created the commodity put into the commodity. This known, the price is already known.
Now there is only one question - will the object be exchangable? Will people buy it? If it is exchangable, the object is a commodity, if it is not, it is something that the factory owner has lost money producing. Which of course happens from time to time - think of all that fiber optic cable out there no one is using. Brought to market, the object may be sold for below cost, or even given away if it cannot be sold for its value. But this is an exception to the rule, not the norm, and is not how prices are found. It would be more like "the law of supply and demand when the producer loses money on what he produces".
In fact, before Alfred Marshall came up with his theory of supply and demand, what I am saying is what everyone believed. The conservatives rallied around Marshall, and others stayed with the old theory. I believe the older theory makes more sense. It is hard to explain it in a short Slashdot comment though, I've just explained the gist of it, there is more to it.
Actually, your statement has nothing to do with the economic law of supply and demand - which is focused on price, not the existence of black markets. Like the bible, the laws of capitalism are often contradicting. In the 1930's, during the Depression, almost everyone in the world felt capitalism had, like feudalism, run its course as an economic system - the USSR was going its way, Europe was swallowed by fascism, and the US began the New Deal with its government job programs and public projects like the TVA and Hoover Dam. Recessions, unemployment, currency crises and so forth are indications that these problems remain, as even mainstream New York Times columnist and economist Paul Krugman is fond of noting.
As far as the time to get a file, I think it depends on the file size. For big files, Bittorrent is clearly the best program. For smaller files, I felt Kazaa was superior to Gnutella for a while, but at a certain point Gnutella became equal and then better than Kazaa. The Gnutella protocol is constantly being developed, so what was bad a year ago might not be bad now. In my opinion, Gnutella is the best p2p application for files of less than several dozen megabytes of size. Beyond that, Bittorrent is better. If the Gnutella applications ever gets Partial File Sharing together they will be able to compete more for the larger file space.
I have had this discussion with different people, here is one thread about it. They suggested I do threading, but I've seen advice otherwise. And there are various articles discuss design, select(), poll() and threading, and which to use for which need. As I said, I have some ability as a C programmer, but am certainly not as confident in my design decisions as I would be setting up a collection of Unix systems to administer. The main reason I did threading is because gnut did threading, and I modeled gnutizen on gnut somewhat. I'm familiar with the select() call since I've been doing some socket timeouts with it. My program opens multiple sockets for outgoing and incoming connections, as well as sockets for multiple downloads and uploads of file.
I don't want to debug multi-threaded code, especially with mutex locking for global variables and all of that. Perhaps I will have another look at using select() for the sockets and see if it's feasible.
I develop a Gnutella p2p application (Gnutizen) and have often wondered why so much of the popular and innovative products are propietary, and not more open. Napster was the first. Kazaa was the first to have "superpeers", but its network is now totally locked. Edonkey was the first good program for downloading big files, but it is propietary (there are decent Windows clients, but I haven't found any on Linux I like yet). And now eXeem has a propietary on may levels network technically superior to Edonkey in terms of speed.
I don't know the answer, but I guess I'm more qualified to answer than many because I've been coding one on and off for the past three years. I guess the answer is it's hard work. You're also not "following head lights", as even the eDonkey clones do. And the programming is not easy - with C language it's socket programming, which means all kinds of strange things can come over the network which have to be defensively coded against, and since you're using multiple sockets that means threading. And it takes a lot of code to just get a decent app, never mind cool bells and whistles. One reason mine is GPL is, aside from liking the GPL, this is my first big software project so I don't feel I'm at a level where I can sell my code yet. I've also borrowed GPL code from a program called gnut which helped. I would borrow from one called GTK-Gnutella but it's so big and complex it's hard to directly borrow from.
Of course there are exceptions - Gnutella (although AOL/TW killed the eponymous one, leaving only the protocol clones), and Bittorrent. With the Gnutella protocol, Limewire and Bearshare are commercial companies, but they agree on an open protocol, which they share with some free clients (like mine).
There are so many innovations possible - Bittorrent is one of the recent ones - it built on what Edonkey did, allowing hundreds of megs of files to be transferred, except with Bittorrent, it added speed to the picture. So because Bittorrent exists, people now have a better chance of getting ISOs of Linux distros, Indymedia videos or whatnot. It's such a cool area I wonder why the propietary folks so often beat the free ones in terms of innovation. I guess it's a wash now with who innovates more. And also, with sockets, trheading and protocols that obsolete older versions as time goes on (ay de mi!), it takes so long to get a decent app together that innovation seems a long way off.
I suppose another reason is the RIAA/MPAA is suing p2p developers left and right - that might explain why people are hanging back somewhat. It's unfortunate this fear is stifling p2p innovation. In many ways it seems ridiculous to me - on BBSs in the 1980s you had a file section and a message board system. Sometimes you didn't even have a message board - just a file section. People have been trading and sharing files on computers for decades, all of a sudden such communal practices are tainted, with accusations flying on Slashdot on how people use p2p to break some new laws that the big corporations passed recently in Washington DC that protected their soi disant intellectual property. It's ridiculous - there were normal BBSs and warez BBSs back then, just as there is an equivalent nowadays on the Internet. It would be insane for US-legal (for now) things such as sharing ISOs or Indymedia videos is crushed by the evil capitalist bourgeois corporations.
We will call a spade a spade. That the US corporate media reports on what we say and refuses to even say we are calling the US imperialist tends to make me think we're on the right track (especially when the same corporations profiting from imperialism, like military contractor GE, also owns the media, like NBC). It might be hyperbole if the US didn't invade Iraq, wasn't sending billions every year to Israel and Colombia to oppress respectively Palestinians and indigenous non-whites, didn't have military bases in Japan, Thailand, Germany, Panama, Turkey, and Cuba, a country which has asked the US to leave for the past four and a half decades, to deaf ears of course. Of course, Cuba is then a good place to torture Afghani POWs, since the US doesn't have to worry about being asked to leave - the US has already been asked.
Your example of Japan as being a "true" imperialist is a laugh - Japan imperially invaded countries such as Vietnam, the Phillippines and so forth - in other words, countries which were already within the imperial dominions of Western countries. It's funny how Japan's invasion of the Phillipines is "true imperialism" while the US invasion of the Phillippines, which was fought for years (and is still being fought...by what the State Department calls "terrorists") was I guess not, for to call it that would be "extreme hyperbole" and "over the top".
I suppose when the commissars of US television news decree that the word imperialism is verboten, even when ascribed by others, then anyone using such language would seem extremely hyperbolic and over the top. The real skew however is how things are reported in the US corporate media versus how it is reported in the rest of the world. The concept that Vietnam, Nicaragua or Iraq are or were major threats to the existence of the US is about as hyperbolic as one can get, yet that was the common view one got reading and watching corporate news for the past decades.
"The activists in Brazil are generally united in their oppositon to what many call unbridled capitalism and the policies of the Bush administration." - Something said so often that it's practically a mantra of WSF activists is that they oppose unbridled capitalism (or capitalism, period), and imperialism. It's funny how the US corporate media chokes on printing that word, even when describing what someone else says, and changes it something vague like "the policies of the Bush administration". They won't even print the word when they're reporting on what activists say, it's like the BBC using an actor for Gerry Adams voice. I mean, go to Google News and search for the word imperialism - the first hit is a paleo-conservative web site, the second hit is a communist web site, then a South Korean site talking about Japanese WWII imperialism, then Al-Jazeera. It is one of those words commissars, I mean, editors, excise, even when they're just reporting about what someone said. The thing that gets me is not only do the mainstream corporate media not use the word, they won't even report when others use the word. Fox takes it to the point of ridiculousness, but it's not much different with NBC and so forth (owned by GE, which makes billions as a military contractor by the way).
The reason these projects are failures, or cost too much is because they are not being done out of need, but from strings pulled to dole out corporate welfare. Every industry the US is internationally competitive in (except maybe Hollywood) has (or had) most of it's R&D paid for by Uncle Sam - aerospace, the Internet, pharmaceutical companies and so forth. It's the old Keynesian thing of the government burying bills in old wine bottles and having some company come and dig them up. Government spending, which in the US usually means Pentagon spending, has been greasing the wheels of the US economy since FDR took office. The only difference between the two major parties is Republicans tend to want to build rockets/lasers that can shoot down rockets and that sort of thing, while Democrats want the money to go towards biotechnology and things like that. If you want to see what's going on, don't look at the end result and try to discern what went wrong, but look at the legislative process, and what pressures are in effect there. Billions of dollars was not really wasted - it made work for many people, imagine what unemployment would have been if it hadn't. It's the old bills in buried wine bottles story. I mean think of some of the ridiculous things proposed - billions for a "missile-defense shield"? It's just a way to spread money around. I don't like how the Democrats or Republicans do this, I have other ideas of how that money could be used for make-work.
As the article says, it is comments on form and style, not design, best coding practices and the like. Most of my form and style is automagic - "indent -kr *.c". The two things of minor interest here is he weighs in that underscores in variables are better, as well as his comments that we write code for ourselves and our brains (as well as others) to read. Much of the rest I've heard before.
I just skimmed through "Code Complete, Volume 2" and although form and style were not the most interesting things I learned from it, I learned more about them in the book than this article. For example, one change I made recently in my code due to CC v.2 is changing
array[4] = 5;// ttl
to:
int ttl; ttl = 5; array[4] = ttl;
Then again I like to mix// comments with/* */ in my C code, and I know some frown on that, but I don't care (unless I someday run into a compiler that barfs on it, I suppose). In some ways the above goes to this person's theme - the "keep it simple stupid" strategy is followed in the second example, not the first. Or in other words, simple does not necessarily mean "less code".
I learned a lot of good stuff from Code Complete and will have to check out other books I've been recommended (I have The Art of Computer Programming, but it is not the kind of quick and applicable type of book that Code Complete is, no "how to calm your boss down" advice in the middle of chapters). Especially ideas like functions should do one thing and do it well, functions should attempt to keep from using more than seven variables, the ideas of function cohesion and so forth.
I have not yet seen anything even approaching something like Code Complete on the web. I wonder why the free software community, which hopes to improve programming of its contributors, I'd think, has not written good, free stuff on how to write good code and put it on the web (aside from things like Linus's short CodingStyle). Some advice you don't even see much, like how to deal with APIs.
Perhaps the most important thing I've learned in all of this is that work pressure seems to create bad coding practices. I thought I'd try to get a job programming C to learn more on the job, but so many people complain about work pressure hurting their code, I think I'll stick to being a sysadmin, and writing code on my own time, at the pace I want.
The three major BSD's are FreeBSD, OpenBSD and NetBSD. OpenBSD is known as the secure BSD, NetBSD is known as the architecture portable BSD, and FreeBSD is known for many things. I've run servers using FreeBSD that I've been happy with.
A lot of people I know are impressed with OpenBSD's security and architecture. OpenBSD is also a major force behind some security things that Linux borrows, for example, my "apt-get install ssh" installed an SSH written by OpenSSH, which is associated with OpenBSD. If I was concerned with security, or wanted to get involved in kernel development, I might look at OpenBSD. Be that as it may, it seems like a niche, and is not as widely used as FreeBSD or necessarily aimed for a wide market.
NetBSD I am not very high on. It's thing is portability, and it has always been ahead of FreeBSD and OpenBSD, but sometimes even that has stalled, and it's one benefit hasn't been that impressive in comparison. Currently that is not true, but it seems cyclical. Unless you're interested in architecture portability, I'd avoid it. IMHO the best coders went to OpenBSD in the NetBSD/OpenBSD split. But if you need artchitecture portability above all, from time to time NetBSD shines in that area.
FreeBSD to me is the "Linux" of the BSD's. If I wanted security or to hack on the OS, I'd get OpenBSD, but otherwise, I'd get FreeBSD. I've been using FreeBSD and Linux since the mid 1990s, and although I'm more of a Linux person, I've always liked things about FreeBSD. One thing that I feel helps it propogate is I feel the install is easier than a lot of the big Linux distributions. In the mid 1990s, it used to support my crappy NE2000 compatible cards when Slackware Linux didn't, so I wound up installing FreeBSD for servers I originally was going to run Linux. In 2002 or so, I needed a UNIX on my Intel box which only had a 56K modem to do a network install - I got the floppies for FreeBSD, Red Hat and some other Linux distro I forget. Only FreeBSD was able to do the install. I've always thought their installation process was superb. I've also used FreeBSD as a desktop and a server and have been happy with it as both. I prefer Linux, but FreeBSD is a nice competitor to Linux, and some things, like installation, it seems to do better in.
What does this have to do with capitalism? In primitive communist societies, the strong ideas of making fire and the wheel survived, roads and aqueducts from the Roman slave system, and gunpowder during the feudal system. A better mousetrap (or weapon) benefited the lords, slave owners, and tribes of days past. The USSR invented and improved it's production conditions throughout the 1930s (when the US and European economies were virtually dead), and launched the first satellite in the 1950s. And most of the programs we're talking about here were not financed by capitalists - Emacs, gcc and so forth. You're taking something obvious, then applying it to some system trying to make a causation that is not there. It would be like a minister trying to equate "being good" with "being Christian", trying to confer something obviously good on his little dogmatic system.
Capitalism is a system where there are two classes: workers who do all the work and create all of the wealth, and capitalists who do not have to work, and who expropriate surplus labor value from workers. What connection this system has do do with strong ideas surviving, presumably meaning increased production, is beyond me.
In capitalism, 1% of the population benefits from increased production - just look at the USA, where the average inflation-adjusted hourly wage is below what it was 30 years ago. In a social system where say, workers control the capital they work with, and have no class expropriating the wealth they create, the people creating the wealth (the workers) benefit from good and strong ideas as well. Just as in the slave economic system, the better idea of the cotton gin won out, so in the capitalist economic system, inventing beepers and putting them on all your programmers and admins makes your company more profitable. The competition of ideas has nothing to do with capitalism, which is a system of domination of one class over another, than it does with any other economic system, past, present or future.
Hand exercises are one thing. Another is to change your equipment up. If you use a trackball mouse at home and a standard scrolling mouse at work. That cuts down on half your muscle repetition. You also have a left and right hand, switch mouse use every X minutes (60, 30, more often if need be). If your hands start hurting, take a break if you can. In fact, take a break if you can before you hurt, you shouldn't type and mouse scroll uninterruptedly for hours on end. Take a break. Use the hand that doesn't hurt for a while and let the other one rest.
You should also do stretches for your hands and wrists. There are web pages and books on what stretches to do if you have RSI.
Some people I know have bad RSI and use the gloves, the ergonomic split keyboards (best to have different ones - different keyboards and mice use different muscles - even switching your keyboard between elevated and non-elevated does, although it's best to keep it usually in the most ergonomic position.
This is all indicative of the sad shape of the "profession". If one could call this a profession - real professions have professional associations, lawyers have the ABA, doctors have the AMA, dentists have the ADA. These people would not allow something like RSI to creep up like this without warnings, company notices etc. I had sexual harrassment training in my company (as did everyone) - why didn't I have safety training? Also, according to Washington DC, RSI does not exist, this is all in your mind, and the mind of lots of other programmers. And don't tell me the IEEE is a professional association, it takes money from employers, and is in sad shape in many ways (although there are some members within it trying to improve it). USENIX and its organizations are employer-dominated as well. And they are the ones spreading money around Washington saying RSI does not exist. Washtech, Techs Unite, the Programmers Guild are all good organizations, people need to make waves in the IEEE and USENIX, and people even need to go to their local Linux User Group and talk about these non-technical issues once in a while. Someone whose job involves typing for a living who has very broken wrists before reaching 30 - it's not pretty.
With all this talk of spyware, open source and so forth I've taken a look at the protocol, using WINE and tcpdump. I might use a tool other than tcpdump later.
Anyhow, I've booted it up a few times. When I click refresh on new files, it starts making TCP/IP connections to port 4000 of various hosts. I then send the TCP/IP header plus the packet itself. In hexidecimal value, these packets usually begin "02-04-05". Then I send "b4-04-02-08-0a". Then I send "00-XX-XX-XX-00-00-00-00-01-03-03-00". The X's change each connection - they seem to be incrementing. So that's my handshake. The response also begins "02-04-05" with 9 bytes after that. Then I send 10 bytes. That's when the remote host starts sending me big packets.
Well, I just started looking at it so it's still a mystery although I think I've seen some patterns. Anyhow, anyone interested in this can discuss it here, or go on the usual Freenode IRC channels (#p2p-hackers, #bittorrent etc.)
I have read through the responses and will explain more.
A lot of people have dwelled on the word critical. I could have expanded this to mean both critical and important machines. Our critical machines were highly available, with hot standby redundant hardware (as were their RAID arrays and such). But we rebooted the running systems and then the standbys every week to make sure the failover would work. I do not know why people presume that a scheduled reboot means we have no failover. We have to know the failover would work!
Some people alluded to that perhaps Saturday night scheduled applications might prevent a reboot. This was true, we had a few machines that processed data from Monday morning all the way into Sunday afternoon, after which they were rebooted.
Someone else said "Yeah, scheduled, as part of a disaster recovery test once a year, maybe. Weekly scheduled reboots are a sign of shitty systems. How often do you reboot your Cisco routers?"
As I said, we had servers that did not come up every single week. Something to be expected in an environment with thousands of servers. If virtually every week there is a problem with some servers, then once a week is often enough to reboot. We would have probably done it more often except too many machines were running all day during weekdays, as well as machines which absolutely had to be working by 9AM. Rebooting on Saturday evening gave us two days to fix problems and escalate problems. As far as shitty systems - there were some things I was unhappy with, but a lot of things were done right. Some the people in systems engineering were smarter than you and me put together I'm sure, F100 companies can afford these people. As far as how often we rebooted Cisco routers - every week. We had redundant routers and switches where needed. I worked in systems so know only a little IOS or about the network administration maintenance there, so I don't know what exceptions they made, or what happened to routing tables in memory or such.
"Note his words, that he did this every weekend 'instead of during the week when a reboot of a critical machine that did not work would be much worse.' This does not describe a robust, high-availability system, it describes excuses for crap." I definitely disagree with this. We had Sun Enterprise 6500s on VCS with redundant RAID arrays that ran from 9AM to 5PM where one machine alone would process *billions* of dollars worth of transactions. After this, they would spend 5PM to 11PM or so processing (or offloading) this data. If we rebooted these machines at midnight, and they did not come up, they would absolutely have to be up by 9AM. This is not an excuse for crap, it would be insane to do such a reboot. And as far as crap, we had trouble from everyone - Microsoft, Sun, EMC, whoever - all of these people produced machines or software with defects, sometimes which we discovered - I don't know what your solution is to avoiding vendors who never introduce such errors, if you know of any vendors who have perfect products, I'd love to know. You do not sound like someone who has worked in an environment where critical machines need to be working by 9AM so as to do billions of dollars worth of transactions, your suggestion that if we can't reboot on midnight during a weekday our system is crap is insane.
"If it's a critical server, your infrastructure should be such that it never power cycles." - well we are located in New York City and we had a blackout in 2003, as did much of the northeast. It started during a workday, on a Thursday, and on Friday morning electricity was still not functioning. So you are running all systems on UPS backup for 24 hours. Systems processing billions of dollars in transactions. Our systems did not power cycle, and ran on battery power for 24 hours, but your assertion that "your infrastructure should be such that it never power cycles" is ridiculous. In such a situation, I would be much happier knowing my machines had all rebooted fine days ago, instead of knowing the
"They had problems to come back up fast, because of '9 machines with faulty motherboards with embedded NICs that don't do auto-negotiation properly", Machines not fully rebooting for analysis reasons and few others.'"
I was a sysadmin at a Fortune 100 company with thousands of servers. Every Saturday evening, we rebooted all of our servers. We almost always had several machines which would not come back up for one reason or another - so we dealt with it then, on Sunday morning, instead of during the week when a reboot of a critical machine that did not work would be much worse. Scheduled reboots are a part of good systems administration. If once a week is too often, then once every two weeks, or once a month. With this much failure, I'm almost certain they never did scheduled reboots. They had two failures - their power failed, and then their lack of planning allowed for so much to go wrong a result of that.
I've a developed p2p program (Gnutizen - it can search and download files in Gnutella, but it's still beta and buggy) and have many ideas of where p2p can go in a technical sense. But if one puts sharing copyrighted works aside, there seems to be one main purpose to p2p - lowering distribution costs. If I am some kid in Portugal who writes a great Linux distribution, but can't afford to pay for the bandwidth of many people download 700MB ISO's from a web server every day, I can instead put up a torrent and leave it with one seed, throttling the speed to whatever I want.
Of course, p2p right now is often thought of as a single file - an ISO, an mpg, an mp3, a zip file). I see nugget has posted in this thread - the peer-to-peer programs which he currently helps maintain use p2p to do operation distribution, not file distribution. As does Folding@Home (which studies protein/gene problems in a distributed manner) and SETI. GPU is interesting in this respect as you are the one deciding what operations to perform - from adding 1 and 1, to calculating pi, to whatever. I really like Freenet - it is a very versatile protocol so that web pages, Usenet type forums, and even (small) file trading are all possible. I've even seen people play chess games over frost. And as a bonus, there is the option of (some degree of) anonymity on Freenet, so that is an added bonus.
I really would love to see someone with no money to host such thing create something as complex as Slashdot, with moderation system and all, and do it over p2p, maybe on something like Freenet, or maybe something else. The same with things like Wikipedia. Nowadays, the little guy is punished by high bandwidth costs if what he made is popular. With p2p this is not a problem any more.
...but this kind of crap embarrasses me. There are a lot of small things that are wrong with the US, but this goes a little over the line and pops up as an indication of how far things have gone. I know a lot of people who moved to Atlanta and work at tech companies down there, and are raising their children there. I couldn't imagine having a child and sending him or her to a school controlled by the same kind of fanatics that run madrasas in third world countries. I read in Mississippi, 10% of students receive corporal punishment at least once a year. This is about as far removed from the kind of Deweyist, scientific education I'd want my children to have if I ever have children. I have a little bit of an in at getting an IT job in the EU (I can get dual citizenship and work in the EU if I want). If I could get all my ducks in a row I'd leave the US in a heartbeat. The US has been on a downward spiral since the late 1960's/early 1970's, especially in relative economic terms. Looking 20-30 years out, I don't think it's going to be the kind of place a white collar family would want to be (or a blue collar one for that matter, but they're stuck here). The best global students are switching from US to European universities, third world countries are switching from the dollar to the euro, and I have a feeling Europe is where a lot of the coming biotech boom will be as well. Hopefully I can accomplish the big move in the next few years.
I used to run a game site which was a little like Geocities - anyone could make a web page for their game's clan or guild or what have you. Of course, this means I gave up some control of content, although I did erase stuff (not only for legal reasons, but for bandwidth/disk space reasons) not related to this if it wasn't legal or took up too much disk space or bandwidth if I noticed it.
Anyhow I received one legal letter while running this medium-sized site - from Blizzard. Someone had posted a utility to edit maps in Starcraft or something like that. I wasn't sure if this was actually illegal, but I couldn't afford to get sued, so of course I took it down. I understand they are sue-happy like that.
Bill Gates posted to net.micro on July 22, 1983 from microsoft.uucp (from the account of Gordon Letwin, although he signs it as himself) talking about his crazy days at Harvard where he learned to do PEEKs and POKEs (cool, If I was using my Commodore-64 right now I'd do a POKE 53281,6 in honor of Bill)
Are you behind a firewall?
Do you have several pieces available for trade yet?
Are you uploading at a double-digit speed?
I'm currently downloading at 20.7K/s with Azureus.
As far as can a swarm be slashdotted or not, I've seen discussions of that topic, but with only 70 peers visible in the swarm right now, we are nowhere near the level of that happening.
People who disagree with this law think that the price of an object is determined right before it is brought to market. In other words, a commodity does not go to a market where it finds its price, its price is known right before it is sent to market. It's price is determined by how much constant capital was spent on the commodity (raw materials, tool usage etc.) plus how much value the worker who created the commodity put into the commodity. This known, the price is already known.
Now there is only one question - will the object be exchangable? Will people buy it? If it is exchangable, the object is a commodity, if it is not, it is something that the factory owner has lost money producing. Which of course happens from time to time - think of all that fiber optic cable out there no one is using. Brought to market, the object may be sold for below cost, or even given away if it cannot be sold for its value. But this is an exception to the rule, not the norm, and is not how prices are found. It would be more like "the law of supply and demand when the producer loses money on what he produces".
In fact, before Alfred Marshall came up with his theory of supply and demand, what I am saying is what everyone believed. The conservatives rallied around Marshall, and others stayed with the old theory. I believe the older theory makes more sense. It is hard to explain it in a short Slashdot comment though, I've just explained the gist of it, there is more to it.
Actually, your statement has nothing to do with the economic law of supply and demand - which is focused on price, not the existence of black markets. Like the bible, the laws of capitalism are often contradicting. In the 1930's, during the Depression, almost everyone in the world felt capitalism had, like feudalism, run its course as an economic system - the USSR was going its way, Europe was swallowed by fascism, and the US began the New Deal with its government job programs and public projects like the TVA and Hoover Dam. Recessions, unemployment, currency crises and so forth are indications that these problems remain, as even mainstream New York Times columnist and economist Paul Krugman is fond of noting.
As far as the time to get a file, I think it depends on the file size. For big files, Bittorrent is clearly the best program. For smaller files, I felt Kazaa was superior to Gnutella for a while, but at a certain point Gnutella became equal and then better than Kazaa. The Gnutella protocol is constantly being developed, so what was bad a year ago might not be bad now. In my opinion, Gnutella is the best p2p application for files of less than several dozen megabytes of size. Beyond that, Bittorrent is better. If the Gnutella applications ever gets Partial File Sharing together they will be able to compete more for the larger file space.
Yes I looked at this. It seemed to be written in Objective CAML, which is not as well known as some of the more popular languages.
I don't want to debug multi-threaded code, especially with mutex locking for global variables and all of that. Perhaps I will have another look at using select() for the sockets and see if it's feasible.
I don't know the answer, but I guess I'm more qualified to answer than many because I've been coding one on and off for the past three years. I guess the answer is it's hard work. You're also not "following head lights", as even the eDonkey clones do. And the programming is not easy - with C language it's socket programming, which means all kinds of strange things can come over the network which have to be defensively coded against, and since you're using multiple sockets that means threading. And it takes a lot of code to just get a decent app, never mind cool bells and whistles. One reason mine is GPL is, aside from liking the GPL, this is my first big software project so I don't feel I'm at a level where I can sell my code yet. I've also borrowed GPL code from a program called gnut which helped. I would borrow from one called GTK-Gnutella but it's so big and complex it's hard to directly borrow from.
Of course there are exceptions - Gnutella (although AOL/TW killed the eponymous one, leaving only the protocol clones), and Bittorrent. With the Gnutella protocol, Limewire and Bearshare are commercial companies, but they agree on an open protocol, which they share with some free clients (like mine).
There are so many innovations possible - Bittorrent is one of the recent ones - it built on what Edonkey did, allowing hundreds of megs of files to be transferred, except with Bittorrent, it added speed to the picture. So because Bittorrent exists, people now have a better chance of getting ISOs of Linux distros, Indymedia videos or whatnot. It's such a cool area I wonder why the propietary folks so often beat the free ones in terms of innovation. I guess it's a wash now with who innovates more. And also, with sockets, trheading and protocols that obsolete older versions as time goes on (ay de mi!), it takes so long to get a decent app together that innovation seems a long way off.
I suppose another reason is the RIAA/MPAA is suing p2p developers left and right - that might explain why people are hanging back somewhat. It's unfortunate this fear is stifling p2p innovation. In many ways it seems ridiculous to me - on BBSs in the 1980s you had a file section and a message board system. Sometimes you didn't even have a message board - just a file section. People have been trading and sharing files on computers for decades, all of a sudden such communal practices are tainted, with accusations flying on Slashdot on how people use p2p to break some new laws that the big corporations passed recently in Washington DC that protected their soi disant intellectual property. It's ridiculous - there were normal BBSs and warez BBSs back then, just as there is an equivalent nowadays on the Internet. It would be insane for US-legal (for now) things such as sharing ISOs or Indymedia videos is crushed by the evil capitalist bourgeois corporations.
Your example of Japan as being a "true" imperialist is a laugh - Japan imperially invaded countries such as Vietnam, the Phillippines and so forth - in other words, countries which were already within the imperial dominions of Western countries. It's funny how Japan's invasion of the Phillipines is "true imperialism" while the US invasion of the Phillippines, which was fought for years (and is still being fought...by what the State Department calls "terrorists") was I guess not, for to call it that would be "extreme hyperbole" and "over the top".
I suppose when the commissars of US television news decree that the word imperialism is verboten, even when ascribed by others, then anyone using such language would seem extremely hyperbolic and over the top. The real skew however is how things are reported in the US corporate media versus how it is reported in the rest of the world. The concept that Vietnam, Nicaragua or Iraq are or were major threats to the existence of the US is about as hyperbolic as one can get, yet that was the common view one got reading and watching corporate news for the past decades.
"The activists in Brazil are generally united in their oppositon to what many call unbridled capitalism and the policies of the Bush administration." - Something said so often that it's practically a mantra of WSF activists is that they oppose unbridled capitalism (or capitalism, period), and imperialism. It's funny how the US corporate media chokes on printing that word, even when describing what someone else says, and changes it something vague like "the policies of the Bush administration". They won't even print the word when they're reporting on what activists say, it's like the BBC using an actor for Gerry Adams voice. I mean, go to Google News and search for the word imperialism - the first hit is a paleo-conservative web site, the second hit is a communist web site, then a South Korean site talking about Japanese WWII imperialism, then Al-Jazeera. It is one of those words commissars, I mean, editors, excise, even when they're just reporting about what someone said. The thing that gets me is not only do the mainstream corporate media not use the word, they won't even report when others use the word. Fox takes it to the point of ridiculousness, but it's not much different with NBC and so forth (owned by GE, which makes billions as a military contractor by the way).
The reason these projects are failures, or cost too much is because they are not being done out of need, but from strings pulled to dole out corporate welfare. Every industry the US is internationally competitive in (except maybe Hollywood) has (or had) most of it's R&D paid for by Uncle Sam - aerospace, the Internet, pharmaceutical companies and so forth. It's the old Keynesian thing of the government burying bills in old wine bottles and having some company come and dig them up. Government spending, which in the US usually means Pentagon spending, has been greasing the wheels of the US economy since FDR took office. The only difference between the two major parties is Republicans tend to want to build rockets/lasers that can shoot down rockets and that sort of thing, while Democrats want the money to go towards biotechnology and things like that. If you want to see what's going on, don't look at the end result and try to discern what went wrong, but look at the legislative process, and what pressures are in effect there. Billions of dollars was not really wasted - it made work for many people, imagine what unemployment would have been if it hadn't. It's the old bills in buried wine bottles story. I mean think of some of the ridiculous things proposed - billions for a "missile-defense shield"? It's just a way to spread money around. I don't like how the Democrats or Republicans do this, I have other ideas of how that money could be used for make-work.
I just skimmed through "Code Complete, Volume 2" and although form and style were not the most interesting things I learned from it, I learned more about them in the book than this article. For example, one change I made recently in my code due to CC v.2 is changing
to:Then again I like to mixI learned a lot of good stuff from Code Complete and will have to check out other books I've been recommended (I have The Art of Computer Programming, but it is not the kind of quick and applicable type of book that Code Complete is, no "how to calm your boss down" advice in the middle of chapters). Especially ideas like functions should do one thing and do it well, functions should attempt to keep from using more than seven variables, the ideas of function cohesion and so forth.
I have not yet seen anything even approaching something like Code Complete on the web. I wonder why the free software community, which hopes to improve programming of its contributors, I'd think, has not written good, free stuff on how to write good code and put it on the web (aside from things like Linus's short CodingStyle). Some advice you don't even see much, like how to deal with APIs.
Perhaps the most important thing I've learned in all of this is that work pressure seems to create bad coding practices. I thought I'd try to get a job programming C to learn more on the job, but so many people complain about work pressure hurting their code, I think I'll stick to being a sysadmin, and writing code on my own time, at the pace I want.
A lot of people I know are impressed with OpenBSD's security and architecture. OpenBSD is also a major force behind some security things that Linux borrows, for example, my "apt-get install ssh" installed an SSH written by OpenSSH, which is associated with OpenBSD. If I was concerned with security, or wanted to get involved in kernel development, I might look at OpenBSD. Be that as it may, it seems like a niche, and is not as widely used as FreeBSD or necessarily aimed for a wide market.
NetBSD I am not very high on. It's thing is portability, and it has always been ahead of FreeBSD and OpenBSD, but sometimes even that has stalled, and it's one benefit hasn't been that impressive in comparison. Currently that is not true, but it seems cyclical. Unless you're interested in architecture portability, I'd avoid it. IMHO the best coders went to OpenBSD in the NetBSD/OpenBSD split. But if you need artchitecture portability above all, from time to time NetBSD shines in that area.
FreeBSD to me is the "Linux" of the BSD's. If I wanted security or to hack on the OS, I'd get OpenBSD, but otherwise, I'd get FreeBSD. I've been using FreeBSD and Linux since the mid 1990s, and although I'm more of a Linux person, I've always liked things about FreeBSD. One thing that I feel helps it propogate is I feel the install is easier than a lot of the big Linux distributions. In the mid 1990s, it used to support my crappy NE2000 compatible cards when Slackware Linux didn't, so I wound up installing FreeBSD for servers I originally was going to run Linux. In 2002 or so, I needed a UNIX on my Intel box which only had a 56K modem to do a network install - I got the floppies for FreeBSD, Red Hat and some other Linux distro I forget. Only FreeBSD was able to do the install. I've always thought their installation process was superb. I've also used FreeBSD as a desktop and a server and have been happy with it as both. I prefer Linux, but FreeBSD is a nice competitor to Linux, and some things, like installation, it seems to do better in.
Capitalism is a system where there are two classes: workers who do all the work and create all of the wealth, and capitalists who do not have to work, and who expropriate surplus labor value from workers. What connection this system has do do with strong ideas surviving, presumably meaning increased production, is beyond me.
In capitalism, 1% of the population benefits from increased production - just look at the USA, where the average inflation-adjusted hourly wage is below what it was 30 years ago. In a social system where say, workers control the capital they work with, and have no class expropriating the wealth they create, the people creating the wealth (the workers) benefit from good and strong ideas as well. Just as in the slave economic system, the better idea of the cotton gin won out, so in the capitalist economic system, inventing beepers and putting them on all your programmers and admins makes your company more profitable. The competition of ideas has nothing to do with capitalism, which is a system of domination of one class over another, than it does with any other economic system, past, present or future.
How long until they become sentient and turn on us?
Hand exercises are one thing. Another is to change your equipment up. If you use a trackball mouse at home and a standard scrolling mouse at work. That cuts down on half your muscle repetition. You also have a left and right hand, switch mouse use every X minutes (60, 30, more often if need be). If your hands start hurting, take a break if you can. In fact, take a break if you can before you hurt, you shouldn't type and mouse scroll uninterruptedly for hours on end. Take a break. Use the hand that doesn't hurt for a while and let the other one rest.
You should also do stretches for your hands and wrists. There are web pages and books on what stretches to do if you have RSI.
Some people I know have bad RSI and use the gloves, the ergonomic split keyboards (best to have different ones - different keyboards and mice use different muscles - even switching your keyboard between elevated and non-elevated does, although it's best to keep it usually in the most ergonomic position.
This is all indicative of the sad shape of the "profession". If one could call this a profession - real professions have professional associations, lawyers have the ABA, doctors have the AMA, dentists have the ADA. These people would not allow something like RSI to creep up like this without warnings, company notices etc. I had sexual harrassment training in my company (as did everyone) - why didn't I have safety training? Also, according to Washington DC, RSI does not exist, this is all in your mind, and the mind of lots of other programmers. And don't tell me the IEEE is a professional association, it takes money from employers, and is in sad shape in many ways (although there are some members within it trying to improve it). USENIX and its organizations are employer-dominated as well. And they are the ones spreading money around Washington saying RSI does not exist. Washtech, Techs Unite, the Programmers Guild are all good organizations, people need to make waves in the IEEE and USENIX, and people even need to go to their local Linux User Group and talk about these non-technical issues once in a while. Someone whose job involves typing for a living who has very broken wrists before reaching 30 - it's not pretty.
I also found calls to Cybergold, Cydoor and the like.
Anyhow, I've booted it up a few times. When I click refresh on new files, it starts making TCP/IP connections to port 4000 of various hosts. I then send the TCP/IP header plus the packet itself. In hexidecimal value, these packets usually begin "02-04-05". Then I send "b4-04-02-08-0a". Then I send "00-XX-XX-XX-00-00-00-00-01-03-03-00". The X's change each connection - they seem to be incrementing. So that's my handshake. The response also begins "02-04-05" with 9 bytes after that. Then I send 10 bytes. That's when the remote host starts sending me big packets.
Well, I just started looking at it so it's still a mystery although I think I've seen some patterns. Anyhow, anyone interested in this can discuss it here, or go on the usual Freenode IRC channels (#p2p-hackers, #bittorrent etc.)
A lot of people have dwelled on the word critical. I could have expanded this to mean both critical and important machines. Our critical machines were highly available, with hot standby redundant hardware (as were their RAID arrays and such). But we rebooted the running systems and then the standbys every week to make sure the failover would work. I do not know why people presume that a scheduled reboot means we have no failover. We have to know the failover would work!
Some people alluded to that perhaps Saturday night scheduled applications might prevent a reboot. This was true, we had a few machines that processed data from Monday morning all the way into Sunday afternoon, after which they were rebooted.
Someone else said "Yeah, scheduled, as part of a disaster recovery test once a year, maybe. Weekly scheduled reboots are a sign of shitty systems. How often do you reboot your Cisco routers?" As I said, we had servers that did not come up every single week. Something to be expected in an environment with thousands of servers. If virtually every week there is a problem with some servers, then once a week is often enough to reboot. We would have probably done it more often except too many machines were running all day during weekdays, as well as machines which absolutely had to be working by 9AM. Rebooting on Saturday evening gave us two days to fix problems and escalate problems. As far as shitty systems - there were some things I was unhappy with, but a lot of things were done right. Some the people in systems engineering were smarter than you and me put together I'm sure, F100 companies can afford these people. As far as how often we rebooted Cisco routers - every week. We had redundant routers and switches where needed. I worked in systems so know only a little IOS or about the network administration maintenance there, so I don't know what exceptions they made, or what happened to routing tables in memory or such.
"Note his words, that he did this every weekend 'instead of during the week when a reboot of a critical machine that did not work would be much worse.' This does not describe a robust, high-availability system, it describes excuses for crap." I definitely disagree with this. We had Sun Enterprise 6500s on VCS with redundant RAID arrays that ran from 9AM to 5PM where one machine alone would process *billions* of dollars worth of transactions. After this, they would spend 5PM to 11PM or so processing (or offloading) this data. If we rebooted these machines at midnight, and they did not come up, they would absolutely have to be up by 9AM. This is not an excuse for crap, it would be insane to do such a reboot. And as far as crap, we had trouble from everyone - Microsoft, Sun, EMC, whoever - all of these people produced machines or software with defects, sometimes which we discovered - I don't know what your solution is to avoiding vendors who never introduce such errors, if you know of any vendors who have perfect products, I'd love to know. You do not sound like someone who has worked in an environment where critical machines need to be working by 9AM so as to do billions of dollars worth of transactions, your suggestion that if we can't reboot on midnight during a weekday our system is crap is insane.
"If it's a critical server, your infrastructure should be such that it never power cycles." - well we are located in New York City and we had a blackout in 2003, as did much of the northeast. It started during a workday, on a Thursday, and on Friday morning electricity was still not functioning. So you are running all systems on UPS backup for 24 hours. Systems processing billions of dollars in transactions. Our systems did not power cycle, and ran on battery power for 24 hours, but your assertion that "your infrastructure should be such that it never power cycles" is ridiculous. In such a situation, I would be much happier knowing my machines had all rebooted fine days ago, instead of knowing the
I was a sysadmin at a Fortune 100 company with thousands of servers. Every Saturday evening, we rebooted all of our servers. We almost always had several machines which would not come back up for one reason or another - so we dealt with it then, on Sunday morning, instead of during the week when a reboot of a critical machine that did not work would be much worse. Scheduled reboots are a part of good systems administration. If once a week is too often, then once every two weeks, or once a month. With this much failure, I'm almost certain they never did scheduled reboots. They had two failures - their power failed, and then their lack of planning allowed for so much to go wrong a result of that.
Of course, p2p right now is often thought of as a single file - an ISO, an mpg, an mp3, a zip file). I see nugget has posted in this thread - the peer-to-peer programs which he currently helps maintain use p2p to do operation distribution, not file distribution. As does Folding@Home (which studies protein/gene problems in a distributed manner) and SETI. GPU is interesting in this respect as you are the one deciding what operations to perform - from adding 1 and 1, to calculating pi, to whatever. I really like Freenet - it is a very versatile protocol so that web pages, Usenet type forums, and even (small) file trading are all possible. I've even seen people play chess games over frost. And as a bonus, there is the option of (some degree of) anonymity on Freenet, so that is an added bonus.
I really would love to see someone with no money to host such thing create something as complex as Slashdot, with moderation system and all, and do it over p2p, maybe on something like Freenet, or maybe something else. The same with things like Wikipedia. Nowadays, the little guy is punished by high bandwidth costs if what he made is popular. With p2p this is not a problem any more.
...but this kind of crap embarrasses me. There are a lot of small things that are wrong with the US, but this goes a little over the line and pops up as an indication of how far things have gone. I know a lot of people who moved to Atlanta and work at tech companies down there, and are raising their children there. I couldn't imagine having a child and sending him or her to a school controlled by the same kind of fanatics that run madrasas in third world countries. I read in Mississippi, 10% of students receive corporal punishment at least once a year. This is about as far removed from the kind of Deweyist, scientific education I'd want my children to have if I ever have children. I have a little bit of an in at getting an IT job in the EU (I can get dual citizenship and work in the EU if I want). If I could get all my ducks in a row I'd leave the US in a heartbeat. The US has been on a downward spiral since the late 1960's/early 1970's, especially in relative economic terms. Looking 20-30 years out, I don't think it's going to be the kind of place a white collar family would want to be (or a blue collar one for that matter, but they're stuck here). The best global students are switching from US to European universities, third world countries are switching from the dollar to the euro, and I have a feeling Europe is where a lot of the coming biotech boom will be as well. Hopefully I can accomplish the big move in the next few years.
Anyhow I received one legal letter while running this medium-sized site - from Blizzard. Someone had posted a utility to edit maps in Starcraft or something like that. I wasn't sure if this was actually illegal, but I couldn't afford to get sued, so of course I took it down. I understand they are sue-happy like that.
Bill Gates posted to net.micro on July 22, 1983 from microsoft.uucp (from the account of Gordon Letwin, although he signs it as himself) talking about his crazy days at Harvard where he learned to do PEEKs and POKEs (cool, If I was using my Commodore-64 right now I'd do a POKE 53281,6 in honor of Bill)
Slashdot dutifully reported this three years ago as well, with the same exact link.
if you mean "just released" in the Slashdot way, e.g. over three years ago.
There's no such thing as unbiased.