Slashdot Mirror


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?"

17 of 226 comments (clear)

  1. Google Labs by Anonymous Coward · · Score: 5, Interesting

    Lots of fun little things to place with at Google Labs.

  2. DMS by supabeast! · · Score: 4, Interesting

    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.

  3. computer science is weird by 2057 · · Score: 3, Interesting

    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
  4. Conway's Life - Turing Machine by seizer · · Score: 4, Interesting

    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.

  5. Kai's Power Tools & User Interface by wildsurf · · Score: 3, Interesting

    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.
  6. Clustering software by mz001b · · Score: 3, Interesting

    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.

  7. Xtreme Programz! by Captain+Beefheart · · Score: 4, Interesting

    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.

  8. Re:Virii by Anonymous Coward · · Score: 1, Interesting

    Actually, I am a in a class at Ga Tech called "The Philosophy of Computation." Just recently we read an excellent book on the topic of life and artificial life by Claus Emmeche by the name of "The Garden in the Machine." I suggest that everyone interested in AI reads it.

    There are several ways to categorize life. The most agreed upon definition has to do with information theory. Basically, biological life is the gathering and propagation of information by use of molecular shape. Gathering of "information" in the biological world means consuimg other molecules in order to have requesite shape information in order to propagate. You could argue that a code virus is the propagation of information as well, however mere propagation does not mean life. Most biologists would disagree with anyone that claimed that a biological virus is alive, with good reason. Viruses have no way of propagating their information by themselves, nor do they biologically gather information (they don't feed). Computer viruses are nearly identical in this sense to biological viruses.

    In his book, Emmeche makes tons of suggestions about what *could* be considered life, and how we should actually define it.

  9. Re:That's what theoretical CS is all about by jfengel · · Score: 2, Interesting

    I can think of only a few: System/R becoming relational databases; the language work that became LALR parsers; some of the graph-theoretic work that became the Internet.

    In most cases it was a huge leap between research and the implementation that made it actually useful. Innovations in the course of a "simple matter of programming" are more often intuitive understanding that only later is justified by research, sometimes prior but unknown research.

    Meantime, 99.9% of what comes out of theoretical labs is crap. That's not where I go looking for the next generation.

    Look, I _am_ a theoretical computer scientist, and my job right now consists of taking a bunch of old theory work on logic programming and ontologies and making a commercial product out of it.

    And because of that, every "crazy" computer guy who think's he's Galileo wants to show me his crackpot theory, and he's sure I can fill in the few blank spaces in his work. Note to such: if you think you're a crazy genius, recall that the former outnumber the latter by about 400 to 1. There are a few in both categories, but more likely you're one or the other, and I know which way I'm betting.

    End of rant. Thanks for your attention.

  10. That's a Windows flaw. by usotsuki · · Score: 2, Interesting

    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
  11. www.pixory.org by Anonymous Coward · · Score: 1, Interesting

    www.pixory.org

  12. Slightly off topic by Anonymous Coward · · Score: 1, Interesting

    Actually this site is pretty interesting, www.radiantprimes.com.

  13. Re:Avalon, Aspect Oriented Programming by voodoo1man · · Score: 2, Interesting
    Actually, from what I've read, one of Kiczales' motivations for AOP was to simplify the idea of the Meta Object Protocol programming, since apparently not many people could use (or even grasped) the ideas of MOPs. So in a way, the CLOS MOP is a superset of what AOP can do (certainly, the CLOS offers much deeper reflection than Java even pretends to).

    Combine this with Pascal Costanza's rather recent (he just revealed it this week) discovery that dynamically bound functions (it's not a CL standard, but he provides a full implementation in his paper in one page of code - try that with Java!) generalize Method Call Invocation and the like, and you really see that AOP isn't anything really new.

    It is a way for Kiczales to bring his ideas (and I think they are very good ideas) about programming language reflection to Java. But I don't think this is a good thing, because I don't think Java is a good thing. Chances are only the most trivial parts of the AOP (which is itself a subset of the MOP idea) will make it into mainstream programming in a half-assed way, and then everyone is going to say "we're done, nothing more to do here", just like Java is currently held to be the best OO language ever by some people. (I am especially annoyed by the multiple-inheritance-is-inherently-evil part of the Java camp).

    I've recently been reading The Urban Ideal , which is a book of interviews with Paolo Soleri, and in one of them he makes a very lucid statement about the above type of problem, and many of the problems in the world in general. It's now my sig. That is basically what I think of AOP.

    --

    In the great CONS chain of life, you can either be the CAR or be in the CDR.

  14. How about Emacs? by GnuVince · · Score: 2, Interesting

    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.

  15. Re:Try sweetcode.org by Yoda2 · · Score: 2, Interesting
    I agree about sweetcode.org.

    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.

  16. Arcade games and early PC games by jms · · Score: 3, Interesting

    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.

  17. video motion detection by dj_virto · · Score: 3, Interesting

    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.