The custom rendering software I work on at Maas Digital (used for things like the IMAX Mars Rover film) is very cache sensitive. I've been mulling this over recently, because in computer graphics, memory is almost always the bottleneck, and it's lead me to conclude we really need some different languages, or at least language constructs.
Pixar's Photorealistic Renderman (perhaps one of the greatest pieces of software ever written, from an engineering point of view) is very odd in that its shading language, while interpreted, is actually much faster at accomplishing its goals than other compliant renderers which compile down to the machine level. I believe this is because of memory bottlenecks, and despite the fact that computer graphics is an "embarassingly parallel" problem, eight cores is likely to aggrevate this much more than it is to help.
What I think is needed is a more functional-programming approach to a lot of these problems, where the mathematics of an operation is more purely expressed, leaving things like ordering/scheduling up to the compiler/runtime environment. Runtime compiled languages, like Java, can sometimes outperform even the best hand-optimized C due to the fact that the runtime compiler can optimize to the cache size and specific chihp family.
Also, this type of language would benefit multi-core processing because it would help expose the most possible parallelization opportunities, and let the compiler (perhaps even through trial and error) determine exactly when and how much parallel code to create.
Currently all of my parallel supercomputing code uses Fortran and the Message Passing Interface, but it's clear that this approach leads to code that is often very hard to debug and is very programmer-intensive. Hopefully the future of programming languages will help ease us into general purpose computing on highly parallel architectures like Cell.
At Cornell University, my masters project was a snakelike robot arm and companion software control system. With a team of 19 engineers, we put something pretty impressive together, and the only reason we were able to get as far as we did with the GUI was that we used Eclipse RCP as the basis for our program. I've found the interfaces to be very clean and well documented, and the sheer amount of work that Eclipse did for us, both as an IDE and as an RCP framework was amazing.
I also worked with using Eclipse RCP as the basis for the Maestro scientific analysis and high-level rover planning software, which is currently used on MER and is scheduled to be used on several future exploration and technology missions. Because the program is considered "class A mission critical," it must either be written entirely from scratch, or use a framework which is very stable and has good vendor support. JPL uses a lot of FOSS, and Eclipse RCP was a wonderful tool for our purposes. I used Eclipse to great effect while helping to develop the Science Activity Planner (the public version of which was also called Maestro and covered on slashdot here).
Am I the only one that thinks launching small satalites in space makes the inevitable task of cleaning up "space junk" much harder? I mean, in low enough orbit the decay rate is great and it's not a problem, but once these things start going geosynchronous, this could be an issue.
I think this is a symptom of games become popular with a lot of individuals who are just getting into gaming, and because many of the newer gaming audiences lack the youth, experience, or built-in reflexes that hardcore gamers have been leveraging to pwn them properly. Just as people pay money to have instructors come to their house and show them how to use their computer, I can imagine a day when grandma calls me in to help her figure out how to play sudoku online, or maybe pwn some n00b who won't keep off the damn lawn.
I have a 3 year old, 17" 1Ghz G4 PowerBook (still love it though it's ancient), and occasionally it would make strange whining sounds while I was doing something that affected the graphics, like flipping tabs or moving windows. I assume it was some kind of graphics card issue, but I never had it checked out because it wasn't loud enough to annoy me, and it seems to have gone away (or I've become used to it).
That's a good question. I do thank the FSF for so much of what they've done, as I do very much enjoy GNU, but I guess I see computer programs as being nothing more than large strings of integers put into a computer. I understand why we, as a society, allow the copyright of quantities of information like that, but I fail to see where the FSF's supposed fundamental human right to have a human-readable "recipe" for those integers made available to everyone in a compulsary fashion (and, on top of that, calling that freedom). The DMCA is a travesty, but so is telling me what I can and cannot distribute, and if the FSF had their way, *all* software would be GPL.
I believe that the GPL has slowed the development of much OSS, and its use in industry (unlike the LGPL which I absolutely love and think is rather fair). Look how far BSD has gotten, without any of the viral "use even just a bit of our code, and you have to expose the guts of whatever you used it in to all of your competitors, and allow others to give it away for free." I don't live in some magical accademic fairy land where everything is paid for by government grants, and my views on proper software rights (with respect to corporations and individuals) reflect that.
It's always possible I've got it totally wrong, but I think the fight against software patents, "trusted computing", DRM and DMCA is much, much, much more important than the fight against software without source code provided. Maybe some day someone will tell me why I magically deserve to see the source code to any binary program I happen to be given.
Perhaps this technology could be applied to detecting staleness of online technology news on specific punctuationally named websites, as a further benefit to humanity.
On a more serious note, I should mention that I found PMD quite helpful for my masters project (too many underclassmen writing with bad coding style...). Thanks for all your efforts!
First, let me say, based on that picture... Dude! You're a hobbit! How cool is that?!;)
Not actually that cool, but my girlfriend will still have me, so I guess I'm alright. All my geek friends seem to call me that (I've had LOTR themes whistled into my voicemail more than I'd like due to that)... Once at a pub my #space (on freenode) friends and I were at, we were all playing billiards and everyone took the large cues, and I was stuck with the small, unfortunately christened "hobbit stick." Two years later, I still know people who laugh at that (though it's rarely me!)
I have faith in just about anything JMS really thinks is a good idea (not that it necessarily will be, but that it has a very high probability of being). For instance, Crusade seemed a little... weird, at least at first, but some scripts of later episodes leaked (and were unfortunately taken down before I could read them), and the main twist on the theme of the show - that humans had been messing around with Shadow technology (with interesting consequences), and that the Excalibur would have to go Rogue after finding a "cure" that turns out not to work at all (against a yet-again corrupt human government). It would have been wonderful to see, especially when the office space guy was everyone's boss:)
That's a very interesting approach. I just wish I had the free time to fix my laptop after work and projects, so instead I have to stick with something more stable (in this case OS X, but plenty of alternatives).
Apple should be promoting OSS as an "outsourced" development house - I'm sure even just having one full-time guy working with fink could help OS X compete better with linux for software development and even server stuff. I'm not saying Apple should do anything against its best interests - I'm saying their best interests are served by keeping the "gravy train" coming.
I still don't understand how using the analogy of "tubes" is any different than the analogy of "pipes" which has been used for 40 years to describe abstract data streams from one point to another. The senator didn't know what he was talking about, but it is true that there are FIFO queues involved in the routing process, and that net congestion (especially that caused by spam) can be a serious issue, for some folks at least. The guy may be a crotchedy old moron, but what the hell is wrong with saying "tubes"?
I have a hard time believing that JMS would sell out his finest creation for what is likely to not be a large amount of money. I spent an afternoon with him when he visited my software team at JPL (wow, he really makes me look short)... he's an incredibly cool guy, very visionary but also very down to Earth... I think that these episodes will really add something to the series, in the same way that (some of) the books did.
I will never trust a mashup as much as I would trust the originating websites. How do I know you aren't altering the data from the Sexual Predators Database to include your ex-husband?
That's a very, very interesting point. One way to solve this would be for the server code to be open sourced, allowing it to be replicated on other sites. Another would be cryptographic signing of records from the source APIs, which can be used to verify their authenticity on the client side.
Web services, by their very nature, are open. We don't need a GPL for web services, that's quite redundant.
I'm not so sure - APIs come with usage restrictions, and we really need usage licenses, similar to GPL/BSD/CC licenses to ensure that information produced by these APIs can be freely used/distributed.
Trying to resist the urge to make yet another bad Deja Vu joke, I offer up this question: Has anyone ever had something like Deja Vu, but where they feel familiarity of an event or situation, not from a memory of real life, but that it occurred in a dream that they can't quite remember? I get this sometimes, and it's much creepier (IMHO).
The custom rendering software I work on at Maas Digital (used for things like the IMAX Mars Rover film) is very cache sensitive. I've been mulling this over recently, because in computer graphics, memory is almost always the bottleneck, and it's lead me to conclude we really need some different languages, or at least language constructs.
Pixar's Photorealistic Renderman (perhaps one of the greatest pieces of software ever written, from an engineering point of view) is very odd in that its shading language, while interpreted, is actually much faster at accomplishing its goals than other compliant renderers which compile down to the machine level. I believe this is because of memory bottlenecks, and despite the fact that computer graphics is an "embarassingly parallel" problem, eight cores is likely to aggrevate this much more than it is to help.
What I think is needed is a more functional-programming approach to a lot of these problems, where the mathematics of an operation is more purely expressed, leaving things like ordering/scheduling up to the compiler/runtime environment. Runtime compiled languages, like Java, can sometimes outperform even the best hand-optimized C due to the fact that the runtime compiler can optimize to the cache size and specific chihp family.
Also, this type of language would benefit multi-core processing because it would help expose the most possible parallelization opportunities, and let the compiler (perhaps even through trial and error) determine exactly when and how much parallel code to create.
Currently all of my parallel supercomputing code uses Fortran and the Message Passing Interface, but it's clear that this approach leads to code that is often very hard to debug and is very programmer-intensive. Hopefully the future of programming languages will help ease us into general purpose computing on highly parallel architectures like Cell.
At Cornell University, my masters project was a snakelike robot arm and companion software control system. With a team of 19 engineers, we put something pretty impressive together, and the only reason we were able to get as far as we did with the GUI was that we used Eclipse RCP as the basis for our program. I've found the interfaces to be very clean and well documented, and the sheer amount of work that Eclipse did for us, both as an IDE and as an RCP framework was amazing.
I also worked with using Eclipse RCP as the basis for the Maestro scientific analysis and high-level rover planning software, which is currently used on MER and is scheduled to be used on several future exploration and technology missions. Because the program is considered "class A mission critical," it must either be written entirely from scratch, or use a framework which is very stable and has good vendor support. JPL uses a lot of FOSS, and Eclipse RCP was a wonderful tool for our purposes. I used Eclipse to great effect while helping to develop the Science Activity Planner (the public version of which was also called Maestro and covered on slashdot here).
'nuff said.
Am I the only one that thinks launching small satalites in space makes the inevitable task of cleaning up "space junk" much harder? I mean, in low enough orbit the decay rate is great and it's not a problem, but once these things start going geosynchronous, this could be an issue.
Disclaimer: I really want my own cubesat.
I think this is a symptom of games become popular with a lot of individuals who are just getting into gaming, and because many of the newer gaming audiences lack the youth, experience, or built-in reflexes that hardcore gamers have been leveraging to pwn them properly. Just as people pay money to have instructors come to their house and show them how to use their computer, I can imagine a day when grandma calls me in to help her figure out how to play sudoku online, or maybe pwn some n00b who won't keep off the damn lawn.
I have a 3 year old, 17" 1Ghz G4 PowerBook (still love it though it's ancient), and occasionally it would make strange whining sounds while I was doing something that affected the graphics, like flipping tabs or moving windows. I assume it was some kind of graphics card issue, but I never had it checked out because it wasn't loud enough to annoy me, and it seems to have gone away (or I've become used to it).
That's a good question. I do thank the FSF for so much of what they've done, as I do very much enjoy GNU, but I guess I see computer programs as being nothing more than large strings of integers put into a computer. I understand why we, as a society, allow the copyright of quantities of information like that, but I fail to see where the FSF's supposed fundamental human right to have a human-readable "recipe" for those integers made available to everyone in a compulsary fashion (and, on top of that, calling that freedom). The DMCA is a travesty, but so is telling me what I can and cannot distribute, and if the FSF had their way, *all* software would be GPL.
I believe that the GPL has slowed the development of much OSS, and its use in industry (unlike the LGPL which I absolutely love and think is rather fair). Look how far BSD has gotten, without any of the viral "use even just a bit of our code, and you have to expose the guts of whatever you used it in to all of your competitors, and allow others to give it away for free." I don't live in some magical accademic fairy land where everything is paid for by government grants, and my views on proper software rights (with respect to corporations and individuals) reflect that.
It's always possible I've got it totally wrong, but I think the fight against software patents, "trusted computing", DRM and DMCA is much, much, much more important than the fight against software without source code provided. Maybe some day someone will tell me why I magically deserve to see the source code to any binary program I happen to be given.
Perhaps this technology could be applied to detecting staleness of online technology news on specific punctuationally named websites, as a further benefit to humanity.
Yes i'm such an Apple zealot, which is why I wrote this post and this post, and run Gentoo on my server.
...now we can zoom down the street looking completely silly at half the fuel costs!
gcc is not part of the OS. In fact, most people run OS X without gcc being installed on their computer and wouldn't know it if it was installed.
Very interesting, thanks for your response!
On a more serious note, I should mention that I found PMD quite helpful for my masters project (too many underclassmen writing with bad coding style...). Thanks for all your efforts!
First, let me say, based on that picture... Dude! You're a hobbit! How cool is that?! ;)
:)
Not actually that cool, but my girlfriend will still have me, so I guess I'm alright. All my geek friends seem to call me that (I've had LOTR themes whistled into my voicemail more than I'd like due to that)... Once at a pub my #space (on freenode) friends and I were at, we were all playing billiards and everyone took the large cues, and I was stuck with the small, unfortunately christened "hobbit stick." Two years later, I still know people who laugh at that (though it's rarely me!)
I have faith in just about anything JMS really thinks is a good idea (not that it necessarily will be, but that it has a very high probability of being). For instance, Crusade seemed a little... weird, at least at first, but some scripts of later episodes leaked (and were unfortunately taken down before I could read them), and the main twist on the theme of the show - that humans had been messing around with Shadow technology (with interesting consequences), and that the Excalibur would have to go Rogue after finding a "cure" that turns out not to work at all (against a yet-again corrupt human government). It would have been wonderful to see, especially when the office space guy was everyone's boss
That's a very interesting approach. I just wish I had the free time to fix my laptop after work and projects, so instead I have to stick with something more stable (in this case OS X, but plenty of alternatives).
Your plug-fu is strong, master, you must teach me.
Apple should be promoting OSS as an "outsourced" development house - I'm sure even just having one full-time guy working with fink could help OS X compete better with linux for software development and even server stuff. I'm not saying Apple should do anything against its best interests - I'm saying their best interests are served by keeping the "gravy train" coming.
Nice link, but too bad it was couched in such inflamatory language...
Who's the Borg, OSS, or Capitalism?
I still don't understand how using the analogy of "tubes" is any different than the analogy of "pipes" which has been used for 40 years to describe abstract data streams from one point to another. The senator didn't know what he was talking about, but it is true that there are FIFO queues involved in the routing process, and that net congestion (especially that caused by spam) can be a serious issue, for some folks at least. The guy may be a crotchedy old moron, but what the hell is wrong with saying "tubes"?
I have a hard time believing that JMS would sell out his finest creation for what is likely to not be a large amount of money. I spent an afternoon with him when he visited my software team at JPL (wow, he really makes me look short)... he's an incredibly cool guy, very visionary but also very down to Earth... I think that these episodes will really add something to the series, in the same way that (some of) the books did.
I will never trust a mashup as much as I would trust the originating websites. How do I know you aren't altering the data from the Sexual Predators Database to include your ex-husband?
That's a very, very interesting point. One way to solve this would be for the server code to be open sourced, allowing it to be replicated on other sites. Another would be cryptographic signing of records from the source APIs, which can be used to verify their authenticity on the client side.
Web services, by their very nature, are open. We don't need a GPL for web services, that's quite redundant.
I'm not so sure - APIs come with usage restrictions, and we really need usage licenses, similar to GPL/BSD/CC licenses to ensure that information produced by these APIs can be freely used/distributed.
Trying to resist the urge to make yet another bad Deja Vu joke, I offer up this question: Has anyone ever had something like Deja Vu, but where they feel familiarity of an event or situation, not from a memory of real life, but that it occurred in a dream that they can't quite remember? I get this sometimes, and it's much creepier (IMHO).
Ok, let's be honest. How many of us came in here just to make that exact same joke?
Actually I was, but then I got a weird feeling that I'd seen that joke on here before...