Some people don't understand the fundamentals of TCP's congestion control/flow control. Bit torrent is a very greedy, selfish, egocentric, abusive (keep going with the adjectives) algorithm. It takes advantage of TCP's mechanism to provide fairness, and use it to abuse the rest of the users. While people is excited about it's performance to selfishly downloading data, the widespread of these type of algorithms may lead to unusable networks. Particularly, because there is no queue management enforced and marking mechanisms are not used by default, therefore, routers will drop packets and the end effect is a large number of retransmitted packets.
What algorithms exactly are you talking about, and exactly how do they
"[take] advantage of TCP's mechanism to provide fairness, and use it to abuse the rest of the users"?
As far as I can tell the bittorrent protocol just does what e.g. FTP does: pushes lots of data
through TCP long-lived connections.
Perhaps you need a better TCP implementation?
When torrent support comes equipped on all the major browsers, it can take off.
I use Opera exclusively. Do I use their torrent function? No. It seems pretty decent, but it's
much simpler to use a dedicated client (rtorrent) so whatever I do to the browser doesn't affect my file-sharing.
That way I can also run it on my server rather than on my desktop, which I shut down when I'm away.
Until then it's a tool for nerds to get their porn faster.
Yeah, and the tiny, fringe minority who download pirated music and movies...
Things like garbage collection are a nightmare when improperly implemented in a C program, while it's automatically handled in higher level languages.
Uh, in the C world we call it "memory management", not "garbage collection".
(And in the C++ world we call it "resource management", since we have predictable destruction.)
There's just a point where you have to accept inefficient things like XML and make the computer do the extra work instead of the programmer.
I can accept a lot of inefficiency (like Python's interpreter), but I refuse to accept
stupidity (the majority of all XML use).
C's "thousand times less servers" really doesn't mean much anyway these days with everything being virtualized.
As a C programmer, I have never heard that slogan, but I'm sure it's untrue.
Most problems are I/O bound, and C doesn't make I/O faster.
On the other hand, I fail to see why virtualization would make performance a non-issue.
And electricity and cooling aren't getting cheaper...
Eventually, every network gets subdivided at some piece of equipment, be it a transparent bridge or router somewhere. The idea of being a "peer" is an imaginary one really - other than boxes plugged into the exact same switch or router on the same subnet, you're doing a network traversal somewhere.
Huh? It's simple. Being peers means that A can contact B and B can contact A, on equal terms as far as the network is concerned.
It doesn't matter if you're on the same link or not (thus the "inter" in "internet").
NAT makes this traversal more explicit, perhaps, but evil?
Evil or not, without NAT you have peers, With NAT you don't. That's a fact, not hair-splitting.
Hell, if you really want other "peers", there's all kinds of VPN stuff you can do that will effectively give you the same thing.
What if I want to use the internet as it was intended, with no kludges on top?
How much easier would fighting spam be if SMTP had a strong authentication system for sent messages?
There is one, called OpenPGP. There is another one, called S/MIME. Implementation of these in real-world MUAs awaits a decision on best practices for how strong the authentication needs to be. Stronger authentication has two downsides. First, the cost of obtaining a digital ID goes up with strength; even with the OpenPGP web of trust, travel to a key signing party hundreds of km away is not free.
You wouldn't have to go to such extremes though.
If everyone had as a personal policy "only read OpenPGP-signed mail, and distrust mail signed with a key I haven't personally downloaded from a key server", spam and mail worms would be less of a problem.
From TFA: " Wiltshire, west of London..." I know we are a very small country and Australia is a very big one, but not everything in this country has to be defined by reference to London. Wiltshire, from where I am posting this, is in the South of England.
London is the only place we foreigners can place on a map.
The rest of England (and the UK) is just places where bands we like were formed, surrounded by
Emmerdale Farm. Sorry!
(If it makes you feel better, I met a guy in the forest the day before yesterday
who wore a hooded jacket with that chalkhill horse carving on the back -- the one that also
appeared on XTC's 1982 double-album "English Settlement".
I believe the original is in Wiltshire?)
The "major" announcement was nothing more than 2.6.18+patches -> 2.6.32.
And $deity knows what 2.6.18+patches (what Redhat uses) actually means, and if the differences are
all that big from the recent 2.6.3x kernels.
They have been backporting stuff on top of 2.6.18 for years and years now; I think RHEL5.4 is on the 160th
revision on top of 2.6.18 or something.
I guess the bright side of this article is that it shows
how badly tied up you can become without realizing it.
At least now they know they are screwed, and perhaps they'll learn to be
careful with new things they implement in the future.
[Incandescent bulbs] are also the only type of cheap mass produced bulb that produces a perfect black body spectrum. You know, the kind of spectrum that the human eyes are tuned to, the kind of spectrum that is absolutely critical in the colour matching industry.
I've used fluorescent lamps almost exclusively for many years now,
and I must say I have no problems with the majority of them.
They no longer make a room look like an abattoir.
As for the color matching industry (whoever they are) perhaps they can go outdoors to
match their colors? Or get an excemption, or stockpile.
Anyway, their welfare doesn't seem like a good excuse to continue wasting electricity
in every home.
Like I said, 64bit architecture is 20 years old but nobody (or a small fraction) is using 64bit Linux or 64bit Windows.
Don't know about Windows, but surely most Linux users with AMD64 systems are using
64-bit applications? (Linux users are a small fraction in general, of course.)
And what about Mac users -- didn't the Mac go straight from PPC to AMD64?
... warning that hackers are actively exploiting the vulnerability in-the-wild...
Dudes, this is Slashdot.
Can't you just for once use a term which *doesn't* have a positive second meaning to a majority of your readers?
Try one of these:
... warning that criminals are actively exploiting the vulnerability in-the-wild...
... warning that crackers are actively exploiting the vulnerability in-the-wild...
... warning that malware authors are actively exploiting the vulnerability in-the-wild...
... warning that Men of Low Moral Fiber are actively exploiting the vulnerability in-the-wild...
Only in some 1990s unix-like world where the manual pages are comprehensive, up to date and reasonably well organised.
As time goes by this applies to recent linux tools less and less. With many projects the only replacement seems to be googling for blog postings.
The sucky GUI and Web 2.0 stuff might have that problem, but the good tools have (IME) excellent documentation. Or what tools did you think of, specifically?
Perhaps I'm stuck in the 1990s; if so, I enjoy it here.
Think of comments as an API documentation*. If something complicated is going on, I usually include several usage example as well. Just look at the documantation 3rd party libraries, and try to follow that granularity and style.
I think that's a bad idea,
because comments are usually *not* API documentation. Much of the code you write is
aware of what code is calling it, and the reader is in control of both.
If you want a style guide, I can recommend Unix man pages. This one (adapted from Linux memcpy(3)) is
both elegant, brief and clear:
Copy n bytes from memory area src to memory area dest, and return dest.
The memory areas should not overlap. Use memmove(3) if the memory areas do overlap.
Commenting code isn't enough, it's just a small part of the design and documentation process. Comments are there to tie the code to the relevant part in your design document, which really is a part of programming people should put more effort into.
It's been said for years, but it is almost never done. When it is done, it's most often (IME) done _after the fact_ because of some requirement to produce the paperwork. Perhaps it's time to give up on it. Is there a real reason for insisting on a design document, or is it just some sort of self-flagellation on the part of programmers?
It might be flagellation, but not self-flagellation. Programmers hate writing useless documents.
Management wants those documents *before* the code is written, but the programmer knows he'll
rework the design because of stuff he learns while doing the coding. Management also wants the documents
in some word processor format not compatible with the version control software, so it cannot be updated
along with the code either.
If I could have it my way, I'd have these things:
User reference documentation, like man pages. File and protocol format specifications. Standards.
Those can be very helpful for the programmer too.
They cover the requirements aspect of things.
Good checkin comments from the version control system, i.e. "I did this because of that".
A *brief* text about the general design and architectural decisions, glossary etc.
Things like "this program revolves around a single select() loop" or "we try to make this part
bloody fast because..." or "we use this trick throughout the code to avoid table lookups".
Maybe a not-too-detailed class diagram, with a note that it might be obsolete and if you want a
recent one you're free to draw one.
A clear design with clear naming and strong typing, and/or readable unit tests.
Comments on the class or module level: "class Foo represents this thing, with these limitations".
On the function level too, but only if it's needed.
Obviously 8-character tab stops is the standard...
[citation needed]
Just out of curiosity, can you provide a reference to a standards doc that specifies exactly 8-char tab stops? The definitions of tab stop that I've seen have been along the lines of "whatever columns the user has listed in the tab-stops setting".
The definition probably goes on "... or if he hasn't (like 99.99999% of all users) it's eight".
But do you seriously need a standards doc?
Take any terminal emulator, real terminal, text editor or printer manufactured since the 1960s
and give them a few test patterns. I can almost guarantee that all of them will be using 8-char TABs.
The truth is that the "hard" way of doing things is often more fun, because you have the challenge of learning a new tool or API.
People are different.
I hate learning new tools and APIs (although I like learning the ones I already use better).
By extension, I distrust the people who're constantly looking for excuses to play with new toys.
When they get tired and give up half-way through, people like me have to clean up after them.
I guess the real issue is that you have to engineer a "good enough" solution rather than a "worst case" solution.
If you mean you have to write shitty code so you don't risk being 70% done at deadline,
I don't think that's true.
But you probably should use techniques you know well.
Maildir storage format is resistant to bit-rot because it stores each message in a separate file, and uses filesystem directories for mail folders. It's widely supported by user agents (mail readers) and IMAP/POP3/SMTP servers, so you'll never be stranded by the actions of a single software vendor. Finally, it's easily searched using everyday unix tools - find, grep, sed, awk, etc., and you can use the full-text search engine of your choice for speedy searches.
The only sane alternatives are, as far as I'm concerned:
a collection of mbox files
a collection of gzipped mbox files
a collection of Maildir folders
a collection of tarred and gzipped Maildir folders
Maildir isn't quite as well supported as mbox,
but I suppose it's sometimes more convenient to grep these since you get a hit on the particular
mail you're searching for, not the mbox file which contains that mail and a thousand others.
I use gzipped mbox files.
One thing I have considered doing is to convert away Quoted-Printable MIME encoding and use Latin 1 (or UTF-8) everywhere.
That would make the mboxes easier to use with standard tools like text editors and grep.
I would never use a database for this. It serves no purpose, except as an invitation for the fuckup fairy.
The searches you'd want to are free-text searches anyway.
Do that every time, and over the course of the year, you've saved 30 seconds x 250 days, oe 125 minutes - that's 2 HOURS of electricity. Be green - pull the plug:-)
Subtract from that the work other machines have to do keeping your dead TCP connections up,
retransmitting, and eventually timing out and resetting them.
Cutting the power to a networked computer is impolite.
"because you need to ask the user if they really want to shut down and if unsaved documents should be saved"
This is one of the most annoying things about computers. If I want to shut it down, shut it down!
It is to late for questions, I probably already left after I issued the shutdown command.
Not to mention this new-fangled thing called "multi-user systems".
When you, the admin, ask for a shutdown, do you really want the other 100 guys logged in over ssh/whatever to have a chance to say "hell no"? They deserve a minute's warning or so, that's all.
It's not the setting that bugs me, it's the verbosity. The Baroque Cycle was a good read, but about 1500 pages too long. I couldn't even motivate myself to start on Anathem.
That's his two most recent works. Not a good foundation for your earlier claim
"the author's last few works have not been up to his previous standard"...
For what it's worth, I think you're unwittingly right about/Anathem/.
Not a bad book, but it felt like a rehash of things he had said better before
-- for example in/The Diamond Age/, which everyone should read.
Force someone to define "ICT" first. Wikipedia says it's a buzzword for
companies saving money by using VOIP phones, and I doubt this is what the course is about.
Possibly it's a new name for "IT"... but then noone seems to know what that means, either.
You might find that ext3, ext4, btrfs, XFS, ZFS and other Unix filesystems might perhaps be a little more complex to read than FAT, particularly if you have to support all of them.
As far as I can see, you'd only have to support one of them at the time -- the one the/boot partition uses.
ext2 in my case.
(And perhaps GRUB already does it that way; I don't know anything about this.)
What algorithms exactly are you talking about, and exactly how do they "[take] advantage of TCP's mechanism to provide fairness, and use it to abuse the rest of the users"? As far as I can tell the bittorrent protocol just does what e.g. FTP does: pushes lots of data through TCP long-lived connections. Perhaps you need a better TCP implementation?
I use Opera exclusively. Do I use their torrent function? No. It seems pretty decent, but it's much simpler to use a dedicated client (rtorrent) so whatever I do to the browser doesn't affect my file-sharing. That way I can also run it on my server rather than on my desktop, which I shut down when I'm away.
Yeah, and the tiny, fringe minority who download pirated music and movies ...
Uh, in the C world we call it "memory management", not "garbage collection". (And in the C++ world we call it "resource management", since we have predictable destruction.)
I can accept a lot of inefficiency (like Python's interpreter), but I refuse to accept stupidity (the majority of all XML use).
As a C programmer, I have never heard that slogan, but I'm sure it's untrue. Most problems are I/O bound, and C doesn't make I/O faster. On the other hand, I fail to see why virtualization would make performance a non-issue. And electricity and cooling aren't getting cheaper ...
Huh? It's simple. Being peers means that A can contact B and B can contact A, on equal terms as far as the network is concerned. It doesn't matter if you're on the same link or not (thus the "inter" in "internet").
Evil or not, without NAT you have peers, With NAT you don't. That's a fact, not hair-splitting.
What if I want to use the internet as it was intended, with no kludges on top?
You wouldn't have to go to such extremes though. If everyone had as a personal policy "only read OpenPGP-signed mail, and distrust mail signed with a key I haven't personally downloaded from a key server", spam and mail worms would be less of a problem.
(Not that it will ever happen.)
London is the only place we foreigners can place on a map. The rest of England (and the UK) is just places where bands we like were formed, surrounded by Emmerdale Farm. Sorry!
(If it makes you feel better, I met a guy in the forest the day before yesterday who wore a hooded jacket with that chalkhill horse carving on the back -- the one that also appeared on XTC's 1982 double-album "English Settlement". I believe the original is in Wiltshire?)
And $deity knows what 2.6.18+patches (what Redhat uses) actually means, and if the differences are all that big from the recent 2.6.3x kernels. They have been backporting stuff on top of 2.6.18 for years and years now; I think RHEL5.4 is on the 160th revision on top of 2.6.18 or something.
I guess the bright side of this article is that it shows how badly tied up you can become without realizing it. At least now they know they are screwed, and perhaps they'll learn to be careful with new things they implement in the future.
Which made me think: "Oh? Ubuntu sucks *that* much?"
I've used fluorescent lamps almost exclusively for many years now, and I must say I have no problems with the majority of them. They no longer make a room look like an abattoir.
As for the color matching industry (whoever they are) perhaps they can go outdoors to match their colors? Or get an excemption, or stockpile. Anyway, their welfare doesn't seem like a good excuse to continue wasting electricity in every home.
Don't know about Windows, but surely most Linux users with AMD64 systems are using 64-bit applications? (Linux users are a small fraction in general, of course.) And what about Mac users -- didn't the Mac go straight from PPC to AMD64?
Dudes, this is Slashdot. Can't you just for once use a term which *doesn't* have a positive second meaning to a majority of your readers? Try one of these:
The sucky GUI and Web 2.0 stuff might have that problem, but the good tools have (IME) excellent documentation. Or what tools did you think of, specifically? Perhaps I'm stuck in the 1990s; if so, I enjoy it here.
I think that's a bad idea, because comments are usually *not* API documentation. Much of the code you write is aware of what code is calling it, and the reader is in control of both.
If you want a style guide, I can recommend Unix man pages. This one (adapted from Linux memcpy(3)) is both elegant, brief and clear:
Copy n bytes from memory area src to memory area dest, and return dest. The memory areas should not overlap. Use memmove(3) if the memory areas do overlap.
It might be flagellation, but not self-flagellation. Programmers hate writing useless documents. Management wants those documents *before* the code is written, but the programmer knows he'll rework the design because of stuff he learns while doing the coding. Management also wants the documents in some word processor format not compatible with the version control software, so it cannot be updated along with the code either.
If I could have it my way, I'd have these things:
The definition probably goes on "... or if he hasn't (like 99.99999% of all users) it's eight".
But do you seriously need a standards doc? Take any terminal emulator, real terminal, text editor or printer manufactured since the 1960s and give them a few test patterns. I can almost guarantee that all of them will be using 8-char TABs.
People are different. I hate learning new tools and APIs (although I like learning the ones I already use better).
By extension, I distrust the people who're constantly looking for excuses to play with new toys. When they get tired and give up half-way through, people like me have to clean up after them.
If you mean you have to write shitty code so you don't risk being 70% done at deadline, I don't think that's true. But you probably should use techniques you know well.
The only sane alternatives are, as far as I'm concerned:
Maildir isn't quite as well supported as mbox, but I suppose it's sometimes more convenient to grep these since you get a hit on the particular mail you're searching for, not the mbox file which contains that mail and a thousand others.
I use gzipped mbox files. One thing I have considered doing is to convert away Quoted-Printable MIME encoding and use Latin 1 (or UTF-8) everywhere. That would make the mboxes easier to use with standard tools like text editors and grep.
I would never use a database for this. It serves no purpose, except as an invitation for the fuckup fairy. The searches you'd want to are free-text searches anyway.
Subtract from that the work other machines have to do keeping your dead TCP connections up, retransmitting, and eventually timing out and resetting them. Cutting the power to a networked computer is impolite.
Not to mention this new-fangled thing called "multi-user systems". When you, the admin, ask for a shutdown, do you really want the other 100 guys logged in over ssh/whatever to have a chance to say "hell no"? They deserve a minute's warning or so, that's all.
That's his two most recent works. Not a good foundation for your earlier claim "the author's last few works have not been up to his previous standard" ...
For what it's worth, I think you're unwittingly right about /Anathem/.
Not a bad book, but it felt like a rehash of things he had said better before
-- for example in /The Diamond Age/, which everyone should read.
Possibly it's a new name for "IT" ... but then noone seems to know what that means, either.
As far as I can see, you'd only have to support one of them at the time -- the one the /boot partition uses.
ext2 in my case.
(And perhaps GRUB already does it that way; I don't know anything about this.)
Or the obvious: "You spin me around like a record" by Pete Burns' one-hit-wonder Dead or Alive.
Uh, Star Trek *was* the 1960s TV show. I'm a bit surprised someone actually thinks of the movies first -- they aren't nearly as interesting.