PDTP - The Best of Both FTP and BitTorrent?
ikewillis writes "For awhile I've been following the development of PDTP (Peer Distributed Transfer Protocol), which is trying to merge the concepts of FTP and BitTorrent. This sounds like it could be useful for apt-get repositories or other high demand FTP sites. It's designed to be used as part of scalable networks which could replace manual selection of FTP mirrors. It also supports a number of other nifty features like cryptographic file signatures. Isn't it about time we ditched FTP for something better?"
Next thing it'll be transmitting voice and pictures over radio waves... AS IF!
A feeling of having made the same mistake before: Deja Foobar
I feel sorry for these people. See, this isn't your typical slashdotting... It's a slashdotting that comes after eighteen consecutive nonsense stories being posted over twelve hours on the US April Fool's Day.
So, their chance to build a reputation is going to be damaged by the fact that anybody reading Slashdot today has already given up on finding anything useful, and will be evaluating them as a joke that they're "not getting" rather than as a proposed networking scheme.
Furthermore, the geek world is bored today by Slashdot's denial-of-normal-service throughout the day. So, once word leaks out that this is a real and normal story, they're going to get all of the pent up slashdotting force applied to their server.
Simon, you should have started your set tonight with an NY Times article or two. That would have been a suitable transition between nonsense content and factual content, since NYT operates in that murky space and has a suitable web setup to absorb a larger-than-usual slashdotting. I'm sure the people at PDTP would have not minded at all if their moment in the sun had come an hour later tonight.
BannedMusic.org made a BitTorrent wrapper that installs the application and then automatically launches the download, they call it an "easy downloader" and have instructions and a script for sites that want to make their own. Makes it a *lot* easier for sites to give out big files to non-techy audiences.
I look forward to the community's response.
True story.
Quoth the Debian Troll:
True story.
R.A.I.D. == redundant array of intolerable diversions
or at least on april fool's day....
PDTP eh? Try saying that too quickly.... I can barely get my tongue around half these transfer protocol names.
I wish people would mind their T's and P's.
READY.
PRINT ""+-0
...mirrors would need to be in sync at all times for this to work. Otherwise your PDTP client is only able to download from the mirrors that are in sync, or worse, will get some chunks from files that aren't up-to-date, causing problems.
Unfortunately, it's (almost) impossible to mirror new files instantaneously, so mirrors are never all in sync, all the time.
Isn't it about time we ditched FTP for something better?
Isn't it about time we ditched floppy disks for something better?
Isn't it about time we ditched IDE drives for something better?
Isn't it about time we ditched x86 for something better?
Isn't it about time we ditched Microsoft Windows for something better?
Isn't it about time we ditched CDs for something better?
Isn't it about time we ditched telnet for something better?
Isn't it about time we ditched CRTs for something better?
Isn't it about time we ditched 20-year-old TV sets for something better?
Isn't it about time we ditched COBOL for something better?
Isn't it about time we ditched BASIC for something better?
Isn't it about time we ditched SCO Unix for something better?
Isn't it about time we ditched DOS for something better?
Isn't it about time we ditched Dubya for something better?
my point is that there is a lot of very old crap out there that should be replaces, but is going to get used and keep getting used for years to come.
Interesting... this could bring piracy back to the ftp world, rather than the emule appz or bittorrent world where it's easier to get caught.
Will there also be an sPDTP, a cryptographically secure version for those who want to secure the set of trusted peers away from the prying eyes of those outside the clique?
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
If this ever lives on a Sun box, can the default PLEASE not be ascii??? Sun, please get a clue on this!
Circle the wagons and fire inward. Entropy increases without bounds.
Heh...a few years ago, /. made an April fools joke about Python and Perl merging into a new language called "Parrot" Apparently, some people liked the idea, and started the project. I have no idea of its status, though :-(
Doh!
Even when there is something much better, it will take decades to get rid of it.
Read the "from the"... department
The only reason we have the rights we have is that people just like us died to gain those rights. -- Cheerio Boy
We already have. It is called SCP
"Weapons should be hardy rather than decorative" - Miyamoto Musashi
I think that goes for OS's too
Currently at v0.1.0, awaiting Something Big in Perl 6, it would seem.
You can never go home again... but I guess you can shop there.
There are several P2P research projects that are looking at building reliabale and scalable P2P systems.
Take a look at Tapestry, and Chord (and read some of the papers) to understand the issues involved in providing scalable and high performance P2P services. Not only is scalable search and overlay graph connectivity an issue, but also node failure and short session times of P2P nodes.
Additionally, when you actually handle the issue of downloading data, building application-lvel multicast trees to distribute the data efficiently on a large scale is not easy. Two papers from SOSP '03 SplitStream, and Bullet address that issue.
"...Beer..."
Just in case... here's a mirror. Always glad to lend a hand.
Entrepreneur : (noun), French for "unemployed"
Answer to this is the same argument that I've heard sometimes applied to open source:
If we all contribute a little, then the cost to all of us is that much less.
----- Documentation is worth it just to be able to answer all your mail with 'RTFM' - Alan Cox.
We stopped taking the "from the..." line seriously this morn, er, did we ever take that line seriously?
I'm waiting for boot disks that fire up a peer to peer client for installing your os, and updates. Debian would be a great start, it would hugely reduce the load of the servers. Also Fedora, the BSDs, etc.
Yes, you can already do bit torrent for the ISO, but that is its own kind of wast and hassle.
Some day.
Plato seems wrong to me today
Parrot appears to be alive and well here. Version 0.1.0 was released on Feb 29th.
SuprNova, the best torrent web site ever, is going Japanese.
:-P
I swear, this has nothing to do with today's date.
There's no problem with that, don't share your bandwith with anyone, noone shares bandwith with you. Then you can only download from one source with limited resources. Other people that share can download from many sources (eventually each one with much less resources) that provide a total bandwith much greater, and more, when there is more people downloading they also download faster, instead of you that don't wanna share and have to slower the download when more people that don't share start to download... And besides, most people's connection limits are dowload limits not uploads :-P
And unfortunately, it's windows only, and still requires installing the software, which is 3MB+.
What is needed is something along the lines of a very small, very simple java client or a browser plugin. Azureus is java, but is huge and has massive feature-bloat for the purposes of just downloading(and sharing back) one file. However, Bram and others don't seem terribly interested in expanding possibilities; a mac developer offered up numerous improvements to the BitTorrent team for the mac client(which among other things is based on 3.3a, not 3.4.1, weeks after 3.4.1 released) and was rewarded with deafening silence.
The bittorrent protocol is http based. It's extensively documented on the bitconjurer website. Cmon folks, let's at least see a mozilla plugin or something! :-)
Please help metamoderate.
am sick of trying to determine the april fool day jokes from the real stories.
So, if for example, I write this need little GPL'd app that everyone loves, and release it as opensource, I should be responsible for hosting the file server for everyone? What if hundreds of thousands of people use it everyday, and a new patch comes out. Should I have to buy a T-1 (or something bigger) that costs an arm and a leg, to provide the file patch for a free program to others with no income for me? Or should I ask others to help out with their extra bandwith, and get a few seeders out there with bittorrent and run the tracker with the DSL line i have. I could pay $20 a month for a metered tiered connection in my town, but I pay $50 for an "unlimited" (notice the quotes). I know that not everywhere has these kinds of services, but you don't have to leave the torrent open forever either, or just leave the upload at 1k/s or something. It might slow down your download, but your still going to get access to the file..
What are we going to do tonight Brain?
Too bad we have to pick between a moron and a charlatan.
The wheel is turning, but the hamster is dead.
and you, for one, maybe don't deserve the bandwidth you get for _free_ downloads. your favorite linux distro has to pay the bills sometime too, and i don't imagine that you've actually paypal'd anyone to host their isos. so contribute (either by cash or bandwidth) or shut up.
If we all contribute a little, then the cost to all of us is that much less
Except that in this case, if we all contribute a little, then we all pay more, and the cost to a few (one?) is a LOT less.
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
I thought something better was sftp. As for distributions.. why not HTTP? Setup one reflector that dynamically kicks outs redirects as new mirrors come online. This is mutch better as we have a ton of clients already installed (curl,wget,..etc) We also have load balancing, dns round robin, authorzation, security(read: SSL) well defined in the protocol. All we need is a cgi script to kick out the redirects, and another that will make signature files based on the publically available SSL cert. Whamo all the same features.. and we didnt have to reinvent the wheel.
Hmmm... you don't don't *look* like Simon Cozens :)
That's just great! Now the media will consider FTP a movie-stealing method. Then the MPAA will call a ban to all FTP servers!
Question:
"Skyfire is using a derivative of the Apache License. Doesn't that preclude linking with Qt as the Apache License is incompatible with the GPL?"
Answer:
The FAQ page"Qt/X11 is dual licensed under both the GPL and the QPL. The Apache License, while incompatible with the GPL, is not incompatible with the QPL, so when Skyfire is linked with Qt/X11 the terms of the QPL apply. Qt Non-Commercial Edition for Windows has a separate set of license terms which apply to all Windows builds of Skyfire." (emphasis added)
Isn't this license a poor one? Aren't they breaking sourceforge.net rules by using a OSI unapproved license?
Or maybe I don't know what I am talking about. PLEASE Correct me if I am wrong.So, if for example, I write this need little GPL'd app that everyone loves, and release it as opensource, I should be responsible for hosting the file server for everyone?
You could either use a free distribution site, like Sourceforge, or, if your application is as great as you say it is, other people will ask *you* about mirroring it.
The operating systems are not going to chuck ftp so soon and nor are they going to include torrent as a default program. :-)
I think theres still a while till we ditch ftp and move onto something else completely.Torrents and other p2p stuff is good but only if you take the effort to get them.What about the masses who want to click and go?It won't happen till they can right click and it says "Save torrent as".
Lord of the Binges.
HTTP does all that. There are well-defined
and well-implemented (Squid) cache-tree protocols
for HTTP. This is very old stuff. FTP is just
plain obsolete. It ads *zero* value over HTTP,
and it's harder to use. Trying to bring FTP up
to the standards of HTTP is a futile effort too,
since HTTP is mature on many more dimensions,
and does not suffer from the gross defects of
the more primitive FTP such as transmission of
port numbers as stream data.
-I like my women like I like my tea: green-
Most people using ADSL technology have upload speeds lower than download speeds. For example, 256/64 down/up, or 512/128. That's asymmetric - the 'A' in ADSL.
In BitTorrent, your download speed is theoretically capped to your upload speed (if you're sharing with a ratio of 1:1).
Adelphia.net:
NO SERVERS OF ANY KIND
Sorry, I'd like to participate, but I can't. I know it won't die without me, but I fear more broadband ISPs taking on equally moronic TOS. The stance isn't entirely without merit, since Joe 6pak has no business running a server on today's Internet. But there's also no way to prove competence, and even if there were, I'm sure ISPs would be eager to charge me double.
The living have better things to do than to continue hating the dead.
--
Power to the Peaceful
You could try teaching them LOGO or lisp, but lisp is boring and LOGO is no better than BASIC.
... this QT GPL project was ever done, we could just ignore any such issues for ever and ever: http://kde-cygwin.sourceforge.net/qt3-win32/index. php
the guy at autopackage.org was attempting something simmilar to this but for package distrobution...it looks like with this protocol, youjust need to set up all the OSS servers with packages on them and boom...you have one huge honkin FTP site with all packages nessisary for all things...then you just ned to download a discription file and then the package manager can grab all the packages from a few PDPT gets and your done...good bye RPM hell.
I am the Alpha and the Omega-3
QPL is OSI approved
Sorry to disapoint you mate but .... April Fooled you....lol
Roses are red, violets are blue, most poems rhyme, but this one doesn't...
I checked the drive to find it was filled to the max with over 100 GB of porn! Lucky I always travel with a spare hard drive =)
From excellent karma to terible karma with a single +5 funny post...
Not being case-sensitive is a big advantage for newbies.
How so? As long at their compiler/interpreter is catching the errors, this will in fact teach them good habits early, so they don't have to unlearn them later.
My grade 11 intro to programming teacher, bless his anal soul, wouldn't let us use any global variables. Amongst other things. And I'm a better coder for having learned the right way than the wrong way.
I still have people at work who will ask me to look at some code that's not working, and the first thing I notice is that they're class name isn't capitalized or something, and their defense is "oh, but this is just a quick thing to test something". The whole reason for style is that so you can tell what's going on, which is something that should be taught early.
Heavens above. As someone who has taught beginning programmers, if they can't keep their case straight and consistant, it's going to be the least of their worries.
One god, one market, one truth, one consumer.
Should be spelled "consistent". I guess the thread subject works for this. ;)
But as I said in another post, I was talking about REALLY young programmers. I was in 2nd grade when I learned GW-BASIC, and there couldn't have been a better language for me at that time. Come to think of it, though, I had the caps lock key on the whole time anyway, so case sensitivity wouldn't have really mattered.
At that age, learning that everything has a type is a good way to start. Having the type be a symbol at the end of the variable made things really clear to me. So did having simple for loops and statement delimeters. Having
for (int i=0; i }
or
for i in range(10):
is not near as easy as understanding:
FOR I = 1 TO 10
...
NEXT
Another place with simplicity that's lacking in Java/Python/C++?
OPEN "FILE.TXT" FOR OUTPUT AS #1
PRINT #1, "Hello World"
BASIC is a language that a short book can be written about it, and the reader will have an introduction to programming that is niether boring nor difficult. The concepts are engrained because they are part of the syntax. Having keywords like NEXT and OUTPUT are great for beginning programmers. But use VB.NET and all the benefit is gone.
BitTorrent suffers another problem in that the only usable implementations are currently only available in Python. The primary problem with Python is its excessive resource usage
Really? I'm currently running four throttled BT downloads on a PII-350 w/64MB. Max CPU usage is 8%, load average 0.25. If you're really that bothered see here for an alternative.
but other problems arise such as integration of the Python implementation into a native GUI frontend for a given platform
Ever heard of WxGtk? RPMs for most distros, if it wasn't part of your default install.
as well as the need to bundle the Python runtime with the BitTorrent client on most platforms as few deployed systems have a Python runtime available
Now this is just silly. I dont think there is a linux distro which doesn't include Python libraries and even for Windows it's a single small executable. Besides (correct me if I'm wrong) but isn't one of the reasons for using Python that it has bounds-checking on arrays and is therefore proof against the cause of most exploits - the buffer overrun?
There's ssh and WebDAV. Both work great, and have significant advantages...
There exists no way of exchanging information without making judgments. --Bene Gesserit Axiom
The main problem with the "BitTorrent" idea is that it gets associated with "illegal" actions.
I was on the "Desert Combat" Testers team and we had to download 600-700mb patches once a week... off one ftp server.
When i mentioned the idea of using a modified BitTorrent client/server to ease the strain on the server i was told we could not use "illegal" tools.
First educate the public and then start to think about upgrading things to help the internet not crash and burn.
Phil
A psychopath can't tell the difference between right and wrong. A sociopath knows the difference - he just doesn't care.
I think a big part of the project is that it has the Bittorrent-like functionality. The clients upload to one another and do so during the downloading process. Using http with curl or wget without making considerable modifications (ie rewriting bittorrent) wouldn't have the benefits of bittorrent. Might be a good technique to retrieve .torrent files though.
Cripes :-/ Oh well, at least I misspell it consistantly.
One god, one market, one truth, one consumer.
You have to remember that despite the tag line, Slashdot is NOT a news center. It's all about the editors, contributors, and readers complaining about Microsoft and praising Linux. If you want news, get read a reputable news source.
Hmm, I was thinking about this earlier.. does anyone actually have any statistics for how much server transfer badwidth was saved by distributing a popular file (latest anime release or something) over BitTorrent? How much does it actually help?
-Redundancy Man strikes again!
> You could try teaching them LOGO or lisp, but lisp is boring
...)
So go for a variant, like elisp or Scheme. elisp has the advantage of
being immediately useful, because you give them Emacs to use as an editor,
and the first thing everyone needs to do is change the keybindings, so
you teach them enough lisp to do that, and then you introduce them to some
other thing they'll want to customize, and teach them enough more lisp to
do that... pretty soon you've got them writing their own major modes and
talking about wishing Emacs supported forking or threading, at which point
you can introduce them to Scheme and start warp^H^H^H^Hstretching their
minds around concepts like continuations.
I prefer Perl, though. Yeah, it's case-sensitive, but you just teach them
to do everything in lowercase except for filehandles (uppercase) and modules
(usually Title::Case::Like::This, but however it's listed on search.cpan.org).
And yeah, there's more to learn in Perl than BASIC, but if you skip all the
functionality that's just plain _missing_ in BASIC (regexes, lexical and
dynamic scoping, packages and modules (except core pragmas, which correspond
roughly to the OPTION statement in BASIC), references, list transformations
like map and grep, formats (who uses those anyway?), printf and sprintf, most
of the special variables, typeglobs, the functional paradigm, objects,
then there's not nearly as much to teach 'em as there would be if you had
to teach the whole language. The only major concept you really *have* to
cover that's not present in BASIC is context. (Sigils actually have an
analog in BASIC, though in BASIC they're a suffix rather than a prefix and
the types are broken down differently, but it's the same basic idea,
string$, integer%, single! and double# (did I reverse those? It's been so
long...), and long&, verses $scalar, @array, %hash, &code, and *glob. As
mentioned, you don't have to cover typeglobs, and you don't really need to
cover coderefs either, so the & sigil can be skipped in a beginner course,
leaving only three, comparable to the big three ($, %, and one of the float
types, take your pick) for BASIC.)
If I wanted to do a beginner course in object-oriented programming, I'd use
Inform, on the grounds that virtually everyone with even slight geekish
tendencies can get "into" the problem domain it's intended to solve, and
also because the Designer's Manual is superb, and because its object model
is fairly complete, with a full object forest, nested inheritance,
multi-inheritance, easy instance objects (i.e., overriding inherited stuff
on a per-object basis) -- all the goodies. Also, Inform is very easy to
learn, and it's especially easy to read. It's not general-purpose at all,
but for learning OO concepts that doesn't matter.
Cut that out, or I will ship you to Norilsk in a box.
I agree, you can even check POP mail over telnet. You'd have to be insane, however, to use telnet to say log into a shell account.
Can anyone enlighten me as to where telnet is used in new devices at all?
Photos.
"And besides, most people's connection limits are dowload limits not uploads"
Most *posted* limits. The problem is that most consumers have asymetrical bandwidth, so they just don't have that much upstream to share.
I could use all 12 kbps upstream that the Comcast gods see fit to bless me with to upload files using P2P. But then, of course, I couldn't even surf the internet: Almost all my DNS queries fail, and the websites that don't, just timeout --probably because my [smart] router decides to preserve active connections instead of allowing more udp (DNS) or tcp (http) connections.
That's a perfectly valid reason *not* to share -- because it costs you something.
Me, I still share (I just limit bittorrent to 5kbps upstream so I can still have some bandwidth).
Although, my roommate (uses windows) "doesn't know how" to limit his bandwidth ("I just click the download button and it downloads. It doesn't give me an option for that!")....so every thursday when the new enterprise episodes come out...
anyway...I'm pretty sure I had a point so...yeah...
What if my site uses something like mod rewrite? FTP sites generally are a direct representation of the filesystem. Complex http sites may have no relationship to the internal filestructure and may be un-mirrorable. If you're looking for a rule sheet in regards to mirroring http look no farther than wget and robots.txt. If there isn't a page linking to it you weren't supposed to get it probably anyway. wget does handle directory depth i'm almlost certain btw.
Photos.
But I still like QuickBasic for the first programming course. And I believe its integer (no suffix) and double%, in BASIC. But Perl would be a close second. It is also simple for the first programming course, and when you learn it you also learn about UNIX. And it has quite a feature list.
Hello. I'm the project manager for PDTP, and author of Skyfire. There's nothing wrong with the QPL whatsoever, unless you mind the fact that it's GPL incompatible (but then again, so is the Apache license). The QPL is an OSI Approved license, so there's nothing to worry about.
What I'd like to see incorporated in their protocols is the proper use of forward error correction techniques to speed up file tranfers. Most Internet file transfer protocols these days make use of automatic rerequest to correct mistransmitted packets, which can be costly when large amounts of data are to be transferred over unreliable links. I've heard that it is possible to make use of erasure codes such as Reed-Solomon or Tornado codes to speed up multicast bulk data transfers. Michael Luby the inventor of the Tornado codes, has actually considered this application for his error correcting codes in the paper "Accessing Multiple Mirror Sites in Parallel: Using Tornado Codes to Speed Up Downloads". I wonder if this approach would help improve this application's performance?
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
There is nothing out there that can work with the newest features of graphics cards as DirectX can. DirectX is one of the last unassaulted selling points of Windows.
I'm still trying to figure out what people mean by 'social skills' here.
But there are people that keep sharing even after their dowload completes... And you seem to be missing an important point. Even if you have a T1, if there are lots of people downloading through FTP you have to share the bandwith with all of them. With a p2p solution people stop using your bandwith sharing between them, meaning you can serve your files faster and with a greater total bandwith. When you say In BitTorrent, your download speed is theoretically capped to your upload speed you are assuming that the FTP server can serve you faster than you can upload. And that's not the case when there are lots of people trying to access the files in question (never heard of pages being slashdoted?).
it's a joke, OK?
The best weapon of a dictatorship is secrecy, but the best weapon of a democracy should be the weapon of openness.
Please don't use straight SHA1 - it requires downloading the entire file to verify.
.torrent files relatively big).
Bittorrent and some other file sharing networks split the file into chunks and keep metadata with the hashes of chunks. The problem with this idea is how big to make the chunks: too big and you need to download a big chunk before you can verify. Too small and the list of hashes itself takes too long to download (the hashes are what makes
I think the solution should be to use hash trees. Split the file into relatively small chunks (1k?) and calculate their hashes. Now take every two consecutive hashes and hash them. Repeat with the hash results from the previous step until you have a tree with a single hash at its root. The root hash represents the entire file just like an MD5 of SHA1 sum. The difference is that with a small amount of metadata as hints you can verify any part of the file without downloading the entire file. All you need is a short (log n) chain of hashes leading down to the root hash. The server will trickle the hash information interleaved with the download and the client will verify it on the fly and never need to write a single byte to the disk before it's cryptographically verified.
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
Please read the rest for a more detailed discussion of on-the-fly cryptographic verifications.
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
i got samba correctly configured, a while ago. /var/log/ either. what a bummer.
recently i've reformatted my box and freshly installed debian, and for some reason, when i attempt to transfer files via ftp, or samba, the system locks up instantly. no indication of why in
kernel 2.6.4. ipv6 is not enabled.
Cool. Kinda makes uploading suck though, doesn't it? Not so bad for distribution, but just plain icky for anything bi-directional or towards a central location rather than from it.
SIG: HUP
Schmuck
Good intelligent response.
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
Erasure codes have the property that for a file N packets long, you calculate some number K of coded packets, and the receiver needs only to receive N of any combination of coded or source packets to be able to recreate the original file.
For instance, I could have a file 100 packets long, and calculate 25 coded packets, then I could receive, for example, 80 packets of the original file and 20 coded packets (80+20=100) and recalculate the entire original file. Or 90 original and 10 coded packets. Or 75 original and 25 coded packets...etc.
Before Tornado codes, this was computationally difficult to do in practice for large files. Typical use of Tornado files is to just send all coded packets, and receivers can "fill their cup from the fountain, dipping it into the stream whenever they want" to get any N number of packets to recreate the original file. Obviously, this makes a lot of sense in a multicast domain.
But for distributed file transmission, I'm not sure this makes sense. You would need to collect N different packets. If you got the same coded packet more than once, it would not help you.
Keeping track of which unduplicated coded packets you have and need is just as difficult as keeping track of which unduplicated original packets you have and need.
Packet loss is not really much of a problem if you are using TCP. On the other hand, it is a problem when you are doing multicast UDP over the Net or satellite.
So overall I'd say file-level FEC using erasure codes is pretty much useless for distributed file transmission.
Anyone care to differ?
This is something that kind of ticks me off. Different operating systems have different conventions for what a "new line" is. That, of course, is why FTP has its two modes: binary and ASCII. The client is responsible for determining what type of newlines the server has, and converting those to native newlines if necessary.
Everybody knows about this problem. We've known about it for decades. So why is this still such a pain in the ass? I forget putting FTP in binary mode just as much as the next guy, but if I'm transferring a text file, it'd probably tick me off just as much to have it default to binary (where I forget to change it to ascii), since my text file is almost unusable.
(Arguably an almost unusable text file is better than a completely unusable binary one, however.)
HTTP and HTML made this worse. MIME says text/* content types must use normalized "network" newlines (CRLF). Every piece of text transferred with a text MIME type should undergo this transformation, and MIME clients should understand that they need to convert from network newlines to native newlines when working with the text. Then HTTP and HTML came along, and they said, "but that's going to be too hard!" and effectively said that any HTTP client should accept any type of newline, and HTTP servers shouldn't care what type of newlines are in their text.
As a result, when someone sends me a piece of text that originates from Unix, no matter what protocol they used to retrieve it, there's at least a 50% chance that the newlines will be wrong and I'll have to convert it.
This is stupid.
You can't use CD-RW like a floppy disk. It's not "random access writable". And you can only write a CD-RW so many times before you can't use it anymore...
CD-RW drives support packet writing with appropriate drivers. And how many times can you rewrite a floppy again, especially given the urine-poor quality control of today's floppy drives and media?
[SSH is] Practically unheard of outside the Unix world.
So is telnet, or any other shell access.
LCDs are way more expensive than CRTs.
Only in situations with extremely high interest rates, when it's best to invest money in the financial markets rather than in capital goods. Otherwise, replacing an aging CRT with an LCD pays for itself in energy cost savings.
Try running XP on that old 386.
Replacing a 386 mobo with a Crusoe mobo would soon pay for itself in energy cost savings. And still, what about FreeDOS? Would you consider it a better deal than MS-DOS for those who aren't running Windows?
I'm currently running four throttled BT downloads on a PII-350 w/64MB.
Machines with that kind of CPU typically shipped with Windows 98. The Windows 9x family of operating systems is limited to 64 KB in user.exe's heap and 64 KB in GDI.exe's heap; it displays the lesser of the free spaces in the two heaps as "System Resources." (On the NT kernel, user.exe and GDI.exe have heaps up to the size of physical memory.) Perhaps the Python bindings for wxWidgets use a lot of user.exe and GDI.exe handles.
> So does having real division rather than floor division by default.
I think BASIC has real division by default, except of course that it's limited
by whatever data type you're working with. What I really want (and we're
*hopefully* getting it in Perl6) is numbers that automatically promote
themselves to bignums if necessary, so that there's no such thing as overflow.
Perl5 already promotes integers to floats as necessary, of course.
> And I believe its integer (no suffix) and double%, in BASIC
I'm pretty sure of integer%, since I used that quite a bit (in GWBASIC and
later QBasic). I'm a lot less sure about double, because I almost never did
anything in BASIC that needed floating point numbers.
Trivia point: in some implementions of BASIC, foo$ and foo% and so on are
all different variables, like @foo and %foo in Perl5. Use of this feature
is generally discouraged in beginning courses, however, since overuse of it
can create (minor) obfuscatory effects, _especially_ with overly laconic
variable names.
Cut that out, or I will ship you to Norilsk in a box.
Yes, it is. However, SSH has been around for a significant time and still hasn't replaced telnet, even given the horrific security holes in telnet.