Innovation on the Edge?
MCassatt asks: "It's a truism in many fields that breakthroughs come from the edge: the scandalous Impressionists become pretty pictures for posters and umbrellas; the world of science fiction becomes the world of science.
The wonderful, the fantastic, and the mad of today are tomorrow's mainstream. Are there examples of this in computer science? Not extreme programming, but extreme programs?"
Gnutella
Bit Torrent
Freenet
Reiserfs
Linux Kernel
Open SSH
Encrypted Filesystems
GnuPG
At least in my opinion p2p and crypto are the edges in coding right now. Both can be hugely successful if you succeed in writing them properly. They can also be a huge failure if done improperly. Personally, I'm amazed that there aren't more p2p worms/remote exploits out there. Every now and then there are a few breaks in crypto from a weird angle, but in general they have been very successful as well.
Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
To this day this prolific timewaster has left a very impressive swath of damage to production. If that isn't extreme, then I don't know what is.
Lots of fun little things to place with at Google Labs.
http://www.lmcdms.com/
DMS is the US Government's international secure email implementation. At a glance it looks like a bunch of crappy obsolete code and operating systems trying to do email, but when you stop and think about what is DMS is doing, it is pretty damned impressive.
Much of theoretical computer science is all about some crazy professor looking at a problem that he thinks is cool, without worrying about its utility. Then in a few years, somebody finds a practical application.
Some guy thinks one day, "Life is just the replication of information. Computers can do that". We all love to hate them, but you could argue that conceptually, computer virii are as "alive" as organic virii. If that isn't an etreme idea, what is?
If I seem short sighted, it is because I stand on the shoulders of midgets
Handyman, workman
The question of what is on "the edge" can be answered by how much controversy the thing recieves - Something accepted by all will be mainstream, "the edge" denotes a radical departure and whenever there's a radical departure there's going to be quite a few people complaining about it.
It would seem to me that this whole palladium situation is the most controversial software project in a while, so it could probably be termed "on the edge", too.
the thing is if a program is really innovative and radical you really cannot tell. example an example of new radical science in work would be an "ionic engine" it took princeples found from earlier sciences and applied them. we don't have this in CS. Nobody comes up with a theory about how "the computer space" works, and then tries to prove it, because everything is pretty much well documented and everything is understood because we created, so you really can't have really extreme programs. unless that is if someone uses a function really weird and gets it to something else, and i really don't see alot of that.
For The Best Jazz/Hip-hop fusion > COlD DUCK
Should revolutionise computer usage when it gets more reliable in a few years. IBM have been at it for a while now.
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
I agree. Legalise vigilante execution of slashdot trolls NOW!
"...the scandalous Impressionists become pretty pictures for posters..."
I dunno... impressionist programing? It would only look like code from far away.
Besides, Microsoft already makes programs that look useful from far away but crappy close up.
The edge is where the known meets the unknown. That's where all innovation comes from - you find out or do something new, something that has never been done before. What new can you find in a territory already explored? Only a place that hasn't been explored yet (or some interesting bugs/plants/animals).
Hell is not other people; it is yourself. - Ludwig Wittgenstein
"Computer space" is the object of study of computability theory. Turing Machines, Post Machines, the \lambda-Calculus, the Language of WHILE-programs, function (morphism) composition, etc. These are all theories about the nature of computer space. Since the Church-Turing thesis and complexity theory pretty much cover the fundamental physics of the space, instead we worry about different ways to visualise and apply the space. It's much closer to engineering than physics is style, but you must admit that there's some similarity.
There is a possibility of people saying "In theory, our computers could do this..." But as soon as something makes it as far as actually being implemented, it's no longer fantasy but already in the realm of science. This is why there's very little "fantasy" in the computing world.
"Inflammable means flammable? What a strange country!" -Dr. Nick, The Simpsons
I'd like to put forward this Turing machine, implemented using the rules of Conway's game of Life. It astounded me when I first saw it, and it astounds me still. Have a look at some of the components using the provided applet. If you've ever played with Life, you'll know how hard it is to create anything non-random at all.
Sweetcode often has interesting pieces of programming too.
Having been involved in the development of Kai's Power Tools, I'd have to say that Kai's user-interface designs had a strong influence on what's out there today.
Our philosophy while writing those programs was based on the observation that existing UI paradigms were created for processors hundreds of times slower than current machines; why not leverage that power to create interfaces beyond the standard buttons, menus, and 16x16 pixelated cursors?
Say what you will, the OSX Dock (for example) is indisputably Kai-like. I think that's a good thing.
Weeks of coding saves hours of planning.
Software that enables one to turn a bunch of ordinary off-the-shelf computers into a distributed cluster to run message passing programs on were pretty radial at the time, but now it seems everybody does it. I run my codes just as often of Linux clusters as on big IBM SP/3 machines, and for a lot of tasks, the Linux clusters cannot be beat.
My votes would be for the following
File under 'M' for 'Manic ranting'
I think running the Microsoft Word paperclip applet should be considered an extreme sport, at least. I think, on a serious note, that more and more people are going to start using apps that allow them to view data constructs in visual terms, like the network map thingamajig I saw for instant messaging the other day. It allows you to see circles, cliques, newbies, etc., and how they're distributed through the IM world. New ways of looking at data for those visual types.
Literally, someone who enjoys tinkering about with things.
To illustrate, maybe I shall say that Linux is a bricoleur's dream OS, for example?
-- B.
This sig does in fact not have the property it claims not to have.
Check out the Avalon project. If is a framework encompassing the ideas of Component Oriented Programming and Separation of Concerns.
Also, read about Aspect oriented Programming, which "modularize[s] crosscutting aspects of a system" by allowing a programmer to specify "aspects" of a class or component such as logging, security, remotability, and more.
Spreadsheets. I am not aware of any other application that can be said to have had as much of an impact on computers. The spreadsheet on an Apple II was what brought personal computers into buisness, and was what gave users the power to do their own research and experimentation.
Once Personal computers came out, and Lotus came up with 1-2-3, the economics of volume production became powerful enough that costs dropped to the point that personal computers became useable for other activities (word processing was already being done on mini and main frames, so it doesn't count, databases have been on mainframes for a very long time, etc.)
Eventually costs got to the point where users could afford a computer simply to play games on. Of course then Games got to the point where a good gaming machine costs more than an excelent business grade PC.
-Rusty
You never know...
This is taken from my copy of "They Have a Word For It", by Howard Rheingold:
bricoleur (French):
A person who constructs things by random messing around without following an explicit plan. [noun]
I have often heard it applied to people who use objects or systems in ways the original designers did not anticipate; Levi-Strauss also defines it as someone who plays with objects and technology in order to gain a deeper understanding of them. Or, in short, a hacker (in the original sense).
On the Internet, nobody knows you're a woof grrr arf arf arf
Nah, if M$ hadn't pulled their typical "embrace, extend, envelop" on ISO-8859-1, this would not have been a problem.
-uso.
Dreams, dreams, don't doubt dreams, dreaming children's dreaming dreams. Sailor Moon SS
I'd say that the cutting edge is the stuff being done in A-life and evolutionary algorithms, and probably neural nets.
Logic, macros, and more
"Goodbye World"
AAAAAAAAAAARGH!
SPLAT!
oh brave new world, that has such people in it!
"Smart quotes" are "standard ASCII"!?! WTF!? What are they teaching kids in school these days? Get an education, man. Smart quotes were a Microsoft violation of ISO character set standards (hint: nothing to do with ASCII whatsoever, apart from some not-coincidental overlap of the standards). Microsoft said, "hey, we're putting these characters there and we're calling it ISO even though its not. The rest of the world will have to fall in line with us because we're Microsoft". Standard embrace/extend stuff, as usotsuki pointed out.
These are known by mainstream techies today.
Think instead of what these techies do *not* know.
Remember when you first saw email or a web browser?
These apps changed *so* much in our world.
Think in that arena.. what could change so much?
Cheers, Joel
Let's review, shall we?
VisiCalc ...and its successors spawned a trillion dollar industry, made Steve Jobs a billionaire, and almost singlehandedly eliminated the profession of "bookkeeper".
WordPerfect ...ditto for the profession of personal secretary. Only executives use them now.
Mosaic ...let's see. Trillion dollar industry, hundreds of business models, hundreds of thousands of businesses, millions of lives and careers changed... seems pretty extreme to me.
I could go on, but you get the idea...
Recent History:
How about an operating system written as a substitute for massive commercial systems, written initially by one guy, then by a bunch of people collaborating, without direct compensation, via email? (Linux)
How about a system to allow anyone with a computer and a pipe to publish structured hypertext and images for all the world to see? (Mosaic)
How about a system for independent individuals to type to each other in real time? (talk, IM)
How about a system for people without a static IP to share files? (P2P)
How about a system for people to contribute spare CPU cycles to a collective social work? (Distributed.net, SETI@Home, Folding@Home)
The Future:
What's on the edge now that will be huge tomorrow? If I knew that I'd be in angel capital. (speaking of equity, how about online stock trading systems?)
What's on the edge and either hasn't found a niche or isn't sufficiently advanced yet (and may never be)? 3DUIs, Freenet, Complex Adaptive Systems, Face Recognition; and those are less than a cube in the iceberg.
Stop-Prism.org: Opt Out of Surveillance
Emacs is an editor that has been around for 20+ years, it is so extensible that you can use it as your debugger, you can use it to compile stuff, you can modify EVERY behaviour of it. You can also add lots of stuff like a doctor, a tetris game, an interface to gnuchess, etc. Emacs is also extremely stable, safe (no buffer overflows or stuff like that). Even if I don't use Emacs (I prefer Vim), I think it's one of the most extreme programs ever designed.
Lets talk about extreme applications, those which changed our views and methods to act. I do not believe that any application has ever been created without some examples been existent before, but there is often one specific version that got used widely and opened the eyes of a lot of people.
Spreadsheets: Visicalc was not the first, but the first on personal computers. These tools allow you to play with a number of different scenarios in a way you could never handle without them and therefore give a chance to see into the future.
1st person shooters: Doom (and Wolfenstein and hundreds of followers) realized least some of the promises of virtual reality. A artificial world, created in real time, in a way that was realistic without to much burden on your own fantasy, dense and moody enough to really immerse yourself into that world. A copy of our real world as an interface to a computer, more coming.
Communication (Email/News/Chat): The video text system Minitel pushed by France Telecom during the 80s and early 90s by giving away the (primitive) terminals for free. This is most likely the first electronic mass medium that existed with up to 35 million users, more than 50% of the whole population of France. Was used massively for mail and chat (and porn), but also included a micro payment system and was a huge ecommerce success more than a decade before the web became popular. Communication is the killer app of all killer apps.
ebay: ebay is its own category (and, of course, it's an application), everything else is a copy. First worldwide successful C2C business, could not exist without the web, but has proved that the low cost of a medium can generate markets where there was no margin before. Removed the costs for advertising, customer service, handling etc. by reducing its own function to a mere communication enabler.
Search engines: Google comes in mind, but Google is just a very clever version of Altavista, I do not remember who started it. Whenever you search in a text with your preferred text processor, you're using its search engine to run a full text search, so it's not really new. But applied to an enormous body of data (unsorted, in contrast to classical databases) gave us a kind of 'instant knowledge' unthinkable before. I own dozens of dictionaries and never leave without my Encyclopaedia Britannica (on my iBook), but nothing can compete with billions of pages of unstructured information at my fingertip.
web browsers: Mosaic was for many people the first look into the computer interface of the near future. A system, easy to use from a consumer and producer perspective, at low cost, to enable exchange and access anything that can be squeezed into HTML and some pictures.
bioinformatics tools: BLAST (Basic Local Alignment Search Tool), a dedicated database for storing, comparing, finding and annotating sequences of DNA etc., to be run at home (if you want to) or in your lab or easily accessible on the web. Enabled researcher worldwide to get immediate access to the most current findings, therefore increasing the speed in which the humane genome could be decoded (and stealing Celeras show). This kind of technology will speed up our acquisition of knowledge in many ways.
When you look at this list, there are some common themes:
- eases the access or handling of data
- works on low tech machines
- enforces communication
These will be found in a lot of 'extreme applications', be it p2p, encryption, proteomics or whatever.Chriss
memomo: free web based language trainer DE-EN-ES-FR-IT
Funny that no one has mentioned any of the embedded systems that have had a broad, tangible impact on everyday life...
- DVD video, Dolby Digital audio
- Fly-by-wire aviation
- CAT, PET, MRI
- Automobile controllers
- Routers and switches, to say nothing of ESS and its descendants
- Toys
- Credit card readers, ATMs
Plus a dozen others on the tip of my tongue, and those are just the ones I'm aware of. Anyone care to post something about power grids and other infrastructure? How about applications in manufacturing, business, medicine, art, military, construction?
More generally, the well-known When Things Start to Think generally illustrates the kind of dramatic effects that can occur when you add just a bit of intelligence into a mundane object (or process).
--
Dum de dum.
Freedom is not the license to do what we like, it is the power to do what we ought.
From their site...
what is sweetcode?
Sweetcode reports innovative free software. "Innovative" means that the software reported here isn't just a clone of something else or a minor add-on to something else or a port of something else or yet another implementation of a widely recognized concept. (These are all perfectly fine and useful things, they're just not what this site is for.) "Free software" means "as in speech". Software reported on sweetcode should surprise you in some interesting way. "I didn't know you could do that" or "I never thought about that problem that way" or "What a strange way to do things".
This is not an all-encompassing directory, a project hosting service, a site for news in general, or a resource for community discussion. We don't report project updates (unless there's a previously unreported major new innovation); if you see something you like and want to track its progress, you should use the available tools on Freshmeat or Sourceforge for doing so.
We're unlikely to report anything that shows up on Slashdot, NTK or other ridiculously popular sites which everyone reads already. Finally, this should be obvious, but the projects reported here are generally not affiliated with sweetcode. We just link 'em.
When ever you use the "copy" program you are accomplishing the oldest and dearest dream mankind has ever had - you are both having your cake and eating it too.
The ability to infinitely replicate something, each copy being absolutely identical to the first, but also infinitely distributable to however many desire it, is earth shaking.
This is the major thing human kind must learn to deal with into the future. More then any other single event or "discovery" the lowly copy program (and it's brother "paste") will have greater effect on the way we view our world then any other thing.
I've been developing software to help computers associate language with perception. Here's a recent workshop paper if you're interested. More info on my site (see sig).
I would count the early arcade games, and the Apple II games.
These machines and programs jammed an enormous amount of programming functionality into incredibly tight spaces. Many of the old arcade programs ran on 4K, 8K, or 16K 8 bit computers, and ran on machines with clock speeds of under 1 MHz, and effective instruction rates of mere hundreds of thousands per second. Even a fully loaded Apple II gave you under 32K of actual program space to work with, once you subtracted the low RAM, the hires graphics areas, and the BASIC ROM space, and people did a whole lot with that 32K.
The last two games I've purchased (Simcity 4 and C&C Generals) require minimums of 500 MHz and 800 MHz processors respectively and 128M of RAM. Of course, they do a lot more, but they are certainly not 500, or 800, or 8000 times as entertaining as the Cocktail Space Invaders machine that graces my hall entryway and is such a hit when we throw parties.
Early arcade games were heroic, wildly successful efforts. Truly examples of extreme programming.
Without a doubt, video motion detection is going to be huge. Programs like Homewatcher, GOTCHA, and many others (I'm too lazy to set up links) can sense motion very accurately, take timestamped images, upload them to a webserver, send them via faz and email, call your phone, run external programs, etc, etc. If you live in a dangerous neighbourhood like me(and if economic downturns persist, perhaps you soon will) they are hugely useful. Couples with cheap cameras and cheap low power hard drives, systems like this could make crime very dangerous for the potential thief if they were extremely widespread.