Need I say more? ANYONE who can write an article complaining about excessive bandwidth use and points to ICQ has NO CLUE what they're talking about.
Oh, and according to ipchains, I use about 20-50mb of off-campus bandwidth on the typical day, sometimes going up to a gigabyte once or twice a month with cd or other big downloads.
Overall, while I do use hellacious amounts of on-campus bandwidth (usually remote x-sessions), up to a gigabyte a day, for most of the days of a month a modem could handle what I use for off-campus stuff.
MP3 is only specced as a bitstream, (and implicitly, a decoder to decode it). ISO does not spec how one does the encoding to that bitstream... That ISO working group does require that there be a reference implementation, it says nothing about the quality and sophistication of that reference implementation; it just has to work and create valid bitstreams.
Compare this with MPEG[12]; The reference MPEG encoder does work, but it doesn't do the black-magic things that commercial encoders costing thousands of dollars will do as far as high-quality encoding at low bitrates.
Similarily, a lamish coder like 8hz and the other freeware encoders are based off the reference encoder, and likewise aren't very sophisticated. The fraunhofer encoder is black magic and proprietary, and I would have no problems with them patenting it. (As patenting would lead to disclosure of how they accomplish their black-magic.)
Instead, they patented a variety of relatively obvious techniques that ANY encoder would use.. This way they get to kill competetion and still keep their coder trade secret. This is why I dislike their patent; for this abuse. They get the best of both worlds; they don't have to disclose anything non-obvious, and they still get a government-granted monopoly on MP3 coding.
Had they patented their encoder, I would be gloriously happy. The tricks used in their encoder would be disclosed to the world, and likely it could or would be improved upon to make it faster or higher quality. Nor would I have any problems with their monopoly, as I know that I merely have to wait for it to exit patent protection. Also, someone who derive a superior encoder has the option of licensing the patent or selling it to them.
This is what the patent system was meant to support, this was the purpose, and properly used, its not all that bad of a deal for the world. What is a bad deal for the world is when 30-minute back-of-the-envelope ideas are patented and used to control whole industries. When someone patents the result of years of work, (like fraunhofer), they deserve the patent and its rewards.
But, since the patent office is granting patents for quick ideas, people like fraunhofer patent the obvious ideas behind their invention, then they keep their real work a proprietary secret.
Summing it up: ``Patents should be granted for perspiration, NOT inspiration.''
They patented the fundamental technique of audio coding. (The equivalent of JPEG for audio; perform a frequency transform (DCT), quantize, entropy encode.) And just as JPEG was revolutionary when it came out, so has MP3 been; lightyears ahead of any other competeing format.
MP3 is the same way, well, except, that they didn't actually release anything useful on their patent. The black-magic that they managed to produce is their MP3 codec, but you won't find that on any patent application. they made it trade-secret. It deserves a patent, if anything does.
This is sorta like 3dfx patenting the idea of using a hardware-accelerated 3d graphics card to speed up games, then keeping all of the research and tricks they use in their implementation a trade secret.
So, we get the WORST of both worlds. They don't disclose their 'real' invention, and yet they are granted a patent that stops anyone else in their business from functioning. Full disclosure? HAH!
Re:7 minutes to boot, with a full fs check: 46gb u
on
Linux 2.3.48 Released
·
· Score: 2
That doesn't discard my discussion on block size..
And maybe.. The thing is that I REALLY don't want to have drive corruption. I don't mind it it blows up a drive, I've got my data duplicated between drives.. What will destroy me is if I get corruption. I'll use ext2 until about 3 months after a newer filesystem becomes the 'standard' in redhat or debian or some other major distribution.
7 minutes to boot, with a full fs check: 46gb used
on
Linux 2.3.48 Released
·
· Score: 5
These are normal ext2fs filesystems.. Even despite the fact that e2fsck isn't fully parellelizing the checks, I have clocked a full bootup at 7 minutes.
Among the other partitians, I have a 23, 16, and 20gb partitians. (on seperate drives). I have about 75gb of disk space total, with 46gb of that currently in use (723484 files/directories). My trick is twofold:
First, the default inode allocation is a bit insane.. Inodes are 128 bytes each and there's one inode for every 4kb of diskspace. So for every 10gb of disk, the default format uses 320mb of inodes, capable of storing over 2.5 million files! And e2fsck has to scan each and every byte in each and every one of these inodes. So why not drop that to 1/4, or one inode for every 16kb? Then for every 10gb of diskspace e2fsck only has to scan 625,000 inodes or 80mb worth. Can you say 4 times faster?:)
Some might claim that they could run out of inodes with an allocation that small? Unless the server has lots of small files (mail, news, proxy), its highly unlikely that you'll have even 500,000 files on the whole thing. You can get this info very quickly by using 'tune2fs -l/dev/foo'.
If you're like me and you notice that you're using only 1/8 or even 1/15 the total number of inodes, and you don't the file charactaristics [number of files, directories, average size,...] that you're going to store on that partitian to change radically. Then get rid of 3/4 of them and speed up the fsck.
In my case, I've got a total of 4.2 million inodes, with only 700k used, had I formatted normally, I would have had around 19 million. (multiply by 128 bytes/inode to see how much storage they need, and how many hundreds of megabytes e2fsck would need to scan.) I also tuned my partitians seperately. Based on how they were currently being used and on the risk of that changing radically. (For instance,/tmp has the stock 4kb/inode.. I never know if I'll suddenly stuff lots of small files in there.)
Ok.. That's trick #1.. The second trick is the default blocksize. Changing this speeds up every filesystem operation, from allocation to fsck to reading to writing to unlinking. This trick does waste more diskspace.
Normally, ext2fs allocates storage in 1kb blocks. But changing that to 2kb has many advantages. First, a file requires only half the number of drive transactions, which will improve speed. Second, since all allocations are now done in 2kb sizes, I can allocate (and remove) twice as fast. Finally, due to the subtletly in I, II, III blocks that form the allocation BTREE, (These are diskblocks which point to diskblocks that point to diskblocks containing data.) Having twice the size of allocation means that the btree has twice the fanout AND each leaf holds twice the data. I'm not sure how much impact this factor has on speed.
For those of you who don't know how ext2fs inodes are layed out.. They're actually curious.. The inode itself points to the first 12 blocks of the file directly (normally the first 12*1024). Then it points to an I block that contains pointers to the next blocks in the file. (normally, the next 1024/4 = 256 blocks, or 256kb). Then there's the II block, which contains pointers to I blocks. Finally, there's the III block that contains pointers to II blocks. You don't need an IIII block because with only an III block, you can handle files up to about 16tb, which is larger than the maximum possible filesystem size.
Now, the reason to get into this big long explanation is to make a fascinating point about diskspace usage.. If you have a blocksize of 1kb, then files less than 12kb in size don't require any I blocks. While if you have a blocksize of 2kb, files less than 24kb in size don't require any I blocks.
So, if your filesystem has files between 12kb and 24kb in size, if you compare the disk usage between a filesystem of 1kb blocksize and 2kb blocksize, The worst you could do is waste an extra kilobyte in the last block, but that wasted diskblock is made up for the fact that you don't have an I block.:)
And that's the worst you could do. In fact if you have luck, you can actually come out pretty far ahead! Formatting with a blocksize of 2kb may actually waste LESS space AND require fewer seeks!:)
Now combine this with the tidbit that the average file tends to be around 13kb. If the majority of the files on the partitian are between 12 and 24kb in size, you can't lose with this!
As files get bigger than 24kb, the relative size of wasted space in the last block becomes much less relevant, (for files around 24kb, the maximum percentage of wasted space is 2kb/24kb ~~ 8%. For 128kb, its 2kb/128kb ~~ 1.6%) So a 2kb blocksize has a decreasing affect on wasted space, while at the same time increasing the bandwidth and speed of handling large files. So at files >24kb in size, you start winning, for files >1mb, you start winning a whole lot.
If the partitian is only intended for very large files, (Ones where any wasted space in the last block is irrelevant with respect to the total size.), then a 4kb blocksize makes perfect sense. I don't suggest this idea too strongly because its not as applicable as a 2kb blocksize.
Those are just a few characteristics of ext2fs with regard to blocksize. There's no magic bullet for speeding up ext2fs, but depending on how the filesystem is used, you can frequently speed it up. Look at your drive, the average file size, and the filesize distribution. ``find/foo -size +12k -size -24k | wc ; find/foo | wc ; find/foo -size +24k | wc ; find/foo -size +128k''. Then decide if changing the blocksize makes sense.
For my personal system, the overhead of increasing the blocksize to 2kb is around 3-7%, 3% in most places and 7% where there tend to be many small files (/home/http).
Closing remarks:
If you use both tricks together, they almost cancel themselves out. The overhead of having 1 inode for every 4kb is 128b/4kb, or about 3%, if you format with 16kb/inode, the overhead drops to.75%. You save 2.25%. And as it just so happens, the overhead of the bigger blocksize is loss of about 3%. So overall, you break even; within one or two percent of the origional disk usage. This is how I formatted most of my system.
And if you actually need millions of 4kb files, well, unjourneled ext2fs is not the filesystem I would reccomend.
So, a quick summary. My system takes 7 minutes to boot. It has 723484 used inodes, out of a total of 4.2 million inodes. I have 46gb of drivespace used, out of a total of 75gb. A boot with a full filesystem check takes 7 minutes and requires reading about 500mb worth of inodes. A boot without a full fsck takes one minute (about 20 seconds of that just mounting).
Had I formatted it normally, I would have saved 500-1500mb (1-3%) of drivespace, had 18 million inodes. Fsck times would probably take 4x-8x as long and requrie reading about 2.3gb worth of inodes.
I considered the trade well worth it for me, and I suspect that it would be well-worth it to many other people. (Excluding those who's boxes have multi-year uptimes.:)
You can do far worse than that.. Just take a P166, say, like my computer.. Then run a copy of xlock on it (-delay 0) you can find modes that'll use >10,000 context switches per second.. Then run a few hundred copies of 'cat/dev/zero >/dev/null', nice them to 10 or 15. Under X, it does get a little annoying to use, but from a console you don't even notice the load. (And with amp's realtime playback, your MP3's go through with nary a pop or stutter.
True, I haven't also tried a forkbomb [while (fork()>=0);] concurrently to all of the above, but I expect it to handle that too.
Linux can handle that load fine, even on a little old P16, so your anecdote doesn't carry much weight, at least with me.:)
A few things I've noticed throughout this discussion is almost ignorance of newer languages and language ideas.. Do not forget that the average software engineering development takes 18 YEARS to be put into widespread use.
OO has been with us since 1980. Its only in the mid-90's that its become big. Similarily, the new language ideas that have been developed relatively recently (functional programming--haskell, sml-nj, ocaml) will be the languages of the future in another 10 years.
In these languages..Here I will refer to SML-NJ, as I am most familiar with its type system, they are strongly typed. Polymorphic; lists are TRULY polymorphic, Unlike templates, there's no code duplication. They are also extremely strongly typed. In actuality they have an order of magnitude more typing information than C++ has, except that I don't care because the compiler itself intelligently infers all of that typing information fully automatically. Functions are truly first-order values. They may be 'created' at runtime (via partial application or closures), stored, passed around, and anything else.
SML is also much more understandable and more consise. It also has a module system that's extremely careful. You cannot even compile a program that violates the module system. As a language, the specification is well under 100 pages of carefully formalized mathematics.. (Though a careful analysis of SML shows that there are 'dusty corners' in the specification. My research right now deals with specifying a language so explicitly that an automated theorem proving system can prove the 'correctness' of the language specification. If anyone's interested in the tools I'm using, www.twelf.org.)
As far as consiceness and modularity: Remember the law of software engineering, half the number of lines of code means 5x easier to analyse, debug, and maintain.
As for the other languages, haskell has an even more versatile type system than SML-NJ has, I think its powerful enough to handle most of the typing characteristics of OO programming. OCaml is another language in this group.
While its still true that none of these languages are ready for prime time yet, I suspect that derivatives from them (like ML-2000) may be the language of the future; the languages that everyone will be calling the pancea in 10 years.
Given that it will probably be at least a decade or two until the next 'big thing' comes out, what things currently in the pipeline do you think will be big? Will it be the strongly typed functional languages? Will it be the a Java-style IDE where people don't think of a program as a set of linear text files but rather as a collection of objects and methods?
Another way of asking the same question, what abstractions do you feel will be the ones exploited in the future? Will the IDE abstract away the textual or linear representations of the code? Will typing, interfaces, and modularity be used to abstract away the objects implementing an interface? Will we finally have a good application programming language which completely abstracts away the ideas of bits, bytes, pointers?
Or, should I shut up because I've been around 'academic' language designers too much, who don't know how to make a language that the majority would accept?
Are they tools whos sole purpose is to cause harm and aid people in the thievery and piracy of intellectual property, or just tools that will let us play our legitimately bought DVD's in linux?
Only 36 hours ago there was that article about the head of the RIAA and his opinions about how DeCSS had no purpose other than piracy. And we mostly, 99% agree that he's wrong. Well then, why all this argument for the case of TFN? Why are many of us unhappy about TFN and blaming the author for all the problems he caused by the tools he created, yet happy about the creation of DeCSS and css-auth?
Wasn't SMB proprietary and secret, at least until the samba team reverse-engineered enough of it that MS had nothing to lose by releasing the specs for the filesystem protocol? Just because it is open now doesn't mean that they didn't have to reverse-engineer it enough to shame the company into opening it. (Remember RC4 anyone?)
Besides, how many years did it take for domain controller support to be added. I thought that they had to reverse-engineer that too.
You make good points, but there are some people who aren't interested in purchasing DVD's until there's a reasonable Linux player for them. And you're right, we don't have a `right' to use their playback software. But don't we have a right to build our own?
What he and you are saying is that we can't look at another piece of software and reimplement our own with the same functionality. How many DOOM/Quake clones have there been, functionality the same as the origionals? That's the issue of look&feel all over again.
I won't reboot into windows just to play DVD's. Nor can I afford the money to get a multimedia system. (TV, VCR, stereo, dvd, cd, speakers) My computer, specifically linux, fulfils that role for me.
So, I will sit around with the DVD drive in my new computer, waiting for a good linux player. When it comes, I will start purchasing DVD's. Unless the other equipment comes down in price, I don't see myself purchasing it.
Your world may revolve around money and jealousy over not getting any. I like to think that other things are more important... Like a system that's stable, flexible, and powerful and does what I want. (Which is a value without price, I might add.)
Do you think you have a right to take the fruits of my labor, without restriction, even if it is unpaid and volunteer, then resell it for money to further your livelihood?
Just because I didn't earn money doesn't mean that that labor doesn't have value, the GPL/LGPL codebase (linux, emacs, gcc, glibc, bash,....) has an estimated value in the multi-billion dollar range. Why should we, the group who created that value, share that wealth with you, without restriction, unless you're willing share any additions to that wealth BACK so the rest of us can enjoy the new pool? Regardless of your answer, its OUR choice how it is to be shared, and tough luck, you have to respect that.
Yes, we require that you share back any additions to that pool of wealth, but is that so high of a price to pay for the billions of dollars of code sitting in it? There are even exceptions to that requirement; you don't have to share back your additions if they're for your own use. You can even use any of the software in it completely freely.
Few individuals get free(monetary) access to billions of dollars of code. Fewer get access and the ability to alter and redistribute it how they wish. Why do you not thank your lucky stars that you and we are so fortunate and lucky to?
Notice how all the comments are attributed to a Nelson, but nowhere in the article does it say who he is.. We don' know if its a first name or a last name, and there is no specific affiliation.
It looks like some reporter there got duped into listening to some idiot who is in desperate need of a cluestick, actually about a dozen cluesticks. Its not the fault of the magazine. (How many `intelligent' people have been scammed by Goodtimes or other `obvious' falsehoods?)
So, its either a case of ``Never ascribe to malice what can be explained by stupidity can'', or time to get out the conspiracy theories.
My advice would be to kindly email them telling them that Nelson is a fraud who doesn't know what he's talking about and they would be better served going to Lopht or a real security company for advice. Oh, and ask who Nelson is, so that we may give him/her the instruction (and flames) they so richly need. Of course, this is all irrelevant, as they've probably got about 300 idiotic flames in their inbox right now.. Oh well, the slashdot crowd shoots its own foot again.
Notice how all the comments are attributed to a Nelson, but nowhere in the article does it say who he is.. No first name, no last name, no specific affiliation.
It looks like some reporter there got duped into listening to some idiot who is in desperate need of a cluestick, actually about a dozen cluesticks. Its not the fault of the magazine. (How many `intelligent' people have been scammed by Goodtimes or other `obvious' falsehoods?)
So, its either a case of ``Never ascribe to malice what can be explained by stupidity can'', or time to get out the conspiracy theories.
My advice would be to kindly email them telling them that Nelson is a fraud who doesn't know what he's talking about and they would be better served going to Lopht or a real security company for advice. Oh, and ask who Nelson is, so that we may give him the instruction (and flames) he so richly needs. Of course, this is all irrelevant, as they've probably got about 300 idiotic flames in their inbox right now.. Oh well, the slashdot crowd shoots its own foot again.
Don't you mean that you check for it on the 'default port'.. IE, that port number which any halfway braindead cracker would change.... Or am I giving these idiots too much credit for brains?
We had better get a module for BO2k quick, one that will do ping-floods and other DOS nastiness, especially one that can be triggered easily with a single UDP packet..
Just for illustrative purposes of course, as we don't want to come out as if we are SUPPORTING such horrible things.:)
Children do not, by definition have many rights that adults have. Their rights are a functions of their parents.... So a more accurate phrasing of what you want is ``Parents have the right to keep their children from seeing pornography in public.''
But replace the words `seeing pornography' with `being around negros'. Literally go and do it to your post. This is the same argument that was used before the era of civil rights. Keep the children away from corrupting negros.. Have ``negro hours'' in the public library so that they can use it.
Thank god for our country that this was overturned. Your rights to protect your children have limits as they should. ``..... to save the children'' is an often-used phrase for many horrors. discrimination, `seperate but equal',
There is also the other philosophical issue about filtering software being the same as burning books. Its keeping the books from ``corrupting the youth.'' Do we want to teach our children that burning books ``for the good of the community'' is OK.
Not to mention, its hypocritical. I knew how to make Nitrocellulose (smokeless gunpowder) when I was 12! The criminal that did this to me? It was an old Time-Life about the history of polymers and how nitrocellulose was accidently discoverd.
(For my obligatory corrupt-the-youth crusade, I'll tell you how.. Someone had a vial of nitric&sulpheric acids they were trying to seperate. They spilled it accidently. He used a cotton shirt to clean it up and hung it out to dry. When he came back, the shirt was gone.)
I've noticed that nobody has yet asked ``Why'' Why IS VA, a linux hardware company buying andover, website hosting/owning company?
Why did they purchase it? Companies don't tend to foolishly spend a whole lot of money for no reason.
Is VA doing this because they support linux, that they are going to funnel more money into linux projects? If this is it, then why buy slashdot/freshmeat, you'd be better off creating another Precision Insight, or funding Abiword or GNOME development.
Is VA doing this because they want to (eventually) bias the editorial content, like the media companies?
Or, is Andover falling over, and VA came over as a white knight to rescue the important linux infrastructure of Freshmeat and Slashdot? If this was the case, then haven't we heard about it before?
Microsoft buying/building MSN and MSNBC parallel doesn't work in this case. There is a strong strategic reason for it. Microsoft along with AOL knew that computer networks and widespread ubiquious networking was going to happen. Both fought over controlling it, though (thank god) the open internet blindsided both. Microsoft thought with their OS monopoly and content that they could funnel and attract people into their own commerce network and make lots of profit. VA doesn't have this reason, andover's most public properties don't sell anything more than banner ads.... (unless they're planning on changing this?) And banner ads aren't going to scale to large profits.
So, why did VA butt their nose in where they knew it wouldn't be desired, into purchasing a company that seems to have no importance in any strategic plan?
Re:Yes, MUQ is sooo fast...
on
Anarchy Online
·
· Score: 2
Yeah, of course speed will be a problem. But you aren't being completely fair about it.
The minimum speed is 1/50 that of C, but if your primitives do a non-trivial amount of work, then it will be a lot faster.
Like any interpreted language, if your primitives are small, the overhead of interpretation is the bottleneck. If the primitives to a lot of work (matrix multiplication, geometry transformation), then the time spent in the primitives masks the overhead of the interpretation.
I don't see you complaing about QuakeC or UnrealScript and how they slow the game down so much.:) Those games and our god, Carmack, include those scripting languages because they offer signifigant runtime flexibility and high-level control over the underlying engine.
MUQ lacks the 3d environment primitives right now; MUQ won't turn into the Unreal or Quake engine without a lot of work, but even with simple primitives for representing objects in a 3d world. (OpenGL display lists.) you still have the opportunity to do some 3d stuff and still keep most of the low-level computation on the C-side and can do the higher level stuff as scripts in MUF/MUC. As for what services MUQ will offer for representing a 3d world-model in the future, who knows.
I looked at your case study, but all I saw was a splash page underneath. I looked around a little but didn't see anything usable.
Your perspective on MUQ is pretty accurate. Its an interactive programming system, like a FORTH, LISP, TCL, OCAML, SML-NJ, or HASKELL runtime. (I don't know Oberon, so I wont comment). Unlike those, it offers a few useful services like a lightweight persistent store and very lightweight multithreading, which none of those other interactive systems really have. Unlike a MUD or MUCK, it isn't complete in that it has a world-model builtin, but it is a programming language/system in which such a world-model could be built relatively easily.
On this message, I mention MUQ, which is a MUCK/MUD server engine intended to implement almost any type of massively multiplayer world, or at least a lot of the baseline stuff (the persistent database, the mobile code, the concurrent threads, the network IO.)
MUQ is a hammer that can hit a lot of nails, like this one.
Shameless plug for a free version of this: MUQ
on
Anarchy Online
·
· Score: 5
Just a FYI, there's a lonely geek who's been working on a server designed for just these types of games for over 6 years, it just entered beta two months ago. Its been GPL'ed since the beginning. So go check out MUQ, located at www.muq.org.
Muq is a MUCK/MUD server engine (secureity, network, database storage, and job support) that has (so far) 3 language frontends to it: a FORTH-like (MUF), a lisp-like, and a C-like (MUC). The C-frontend was created in a couple of weeks. Or you can create your own compiler front ends. It has a very optimized inner loop and is intended for huge databases of small objects. So all the internal operations are very very lightweight.
It also has an OO scheme to die for, as it shamelessly stole CLOS from LISP... I think it even has a partial implementation of MOP. (Meta Object Protocal, lisp-heads will know that this lets you completely redefine your OO system if you need to.)
I checked out the new version from 4 months ago and almost blew chunks, no muck server engine should rotate the OpenGL teapot as part of its self-tests.:) It's gotten better since.
MUQ has exportable encryption support. (twofish and diffe-hellman, I believe) It is turning into the emacs of MUCK-servers. With luck, somebody may even implement emacs on top of it.:)
It has an implementation of a distributed-world packaged in the distribution, but that is still buggy and highly undocumented. But you can implement your own world on top of the core engine, up to and including OpenGL.
Eventually, when it gets GTK/QT integration, you'll run it as both the server and client, one batch of interpreted software runs on and implements the world-server, or the world-server farm, and another batch of code runs locally, integrating with OpenGL and GTK/QT interfaces to run the GUI frontend.
As with most opensource projects, and especially one with a scope this big, as big as emacs, it needs volunteers and support. And the author deserves some gratification as his child has been in developer-releases for 6 years before last december's beta-release, with his work almost unknown for that entire period.
So grab the source, and design your own giant world on top of MUQ
Thats one thing I was thinking of for what would be a GOOD mobile interface for PDA's that you use all the time.. Why use voice recognition? Its slow, its noisy, and its disturbing to others nearby.. Its also unnecessary for a lot of uses..
Think of it, an eyeball-tracker.. Look at an icon for a couple of seconds and it activates.. Look focus off of the top or bottom of the screen and it scrolls. Look at a link for a second and it activates.. Instant internet tablet that doesn't even need a SCREEN as such.:)
Or combine it with a hand-keyboard or twiddler. (To act like a 'shift' key.)
Or for a palm-pilot PDA, except for data entry, really what else does a palm pilot need?
This fixes one of the big problems with voice recognition, in that its slow, while you can speak fast, correcting a mistake is very unwieldy and slow.. Overall, voice *is* pretty high-latency, at least compared to a keyboard, mouse, or eyeball-tracking.
User Interface, just because everyone said that it would be the ultimate interface, (remember the newton and handwriting recognition), doesn't mean that it will be, or that it won't take 10 years to get it good enough to useful (Graffitti on a Palm). Personally, I think that the interface of the future will be very unexpected...
Just because its possible doesn't mean that it can be practically implemented.. Just because its implementable doesn't mean it'll be reliable. Just because its reliable or implemented doesn't mean it will be useful.
Need I say more? ANYONE who can write an article complaining about excessive bandwidth use and points to ICQ has NO CLUE what they're talking about.
Oh, and according to ipchains, I use about 20-50mb of off-campus bandwidth on the typical day, sometimes going up to a gigabyte once or twice a month with cd or other big downloads.
Overall, while I do use hellacious amounts of on-campus bandwidth (usually remote x-sessions), up to a gigabyte a day, for most of the days of a month a modem could handle what I use for off-campus stuff.
Nope..
MP3 is only specced as a bitstream, (and implicitly, a decoder to decode it). ISO does not spec how one does the encoding to that bitstream... That ISO working group does require that there be a reference implementation, it says nothing about the quality and sophistication of that reference implementation; it just has to work and create valid bitstreams.
Compare this with MPEG[12]; The reference MPEG encoder does work, but it doesn't do the black-magic things that commercial encoders costing thousands of dollars will do as far as high-quality encoding at low bitrates.
Similarily, a lamish coder like 8hz and the other freeware encoders are based off the reference encoder, and likewise aren't very sophisticated. The fraunhofer encoder is black magic and proprietary, and I would have no problems with them patenting it. (As patenting would lead to disclosure of how they accomplish their black-magic.)
Instead, they patented a variety of relatively obvious techniques that ANY encoder would use.. This way they get to kill competetion and still keep their coder trade secret. This is why I dislike their patent; for this abuse. They get the best of both worlds; they don't have to disclose anything non-obvious, and they still get a government-granted monopoly on MP3 coding.
Had they patented their encoder, I would be gloriously happy. The tricks used in their encoder would be disclosed to the world, and likely it could or would be improved upon to make it faster or higher quality. Nor would I have any problems with their monopoly, as I know that I merely have to wait for it to exit patent protection. Also, someone who derive a superior encoder has the option of licensing the patent or selling it to them.
This is what the patent system was meant to support, this was the purpose, and properly used, its not all that bad of a deal for the world. What is a bad deal for the world is when 30-minute back-of-the-envelope ideas are patented and used to control whole industries. When someone patents the result of years of work, (like fraunhofer), they deserve the patent and its rewards.
But, since the patent office is granting patents for quick ideas, people like fraunhofer patent the obvious ideas behind their invention, then they keep their real work a proprietary secret.
Summing it up: ``Patents should be granted for perspiration, NOT inspiration.''
They patented the fundamental technique of audio coding. (The equivalent of JPEG for audio; perform a frequency transform (DCT), quantize, entropy encode.) And just as JPEG was revolutionary when it came out, so has MP3 been; lightyears ahead of any other competeing format.
MP3 is the same way, well, except, that they didn't actually release anything useful on their patent. The black-magic that they managed to produce is their MP3 codec, but you won't find that on any patent application. they made it trade-secret. It deserves a patent, if anything does.
This is sorta like 3dfx patenting the idea of using a hardware-accelerated 3d graphics card to speed up games, then keeping all of the research and tricks they use in their implementation a trade secret.
So, we get the WORST of both worlds. They don't disclose their 'real' invention, and yet they are granted a patent that stops anyone else in their business from functioning. Full disclosure? HAH!
That doesn't discard my discussion on block size..
And maybe.. The thing is that I REALLY don't want to have drive corruption. I don't mind it it blows up a drive, I've got my data duplicated between drives.. What will destroy me is if I get corruption. I'll use ext2 until about 3 months after a newer filesystem becomes the 'standard' in redhat or debian or some other major distribution.
These are normal ext2fs filesystems.. Even despite the fact that e2fsck isn't fully parellelizing the checks, I have clocked a full bootup at 7 minutes.
:)
/dev/foo'.
...] that you're going to store on that partitian to change radically. Then get rid of 3/4 of them and speed up the fsck.
/tmp has the stock 4kb/inode.. I never know if I'll suddenly stuff lots of small files in there.)
:)
:)
/foo -size +12k -size -24k | wc ; find /foo | wc ; find /foo -size +24k | wc ; find /foo -size +128k''. Then decide if changing the blocksize makes sense.
.75%. You save 2.25%. And as it just so happens, the overhead of the bigger blocksize is loss of about 3%. So overall, you break even; within one or two percent of the origional disk usage. This is how I formatted most of my system.
:)
Among the other partitians, I have a 23, 16, and 20gb partitians. (on seperate drives). I have about 75gb of disk space total, with 46gb of that currently in use (723484 files/directories). My trick is twofold:
First, the default inode allocation is a bit insane.. Inodes are 128 bytes each and there's one inode for every 4kb of diskspace. So for every 10gb of disk, the default format uses 320mb of inodes, capable of storing over 2.5 million files! And e2fsck has to scan each and every byte in each and every one of these inodes. So why not drop that to 1/4, or one inode for every 16kb? Then for every 10gb of diskspace e2fsck only has to scan 625,000 inodes or 80mb worth. Can you say 4 times faster?
Some might claim that they could run out of inodes with an allocation that small? Unless the server has lots of small files (mail, news, proxy), its highly unlikely that you'll have even 500,000 files on the whole thing. You can get this info very quickly by using 'tune2fs -l
If you're like me and you notice that you're using only 1/8 or even 1/15 the total number of inodes, and you don't the file charactaristics [number of files, directories, average size,
In my case, I've got a total of 4.2 million inodes, with only 700k used, had I formatted normally, I would have had around 19 million. (multiply by 128 bytes/inode to see how much storage they need, and how many hundreds of megabytes e2fsck would need to scan.) I also tuned my partitians seperately. Based on how they were currently being used and on the risk of that changing radically. (For instance,
Ok.. That's trick #1.. The second trick is the default blocksize. Changing this speeds up every filesystem operation, from allocation to fsck to reading to writing to unlinking. This trick does waste more diskspace.
Normally, ext2fs allocates storage in 1kb blocks. But changing that to 2kb has many advantages. First, a file requires only half the number of drive transactions, which will improve speed. Second, since all allocations are now done in 2kb sizes, I can allocate (and remove) twice as fast. Finally, due to the subtletly in I, II, III blocks that form the allocation BTREE, (These are diskblocks which point to diskblocks that point to diskblocks containing data.) Having twice the size of allocation means that the btree has twice the fanout AND each leaf holds twice the data. I'm not sure how much impact this factor has on speed.
For those of you who don't know how ext2fs inodes are layed out.. They're actually curious.. The inode itself points to the first 12 blocks of the file directly (normally the first 12*1024). Then it points to an I block that contains pointers to the next blocks in the file. (normally, the next 1024/4 = 256 blocks, or 256kb). Then there's the II block, which contains pointers to I blocks. Finally, there's the III block that contains pointers to II blocks. You don't need an IIII block because with only an III block, you can handle files up to about 16tb, which is larger than the maximum possible filesystem size.
Now, the reason to get into this big long explanation is to make a fascinating point about diskspace usage.. If you have a blocksize of 1kb, then files less than 12kb in size don't require any I blocks. While if you have a blocksize of 2kb, files less than 24kb in size don't require any I blocks.
So, if your filesystem has files between 12kb and 24kb in size, if you compare the disk usage between a filesystem of 1kb blocksize and 2kb blocksize, The worst you could do is waste an extra kilobyte in the last block, but that wasted diskblock is made up for the fact that you don't have an I block.
And that's the worst you could do. In fact if you have luck, you can actually come out pretty far ahead! Formatting with a blocksize of 2kb may actually waste LESS space AND require fewer seeks!
Now combine this with the tidbit that the average file tends to be around 13kb. If the majority of the files on the partitian are between 12 and 24kb in size, you can't lose with this!
As files get bigger than 24kb, the relative size of wasted space in the last block becomes much less relevant, (for files around 24kb, the maximum percentage of wasted space is 2kb/24kb ~~ 8%. For 128kb, its 2kb/128kb ~~ 1.6%) So a 2kb blocksize has a decreasing affect on wasted space, while at the same time increasing the bandwidth and speed of handling large files. So at files >24kb in size, you start winning, for files >1mb, you start winning a whole lot.
If the partitian is only intended for very large files, (Ones where any wasted space in the last block is irrelevant with respect to the total size.), then a 4kb blocksize makes perfect sense. I don't suggest this idea too strongly because its not as applicable as a 2kb blocksize.
Those are just a few characteristics of ext2fs with regard to blocksize. There's no magic bullet for speeding up ext2fs, but depending on how the filesystem is used, you can frequently speed it up. Look at your drive, the average file size, and the filesize distribution. ``find
For my personal system, the overhead of increasing the blocksize to 2kb is around 3-7%, 3% in most places and 7% where there tend to be many small files (/home/http).
Closing remarks:
If you use both tricks together, they almost cancel themselves out. The overhead of having 1 inode for every 4kb is 128b/4kb, or about 3%, if you format with 16kb/inode, the overhead drops to
And if you actually need millions of 4kb files, well, unjourneled ext2fs is not the filesystem I would reccomend.
So, a quick summary. My system takes 7 minutes to boot. It has 723484 used inodes, out of a total of 4.2 million inodes. I have 46gb of drivespace used, out of a total of 75gb. A boot with a full filesystem check takes 7 minutes and requires reading about 500mb worth of inodes. A boot without a full fsck takes one minute (about 20 seconds of that just mounting).
Had I formatted it normally, I would have saved 500-1500mb (1-3%) of drivespace, had 18 million inodes. Fsck times would probably take 4x-8x as long and requrie reading about 2.3gb worth of inodes.
I considered the trade well worth it for me, and I suspect that it would be well-worth it to many other people. (Excluding those who's boxes have multi-year uptimes.
[PS: I may turn this into a mini-faq.]
You can do far worse than that.. Just take a P166, say, like my computer.. Then run a copy of xlock on it (-delay 0) you can find modes that'll use >10,000 context switches per second.. Then run a few hundred copies of 'cat /dev/zero >/dev/null', nice them to 10 or 15. Under X, it does get a little annoying to use, but from a console you don't even notice the load. (And with amp's realtime playback, your MP3's go through with nary a pop or stutter.
;] concurrently to all of the above, but I expect it to handle that too.
:)
True, I haven't also tried a forkbomb [while (fork()>=0)
Linux can handle that load fine, even on a little old P16, so your anecdote doesn't carry much weight, at least with me.
A few things I've noticed throughout this discussion is almost ignorance of newer languages and language ideas.. Do not forget that the average software engineering development takes 18 YEARS to be put into widespread use.
OO has been with us since 1980. Its only in the mid-90's that its become big. Similarily, the new language ideas that have been developed relatively recently (functional programming--haskell, sml-nj, ocaml) will be the languages of the future in another 10 years.
In these languages..Here I will refer to SML-NJ, as I am most familiar with its type system, they are strongly typed. Polymorphic; lists are TRULY polymorphic, Unlike templates, there's no code duplication. They are also extremely strongly typed. In actuality they have an order of magnitude more typing information than C++ has, except that I don't care because the compiler itself intelligently infers all of that typing information fully automatically. Functions are truly first-order values. They may be 'created' at runtime (via partial application or closures), stored, passed around, and anything else.
SML is also much more understandable and more consise. It also has a module system that's extremely careful. You cannot even compile a program that violates the module system. As a language, the specification is well under 100 pages of carefully formalized mathematics.. (Though a careful analysis of SML shows that there are 'dusty corners' in the specification. My research right now deals with specifying a language so explicitly that an automated theorem proving system can prove the 'correctness' of the language specification. If anyone's interested in the tools I'm using, www.twelf.org.)
As far as consiceness and modularity: Remember the law of software engineering, half the number of lines of code means 5x easier to analyse, debug, and maintain.
As for the other languages, haskell has an even more versatile type system than SML-NJ has, I think its powerful enough to handle most of the typing characteristics of OO programming. OCaml is another language in this group.
While its still true that none of these languages are ready for prime time yet, I suspect that derivatives from them (like ML-2000) may be the language of the future; the languages that everyone will be calling the pancea in 10 years.
Given that it will probably be at least a decade or two until the next 'big thing' comes out, what things currently in the pipeline do you think will be big? Will it be the strongly typed functional languages? Will it be the a Java-style IDE where people don't think of a program as a set of linear text files but rather as a collection of objects and methods?
Another way of asking the same question, what abstractions do you feel will be the ones exploited in the future? Will the IDE abstract away the textual or linear representations of the code? Will typing, interfaces, and modularity be used to abstract away the objects implementing an interface? Will we finally have a good application programming language which completely abstracts away the ideas of bits, bytes, pointers?
Or, should I shut up because I've been around 'academic' language designers too much, who don't know how to make a language that the majority would accept?
Hey, have any of you ever remembered that human civilization has only taken off since this nice interglacial period happened?
We *should* be in an ice age now, an ice age that should be slowly warming up over the next few hundred thousand years.
But, thank god for humanity, the glaciers retreated so that we could form our modern civilization.
I can't believe this.. Can someone tell me how to take these guy, put them up to the wall, and shoot them?
Look at DeCSS or css-auth?
Are they tools whos sole purpose is to cause harm and aid people in the thievery and piracy of intellectual property, or just tools that will let us play our legitimately bought DVD's in linux?
Only 36 hours ago there was that article about the head of the RIAA and his opinions about how DeCSS had no purpose other than piracy. And we mostly, 99% agree that he's wrong. Well then, why all this argument for the case of TFN? Why are many of us unhappy about TFN and blaming the author for all the problems he caused by the tools he created, yet happy about the creation of DeCSS and css-auth?
Why the double-standard?
Wasn't SMB proprietary and secret, at least until the samba team reverse-engineered enough of it that MS had nothing to lose by releasing the specs for the filesystem protocol? Just because it is open now doesn't mean that they didn't have to reverse-engineer it enough to shame the company into opening it. (Remember RC4 anyone?)
Besides, how many years did it take for domain controller support to be added. I thought that they had to reverse-engineer that too.
You make good points, but there are some people who aren't interested in purchasing DVD's until there's a reasonable Linux player for them. And you're right, we don't have a `right' to use their playback software. But don't we have a right to build our own?
What he and you are saying is that we can't look at another piece of software and reimplement our own with the same functionality. How many DOOM/Quake clones have there been, functionality the same as the origionals? That's the issue of look&feel all over again.
I won't reboot into windows just to play DVD's. Nor can I afford the money to get a multimedia system. (TV, VCR, stereo, dvd, cd, speakers) My computer, specifically linux, fulfils that role for me.
So, I will sit around with the DVD drive in my new computer, waiting for a good linux player. When it comes, I will start purchasing DVD's. Unless the other equipment comes down in price, I don't see myself purchasing it.
Your world may revolve around money and jealousy over not getting any. I like to think that other things are more important... Like a system that's stable, flexible, and powerful and does what I want. (Which is a value without price, I might add.)
Do you think you have a right to take the fruits of my labor, without restriction, even if it is unpaid and volunteer, then resell it for money to further your livelihood?
....) has an estimated value in the multi-billion dollar range. Why should we, the group who created that value, share that wealth with you, without restriction, unless you're willing share any additions to that wealth BACK so the rest of us can enjoy the new pool? Regardless of your answer, its OUR choice how it is to be shared, and tough luck, you have to respect that.
Just because I didn't earn money doesn't mean that that labor doesn't have value, the GPL/LGPL codebase (linux, emacs, gcc, glibc, bash,
Yes, we require that you share back any additions to that pool of wealth, but is that so high of a price to pay for the billions of dollars of code sitting in it? There are even exceptions to that requirement; you don't have to share back your additions if they're for your own use. You can even use any of the software in it completely freely.
Few individuals get free(monetary) access to billions of dollars of code. Fewer get access and the ability to alter and redistribute it how they wish. Why do you not thank your lucky stars that you and we are so fortunate and lucky to?
Whoa, I finally managed to fully read the thing..
Notice how all the comments are attributed to a Nelson, but nowhere in the article does it say who he is.. We don' know if its a first name or a last name, and there is no specific affiliation.
It looks like some reporter there got duped into listening to some idiot who is in desperate need of a cluestick, actually about a dozen cluesticks. Its not the fault of the magazine. (How many `intelligent' people have been scammed by Goodtimes or other `obvious' falsehoods?)
So, its either a case of ``Never ascribe to malice what can be explained by stupidity can'', or time to get out the conspiracy theories.
My advice would be to kindly email them telling them that Nelson is a fraud who doesn't know what he's talking about and they would be better served going to Lopht or a real security company for advice. Oh, and ask who Nelson is, so that we may give him/her the instruction (and flames) they so richly need. Of course, this is all irrelevant, as they've probably got about 300 idiotic flames in their inbox right now.. Oh well, the slashdot crowd shoots its own foot again.
Whoa, I finally managed to fully read the thing..
Notice how all the comments are attributed to a Nelson, but nowhere in the article does it say who he is.. No first name, no last name, no specific affiliation.
It looks like some reporter there got duped into listening to some idiot who is in desperate need of a cluestick, actually about a dozen cluesticks. Its not the fault of the magazine. (How many `intelligent' people have been scammed by Goodtimes or other `obvious' falsehoods?)
So, its either a case of ``Never ascribe to malice what can be explained by stupidity can'', or time to get out the conspiracy theories.
My advice would be to kindly email them telling them that Nelson is a fraud who doesn't know what he's talking about and they would be better served going to Lopht or a real security company for advice. Oh, and ask who Nelson is, so that we may give him the instruction (and flames) he so richly needs. Of course, this is all irrelevant, as they've probably got about 300 idiotic flames in their inbox right now.. Oh well, the slashdot crowd shoots its own foot again.
Don't you mean that you check for it on the 'default port'.. IE, that port number which any halfway braindead cracker would change.... Or am I giving these idiots too much credit for brains?
Besides, who said that I meant NT?
Is that so?
:)
We had better get a module for BO2k quick, one that will do ping-floods and other DOS nastiness, especially one that can be triggered easily with a single UDP packet..
Just for illustrative purposes of course, as we don't want to come out as if we are SUPPORTING such horrible things.
Ah, but are you sure that `negros' weren't considering damaging to children, oh, around 1900-1960? Why was there discrimination if this wasn't so?
And this isn't about keeping it out of the children's sight, it is about burning it.
And I know that my logic fails, its a grey area and like all other grey areas, its fun.
..... ends when it reaches my face.''
Children do not, by definition have many rights that adults have. Their rights are a functions of their parents.... So a more accurate phrasing of what you want is ``Parents have the right to keep their children from seeing pornography in public.''
But replace the words `seeing pornography' with `being around negros'. Literally go and do it to your post. This is the same argument that was used before the era of civil rights. Keep the children away from corrupting negros.. Have ``negro hours'' in the public library so that they can use it.
Thank god for our country that this was overturned. Your rights to protect your children have limits as they should. ``..... to save the children'' is an often-used phrase for many horrors. discrimination, `seperate but equal',
There is also the other philosophical issue about filtering software being the same as burning books. Its keeping the books from ``corrupting the youth.'' Do we want to teach our children that burning books ``for the good of the community'' is OK.
Not to mention, its hypocritical. I knew how to make Nitrocellulose (smokeless gunpowder) when I was 12! The criminal that did this to me? It was an old Time-Life about the history of polymers and how nitrocellulose was accidently discoverd.
(For my obligatory corrupt-the-youth crusade, I'll tell you how.. Someone had a vial of nitric&sulpheric acids they were trying to seperate. They spilled it accidently. He used a cotton shirt to clean it up and hung it out to dry. When he came back, the shirt was gone.)
I've noticed that nobody has yet asked ``Why'' Why IS VA, a linux hardware company buying andover, website hosting/owning company?
Why did they purchase it? Companies don't tend to foolishly spend a whole lot of money for no reason.
Is VA doing this because they support linux, that they are going to funnel more money into linux projects? If this is it, then why buy slashdot/freshmeat, you'd be better off creating another Precision Insight, or funding Abiword or GNOME development.
Is VA doing this because they want to (eventually) bias the editorial content, like the media companies?
Or, is Andover falling over, and VA came over as a white knight to rescue the important linux infrastructure of Freshmeat and Slashdot? If this was the case, then haven't we heard about it before?
Microsoft buying/building MSN and MSNBC parallel doesn't work in this case. There is a strong strategic reason for it. Microsoft along with AOL knew that computer networks and widespread ubiquious networking was going to happen. Both fought over controlling it, though (thank god) the open internet blindsided both. Microsoft thought with their OS monopoly and content that they could funnel and attract people into their own commerce network and make lots of profit. VA doesn't have this reason, andover's most public properties don't sell anything more than banner ads.... (unless they're planning on changing this?) And banner ads aren't going to scale to large profits.
So, why did VA butt their nose in where they knew it wouldn't be desired, into purchasing a company that seems to have no importance in any strategic plan?
Yeah, of course speed will be a problem. But you aren't being completely fair about it.
:) Those games and our god, Carmack, include those scripting languages because they offer signifigant runtime flexibility and high-level control over the underlying engine.
The minimum speed is 1/50 that of C, but if your primitives do a non-trivial amount of work, then it will be a lot faster.
Like any interpreted language, if your primitives are small, the overhead of interpretation is the bottleneck. If the primitives to a lot of work (matrix multiplication, geometry transformation), then the time spent in the primitives masks the overhead of the interpretation.
I don't see you complaing about QuakeC or UnrealScript and how they slow the game down so much.
MUQ lacks the 3d environment primitives right now; MUQ won't turn into the Unreal or Quake engine without a lot of work, but even with simple primitives for representing objects in a 3d world. (OpenGL display lists.) you still have the opportunity to do some 3d stuff and still keep most of the low-level computation on the C-side and can do the higher level stuff as scripts in MUF/MUC. As for what services MUQ will offer for representing a 3d world-model in the future, who knows.
I looked at your case study, but all I saw was a splash page underneath. I looked around a little but didn't see anything usable.
Your perspective on MUQ is pretty accurate. Its an interactive programming system, like a FORTH, LISP, TCL, OCAML, SML-NJ, or HASKELL runtime. (I don't know Oberon, so I wont comment). Unlike those, it offers a few useful services like a lightweight persistent store and very lightweight multithreading, which none of those other interactive systems really have. Unlike a MUD or MUCK, it isn't complete in that it has a world-model builtin, but it is a programming language/system in which such a world-model could be built relatively easily.
On this message, I mention MUQ, which is a MUCK/MUD server engine intended to implement almost any type of massively multiplayer world, or at least a lot of the baseline stuff (the persistent database, the mobile code, the concurrent threads, the network IO.)
MUQ is a hammer that can hit a lot of nails, like this one.
Just a FYI, there's a lonely geek who's been working on a server designed for just these types of games for over 6 years, it just entered beta two months ago. Its been GPL'ed since the beginning. So go check out MUQ, located at www.muq.org.
Muq is a MUCK/MUD server engine (secureity, network, database storage, and job support) that has (so far) 3 language frontends to it: a FORTH-like (MUF), a lisp-like, and a C-like (MUC). The C-frontend was created in a couple of weeks. Or you can create your own compiler front ends. It has a very optimized inner loop and is intended for huge databases of small objects. So all the internal operations are very very lightweight.
It also has an OO scheme to die for, as it shamelessly stole CLOS from LISP... I think it even has a partial implementation of MOP. (Meta Object Protocal, lisp-heads will know that this lets you completely redefine your OO system if you need to.)
I checked out the new version from 4 months ago and almost blew chunks, no muck server engine should rotate the OpenGL teapot as part of its self-tests. :) It's gotten better since.
MUQ has exportable encryption support. (twofish and diffe-hellman, I believe) It is turning into the emacs of MUCK-servers. With luck, somebody may even implement emacs on top of it. :)
It has an implementation of a distributed-world packaged in the distribution, but that is still buggy and highly undocumented. But you can implement your own world on top of the core engine, up to and including OpenGL.
Eventually, when it gets GTK/QT integration, you'll run it as both the server and client, one batch of interpreted software runs on and implements the world-server, or the world-server farm, and another batch of code runs locally, integrating with OpenGL and GTK/QT interfaces to run the GUI frontend.
As with most opensource projects, and especially one with a scope this big, as big as emacs, it needs volunteers and support. And the author deserves some gratification as his child has been in developer-releases for 6 years before last december's beta-release, with his work almost unknown for that entire period.
So grab the source, and design your own giant world on top of MUQ
Thats one thing I was thinking of for what would be a GOOD mobile interface for PDA's that you use all the time.. Why use voice recognition? Its slow, its noisy, and its disturbing to others nearby.. Its also unnecessary for a lot of uses..
:)
Think of it, an eyeball-tracker.. Look at an icon for a couple of seconds and it activates.. Look focus off of the top or bottom of the screen and it scrolls. Look at a link for a second and it activates.. Instant internet tablet that doesn't even need a SCREEN as such.
Or combine it with a hand-keyboard or twiddler. (To act like a 'shift' key.)
Or for a palm-pilot PDA, except for data entry, really what else does a palm pilot need?
This fixes one of the big problems with voice recognition, in that its slow, while you can speak fast, correcting a mistake is very unwieldy and slow.. Overall, voice *is* pretty high-latency, at least compared to a keyboard, mouse, or eyeball-tracking.
User Interface, just because everyone said that it would be the ultimate interface, (remember the newton and handwriting recognition), doesn't mean that it will be, or that it won't take 10 years to get it good enough to useful (Graffitti on a Palm). Personally, I think that the interface of the future will be very unexpected...
Just because its possible doesn't mean that it can be practically implemented.. Just because its implementable doesn't mean it'll be reliable. Just because its reliable or implemented doesn't mean it will be useful.