Originally, though, their Renderman implementation was supposed to be done in hardware. They initially prototyped it in C on general purpose hardware, and then when the special purpose hardware flopped they realized they were on to something with the software.
Yes, I saw that! In July, I was unfortunately stuck at Heathrow for a while because of the British Air strikes. When I was finally able to get transfered over to United and actually make it past the check-in line, I was treated to that sight on the monitors. I've got a picture from there as well.
Freeman Dyson, of the Dyson Sphere fame, wrote an interesting critique of that book and its physics. Most importantly, he estimates that the nanobots as described in that book would have a speed of about 0.1 inches per second while flying through the air. There are also energy consumption issues.
Of course you're not going to make it absolutely pixel perfect with HTML. Anyone who expects precise layout is trying for desktop publishing and is better off using Quark or Framemaker or some other similiar tool.
What I meant was that a good WYSIJOPR tool can still let you rapidly pick an effective color scheme, make sure it doesn't clash with the images, see that it has a consistent overall feel, etc.
Any designer worth his salt should know better than to completely rely on the view provided by a WYSIWYG HTML editor. A good editor should let you rapidly prototype different possible designs and quickly reject most of the chaffe. Naturally, the next step is to test those on as many different platforms as possible.
Indeed yes. A good dreamweaver clone is something I've been missing from Linux. Personally, I'm an XEmacs fan myself, but I really do like using something like Dreamweaver for composing HTML. Yes, I can type it all out from scratch in a text editor but it's much faster to tweak it and make it look good using a WYSIWYG editor. Most text editors don't show you how your text looks with the images, for example, or how the layout will look. Used properly, something like Dreamweaver makes your pages much more fluid; you can drag and drop elements around till things look right without having to worry about whether you've forgotten to cut and paste a closing tag. You can highlight an entire column of a table and apply a CSS style to it, etc. Yes, you could do it all in a text editor, but which is faster?
I mean, sure, I could always just write assembly or even raw machine code instead of using a compiler. But do I really want to?
It's all a matter of using the right tool for the right job.
Possibly so, but to my mind the main advantage of my HP is the reverse polish notation with the stack. RPN requires demonstrably fewer keystrokes to enter and you don't have to worry about remembering how the calculator implements order of operations. Plus I can sanity check an expression as I go along, seeing the intermediate results on the stack. Also, the stack obviates the need most of the time for storing partial results. Standard algebraic notation on a calculator becomes very uncomfortable after a short time with RPN.
So no, it may be more expensive, but I think even its basic features short of storing answers justify the extra expense.
SVG-Export.scm
on
GIMP goes SVG
·
· Score: 2, Informative
Bah! I tried to submit to them a Script-Fu scheme script to export SVG months ago, back at the beginning of the year to export indexed images to SVG. I never heard back from anyone.
If anyone would like, I'm making it available here. Save it in your shared/scripts directory with the other scm files. Then flatten your images to indexed and go Script-Fu -> File -> Export SVG. Enjoy! (And if any of you have any weight with the GIMP team and still want to include it in the distro, you're welcome.)
Re:But, the compiler/os should...
on
Does C# Measure Up?
·
· Score: 3, Informative
There are enough answers here, but I can't resist jumping in and clarifying.
Most modern compilers in conjunction with OS's already basically do this. GCC and MSVC and the like all will link in only the functions that they deem referenced by your program and it's dependencies, provided you statically link the library.
Dynamic link or shared libraries work differently. The OS "loads" them once and uses that one copy for all programs that require that library. The linker that builds the DLL has no way of knowing which functions in the library will be needed by the programs that may use. Some programs may only need one, others may need them all. So the DLL *has* to contain everything it needs to provide.
The tradeoff is that while static linking means the linker only links in what's nescessary, all executables that use it must provide the same copies of those functions linked into each one. DLL's have to have the whole kit-and-kaboodle, but there can be a single, globaly available copy on this system shared by each.
Stripping, at least in the Unix/Linux sense, simply strips out debugging info. It doesn't really re-link.
It's interesting, but...
on
MIT Roofnet
·
· Score: 1
It's interesting, but I really have to wonder about the latency. I love my 802.11 link, but it's still slower than pluging in. And if the data has to go through a number of hops, I can't imagine that the latency will be very good. Really, I'd like to see the figures on the latency. It'd be nice to see a few tracert's with hop times at the very least.
I could see this being fine for web-browsing, e-mail etc. but I doubt it would be so nice for chatty protocols that are more sensitive to latency (online games, for example).
I've always enjoyed books on recreational mathematics. You get a little bit of everything including number theory, game theory, geometry, etc. And most of it presented in fun contexts you wouldn't see in normal math books. I highly recommend the Martin Gardner series of books on the topic, collected from his old columns in Scientific American. You might also look for books by A. K. Dewdney who took over the column after Gardner left.
One of the best tools I ever got for myself in college was a simple Palm Pilot for managing my schedule. It was useless for notetaking, as I couldn't do graffiti fast enough to keep up. (Good old fashion pen and paper was far better for that.)
But the Palm Pilot was terrific for managing my schedule because so many of the events I had were one-offs that didn't fit into a regular, easily remembered schedule. I'd be meeting with a campus group at 6:00pm on Friday one week, doing group homework at 11:00pm tomorrow night, subbing for another computer lab assistant next Thursday at 2:00pm, etc. The Palm Pilot was great for keeping me sane.
As one of my profs who ended up getting a Palm Pilot said, "I still miss meetings, but at least now I *know* I'm missing a meeting."
It was handy for games to kill time while waiting to talk to a prof, too.
The amount of memory needed by the Z-Buffer is trivial next to the memory required for the cached textures and the geometry. Typically the Z-Buffer is 16 or 32 bits. Even at 1600x1200 and a 32 bit Z-Buffer, that works out to 1600 x 1200 x 4 = 7.3MB for the Z-Buffer. And probably the same for the primary frame buffer for a total of around 15MB for those buffers. The rest is cached textures and geometry.
I don't think I would like this system. It seems like it might be easy to steal someone's bandwidth. There was mention of tracking by the MAC addresses. Someone could run a packetsniffer or watch for ARP broadcast on the local segment to collect Mac addresses and IP numbers. Then they could just use a card where the MAC address is software settable. (My Linksys router has this ability too, for example.) Wait for the unsuspecting victim to go off line and then set your card or router to show that MAC and IP pair. Poof! "Free" internet access for a while.
The only way I could see to stop this would be for the university to set their switches to make the switches and their connection ports only accept traffic from specific MAC addresses. They couldn't allow any open public ports with this system. Even with that though, someone could still wait for their roommates to leave for a while, then highjack their port and steal their bandwidth while they were gone. (Even if they can't log into their roommates computer and use it that way.) Or perhaps, they might just swap in a laptop for a lab machine.
If you play with Java, have a look at Eclipse (www.eclipse.org) It can parse the Java code as you write and flag errors with a colored squiggle underline much like MS Word's grammar checker. On top of that, in the margin it offers a "quick fix" icon. Click it and it shows you a couple of ways that it can automatically correct it. (e.g. If it doesn't know about that class in one context, but there's a package with a class by that name over there it can automatically add an appropriate import.) It's a pleasure to use for writing Java.
I've often thought that when I create my MMORPG (someday... sigh...) that I'd do the same thing. I'd want to quietly support the third-party developers in exchange for certain concessions on their part. Time and again people have proven how ingenious and resourceful they are about developing third-party hacks. History makes it pretty clear that trying to stop them is a pointless exercise. I think a better approach is to quietly give them the hooks in exchange for them agreeing to play nice. (e.g. don't make combat macros.) Good will on both sides can be a powerful thing. And then those that you catch not playing nicely you simply ban.
And regarding Alt-Tab, I've agree that that's just stupid. All I'd have to do to get around it is to run a second machine alongside the first. Instead disabling Alt-Tab just irritates me, especially when all I want is to do something non-game related. Often's been the time when I'm playing and nothing is happening or when I'm waiting for a friend to log or a quest to start and I just pop out for a moment to check e-mail or websurf while I wait.
Asheron's Call has been like this for years. There's a program called Decal that intercepts and can forge packets between the client and the server. It exposes them through COM to a plugin architecture, allowing people to easily create plugins that interact with the game.
On the one hand it could considered cheating, but at this point, most people seem to run it and it's made some fantastic things possible. For one thing there's a plugin called ACArm which allows figures out how to switch between armor profiles at the touch of a key, much more easily than figuring out the right order and dragging and dropping manually. There's another called Robochef that automatically does crafting. And one of the oldest and best known, Sixth Sense which can scan for items/monsters/players etc. is almost required for some challenges in the game. (Find random spawn monster somewhere out in the wilderness.) It takes much of the tedium out of a game that's supposed to be fun.
The down side, though, is that people have come up with money making trade skill macros where you just load up your character with enough starting cash and some of the ingredients, and it crafts a bunch of items, sells them at a profit, buys more ingredients and continues. That inflates the economy a bit, though not much it seems. Worse, some people have made combat macros that automatically camp a spot and kill all the monsters. It's very annoying to be running around in a dungeon and finding a mage perched in a corner stealing your kills. (Combat macros are now a bannable offense under the CoC, however. Also, the Decal devs are very anti-combat macros.)
Anyway, I know that's AC and not EQ, but I just thought I'd mention that as an existing example of where this can lead. It's got its down sides, but it's mostly been a good thing for the game.
Ah, here's the B5 thread. I was wondering where that would be.:-)
And I have to agree with TheDeal here. I like both Trek and B5. (Although I've been less than impressed by the most recent two series; STNG rocked, though.)
This Spring I watched all of B5 with some friends. One of them was a B5 fanatic and she had every episode on tape. It was definitely a commitment and scheduling time to watch was tricky, but we had a blast. It was the first time I'd seen the whole series in order, start to finish, and it was definitely nifty to see the story arc progression. And we converted two freshlings who had never seen B5 before. We had a no-spoilers rule for discussing the show in their presence. They came to hate the statement, "You'll find out," as our answer to their questions. They got that answer so frequently that eventually we just abbreviated it and would answer Y.F.O. And our other friends suffered a barage of B5 quotations. But it was fun.
As far as crusade goes, I didn't like it as much. The story line was much looser. A little more Trek-style in some ways. But then again, it never got to 2nd season and B5 didn't really get going till then either.
I haven't seen much anime, but I'd definitely like to see more. Especially if there's something with as well thought-out of a story line.
Admittedly it's more of a class of algorithms, (and the people who mentioned KMP string matching touched on it indirectly), but I'd really have like to have seen DFA's or NFA's listed on the list.
At least to me, DFA's are an extraordinarily elegant solution to a number of interesting programs. They run quickly, they're easy to program, and you can do a lot of neat stuff with them. One of the really spiffy examples being regular expression pattern matching or other string matching. (Okay, so regexes in grep and perl aren't regular anymore by the formal definition. But it's still a very elegant idea.)
There's an incredible amount of theoretical computer science behind finite automata.
Originally, though, their Renderman implementation was supposed to be done in hardware. They initially prototyped it in C on general purpose hardware, and then when the special purpose hardware flopped they realized they were on to something with the software.
Have you seen AOLiza? Same concept except with AIM and very amusing.
Yes, I saw that! In July, I was unfortunately stuck at Heathrow for a while because of the British Air strikes. When I was finally able to get transfered over to United and actually make it past the check-in line, I was treated to that sight on the monitors. I've got a picture from there as well.
I remember being amused to note they run Compaqs.
Freeman Dyson, of the Dyson Sphere fame, wrote an interesting critique of that book and its physics. Most importantly, he estimates that the nanobots as described in that book would have a speed of about 0.1 inches per second while flying through the air. There are also energy consumption issues.
Of course you're not going to make it absolutely pixel perfect with HTML. Anyone who expects precise layout is trying for desktop publishing and is better off using Quark or Framemaker or some other similiar tool.
What I meant was that a good WYSIJOPR tool can still let you rapidly pick an effective color scheme, make sure it doesn't clash with the images, see that it has a consistent overall feel, etc.
Any designer worth his salt should know better than to completely rely on the view provided by a WYSIWYG HTML editor. A good editor should let you rapidly prototype different possible designs and quickly reject most of the chaffe. Naturally, the next step is to test those on as many different platforms as possible.
Indeed yes. A good dreamweaver clone is something I've been missing from Linux. Personally, I'm an XEmacs fan myself, but I really do like using something like Dreamweaver for composing HTML. Yes, I can type it all out from scratch in a text editor but it's much faster to tweak it and make it look good using a WYSIWYG editor. Most text editors don't show you how your text looks with the images, for example, or how the layout will look. Used properly, something like Dreamweaver makes your pages much more fluid; you can drag and drop elements around till things look right without having to worry about whether you've forgotten to cut and paste a closing tag. You can highlight an entire column of a table and apply a CSS style to it, etc. Yes, you could do it all in a text editor, but which is faster?
I mean, sure, I could always just write assembly or even raw machine code instead of using a compiler. But do I really want to?
It's all a matter of using the right tool for the right job.
Possibly so, but to my mind the main advantage of my HP is the reverse polish notation with the stack. RPN requires demonstrably fewer keystrokes to enter and you don't have to worry about remembering how the calculator implements order of operations. Plus I can sanity check an expression as I go along, seeing the intermediate results on the stack. Also, the stack obviates the need most of the time for storing partial results. Standard algebraic notation on a calculator becomes very uncomfortable after a short time with RPN.
So no, it may be more expensive, but I think even its basic features short of storing answers justify the extra expense.
Bah! I tried to submit to them a Script-Fu scheme script to export SVG months ago, back at the beginning of the year to export indexed images to SVG. I never heard back from anyone.
If anyone would like, I'm making it available here. Save it in your shared/scripts directory with the other scm files. Then flatten your images to indexed and go Script-Fu -> File -> Export SVG. Enjoy! (And if any of you have any weight with the GIMP team and still want to include it in the distro, you're welcome.)
There are enough answers here, but I can't resist jumping in and clarifying.
Most modern compilers in conjunction with OS's already basically do this. GCC and MSVC and the like all will link in only the functions that they deem referenced by your program and it's dependencies, provided you statically link the library.
Dynamic link or shared libraries work differently. The OS "loads" them once and uses that one copy for all programs that require that library. The linker that builds the DLL has no way of knowing which functions in the library will be needed by the programs that may use. Some programs may only need one, others may need them all. So the DLL *has* to contain everything it needs to provide.
The tradeoff is that while static linking means the linker only links in what's nescessary, all executables that use it must provide the same copies of those functions linked into each one. DLL's have to have the whole kit-and-kaboodle, but there can be a single, globaly available copy on this system shared by each.
It's really a matter of pickin' yer poison.
Stripping, at least in the Unix/Linux sense, simply strips out debugging info. It doesn't really re-link.
It's interesting, but I really have to wonder about the latency. I love my 802.11 link, but it's still slower than pluging in. And if the data has to go through a number of hops, I can't imagine that the latency will be very good. Really, I'd like to see the figures on the latency. It'd be nice to see a few tracert's with hop times at the very least.
I could see this being fine for web-browsing, e-mail etc. but I doubt it would be so nice for chatty protocols that are more sensitive to latency (online games, for example).
I've always enjoyed books on recreational mathematics. You get a little bit of everything including number theory, game theory, geometry, etc. And most of it presented in fun contexts you wouldn't see in normal math books. I highly recommend the Martin Gardner series of books on the topic, collected from his old columns in Scientific American. You might also look for books by A. K. Dewdney who took over the column after Gardner left.
One of the best tools I ever got for myself in college was a simple Palm Pilot for managing my schedule. It was useless for notetaking, as I couldn't do graffiti fast enough to keep up. (Good old fashion pen and paper was far better for that.)
But the Palm Pilot was terrific for managing my schedule because so many of the events I had were one-offs that didn't fit into a regular, easily remembered schedule. I'd be meeting with a campus group at 6:00pm on Friday one week, doing group homework at 11:00pm tomorrow night, subbing for another computer lab assistant next Thursday at 2:00pm, etc. The Palm Pilot was great for keeping me sane.
As one of my profs who ended up getting a Palm Pilot said, "I still miss meetings, but at least now I *know* I'm missing a meeting."
It was handy for games to kill time while waiting to talk to a prof, too.
The amount of memory needed by the Z-Buffer is trivial next to the memory required for the cached textures and the geometry. Typically the Z-Buffer is 16 or 32 bits. Even at 1600x1200 and a 32 bit Z-Buffer, that works out to 1600 x 1200 x 4 = 7.3MB for the Z-Buffer. And probably the same for the primary frame buffer for a total of around 15MB for those buffers. The rest is cached textures and geometry.
I don't think I would like this system. It seems like it might be easy to steal someone's bandwidth. There was mention of tracking by the MAC addresses. Someone could run a packetsniffer or watch for ARP broadcast on the local segment to collect Mac addresses and IP numbers. Then they could just use a card where the MAC address is software settable. (My Linksys router has this ability too, for example.) Wait for the unsuspecting victim to go off line and then set your card or router to show that MAC and IP pair. Poof! "Free" internet access for a while.
The only way I could see to stop this would be for the university to set their switches to make the switches and their connection ports only accept traffic from specific MAC addresses. They couldn't allow any open public ports with this system. Even with that though, someone could still wait for their roommates to leave for a while, then highjack their port and steal their bandwidth while they were gone. (Even if they can't log into their roommates computer and use it that way.) Or perhaps, they might just swap in a laptop for a lab machine.
Dunno. Just seems like it might have problems.
If you play with Java, have a look at Eclipse (www.eclipse.org) It can parse the Java code as you write and flag errors with a colored squiggle underline much like MS Word's grammar checker. On top of that, in the margin it offers a "quick fix" icon. Click it and it shows you a couple of ways that it can automatically correct it. (e.g. If it doesn't know about that class in one context, but there's a package with a class by that name over there it can automatically add an appropriate import.) It's a pleasure to use for writing Java.
I've often thought that when I create my MMORPG (someday... sigh...) that I'd do the same thing. I'd want to quietly support the third-party developers in exchange for certain concessions on their part. Time and again people have proven how ingenious and resourceful they are about developing third-party hacks. History makes it pretty clear that trying to stop them is a pointless exercise. I think a better approach is to quietly give them the hooks in exchange for them agreeing to play nice. (e.g. don't make combat macros.) Good will on both sides can be a powerful thing. And then those that you catch not playing nicely you simply ban.
And regarding Alt-Tab, I've agree that that's just stupid. All I'd have to do to get around it is to run a second machine alongside the first. Instead disabling Alt-Tab just irritates me, especially when all I want is to do something non-game related. Often's been the time when I'm playing and nothing is happening or when I'm waiting for a friend to log or a quest to start and I just pop out for a moment to check e-mail or websurf while I wait.
Asheron's Call has been like this for years. There's a program called Decal that intercepts and can forge packets between the client and the server. It exposes them through COM to a plugin architecture, allowing people to easily create plugins that interact with the game.
On the one hand it could considered cheating, but at this point, most people seem to run it and it's made some fantastic things possible. For one thing there's a plugin called ACArm which allows figures out how to switch between armor profiles at the touch of a key, much more easily than figuring out the right order and dragging and dropping manually. There's another called Robochef that automatically does crafting. And one of the oldest and best known, Sixth Sense which can scan for items/monsters/players etc. is almost required for some challenges in the game. (Find random spawn monster somewhere out in the wilderness.) It takes much of the tedium out of a game that's supposed to be fun.
The down side, though, is that people have come up with money making trade skill macros where you just load up your character with enough starting cash and some of the ingredients, and it crafts a bunch of items, sells them at a profit, buys more ingredients and continues. That inflates the economy a bit, though not much it seems. Worse, some people have made combat macros that automatically camp a spot and kill all the monsters. It's very annoying to be running around in a dungeon and finding a mage perched in a corner stealing your kills. (Combat macros are now a bannable offense under the CoC, however. Also, the Decal devs are very anti-combat macros.)
Anyway, I know that's AC and not EQ, but I just thought I'd mention that as an existing example of where this can lead. It's got its down sides, but it's mostly been a good thing for the game.
Ah, here's the B5 thread. I was wondering where that would be. :-)
And I have to agree with TheDeal here. I like both Trek and B5. (Although I've been less than impressed by the most recent two series; STNG rocked, though.)
This Spring I watched all of B5 with some friends. One of them was a B5 fanatic and she had every episode on tape. It was definitely a commitment and scheduling time to watch was tricky, but we had a blast. It was the first time I'd seen the whole series in order, start to finish, and it was definitely nifty to see the story arc progression. And we converted two freshlings who had never seen B5 before. We had a no-spoilers rule for discussing the show in their presence. They came to hate the statement, "You'll find out," as our answer to their questions. They got that answer so frequently that eventually we just abbreviated it and would answer Y.F.O. And our other friends suffered a barage of B5 quotations. But it was fun.
As far as crusade goes, I didn't like it as much. The story line was much looser. A little more Trek-style in some ways. But then again, it never got to 2nd season and B5 didn't really get going till then either.
I haven't seen much anime, but I'd definitely like to see more. Especially if there's something with as well thought-out of a story line.
Admittedly it's more of a class of algorithms, (and the people who mentioned KMP string matching touched on it indirectly), but I'd really have like to have seen DFA's or NFA's listed on the list.
At least to me, DFA's are an extraordinarily elegant solution to a number of interesting programs. They run quickly, they're easy to program, and you can do a lot of neat stuff with them. One of the really spiffy examples being regular expression pattern matching or other string matching. (Okay, so regexes in grep and perl aren't regular anymore by the formal definition. But it's still a very elegant idea.)
There's an incredible amount of theoretical computer science behind finite automata.
Check out the link to the ACME faq. Look who's running it:
Who's behind Acme Klein Bottle? ...
Just me, Cliff Stoll. Nobody else.
Are you the same guy that
Yep, same guy.