Though i've lived an internet connectionless home life for well over a year now, so havent actually had anything to show for it for a while. The goals of AROS, aside from promoting a warm fuzzy feeling amongst amiga stalwarts, are a small, efficient, multitasking, modular OS. and by small we mean less megabytes than you can count on one hand. and by multitasking we mean being able to process more than one thing at once, which lets face it, windows sucks at 20+ years after AmigaOS 1 came out.
The way that the warming effect manifests itself is in the spread of the regions, that is. towards the equator we have an hot arrid region, at the poles we have cold frosty regions and inbetween we have somewhat of a gradient in temperature but also the crucible of interaction between the two. This is how weather is "made": in the interaction between the hot and cold air and water of the equator (solar heated) and poles
Heat up the planet and the hot,dry band around the equator expands, initially the temperate zone is squashed, concentrating the effects of the cold/hot interaction and producing the "extreme" weather we are seeing.
Which is how a globally hotter climate can cause colder weather events in temperate areas.
basically the hotter the global temperature the steeper the gradient of temperature increase is from the poles. the poles themselves recieve little to no solar heating so will continue to sit there stubbornly trying to remain icy cold. steeper temperature gradient = wilder weather with greater extremes
absolutely positively the point, windows already IS at the point where users click OK -> NEXT -> NEXT -> I AGREE -> NEXT -> OK without reading any of the text presented to them.
Why? because we/they are all so damned used to not being able to get anything whatsoever done without reassuring windows that that's what we really want to do, right down to having to confirm every tiny little operation with "Are you sure you wanted to press that button? Pressing OK will do what the button you pressed says it will do, because you didnt already know that and MS thinks you are dumb" even power users who've been using windows for decades and really actually do know exactly what they are doing are so used to just hitting "Y" or Enter immediatley after initialising a task so that the forthcoming unavoidable dialog just flashes up for an instant.
Adding Yet More Dialogs, Prompts and Cautions will not solve the inherent security problem of any system: the user. because they will just get used to slapping in their admin password, post-itted to the screen, whenever asked without consideration as to WHY they are being asked for it because it's so damned frequent.
even when using metric the builders are also likely to psudeoimperialise it: The guy doing the sawing will know what the guy doing the measuring means when he says "that's a GOOD 63 inches", provided they've worked together for a good few years. Saying, "that's 1604mm" probably wont actually make that much difference. I've witnessed the construction of a dry wall in this manner myself and have to say that (remember in england no building is vertical or square) they made a very efficient job of it, sans millimetric precision, just by sheer teamwork and experience.
to add to the parent what people may not also know is that whilst what we consider current or electric flow in one direction is (put very crudely) the propogation of a gap between electrons, whilst the electrons themself slowly drift in the opposite direction, AFAIK the parent is about right, it's 1m/s.
the way to think of it is like if you had an abacus with a space the size of one bead and you moved them all one at a time from one side to the other, the gap would travel the whole width of the abacus but each bead would only move one step.
I've muttered about this before, what i'd like is a desk that was just a simple large flat inductive surface (with a nice layer of veneer on top). It could handle communication between devices (instead of insecurely and noisily shouting all your data over bluetooth et-al) and power/charge any reasonably small compatible device placed on it (laptops and monitors might be too beefy). digital cameras and ipods could just have a contact plate on one or more surfaces (the bottom of the camera, the back of the ipod) and would just show up a-la USB in your taskbar when you plonk them on the same desk as your PC. you could register your keyboard to your PC but the mouse might need some backup power onboard for when you're thrashing it about. Desks could be wired together to create workgroups in office spaces, that way everyone would be able to use the printer and scanner on the end table as if it were a native device, though they'd need to be queueable and lockable depending on who was using them, but you could still lock-out other people from messing with the digital camera that's on your desk.
basically expand the computer to include your entire desk, without all the annoying wires
reminds me of a jerry-rigged network install i did a few years back, they wanted to run from the utility cupboard under the stairs into the new office upstairs, which used to be a flat. bearing in mind i had very limited equipment to hand and had a hang over i managed to route the cabling i had under a cupboard in the kitchenette closesly missing drilling though the toilet's waste pipe to the only spot of hung cieling that you could get to near the utility room as most of the downstairs was a bar/restaurant. then realised the cabling i'd been given was abot 3 metres too short. fortunatley i had enough to make up the distance and a spare socket. so i wedged both cables into the back of the socket, which has probably long since worked it's way loose by now. It was only after my hangover abated several hours later that i realised i should have used a spare plug AND the spare socket.
with 4 legs if one fails the thing falls over. with 6 legs any two can fail and the thing will still remain upright, provided the weight is uniformly spread.
Remember this is going to weigh a lot more than the lunar lander and will land on earth, with it's much stronger gravitational pull, both those factors multiply the stresses on the gear and even with services these are designed to be reused, microfactures will creep through and joints will stick
seriously, and slightly off topic. why is it that every damned printer or scanner or digital camera in the universe requires a different clunky, slow and buggy set of drivers to operate? exactly how many ways can there possibly be to get a document off the screen onto a bit of paper?
IMO Devices should just be lumped into categories with standard protocols, (with the option to use the device's custom features / drivers if you really want to) so: a printer is a "document input" device. A scanner would be an "image output device" a digital camera could be three things: "video output", "image output" and "file I/O". a DAT machine would be both "audio input" and "audio output" all with simple digital stream standards that each can read and/or write. a cheap and dirty eBook, interestingly, could probably be just present itself as a "document input" device, and store several document streams internally, scrapping the "file I/O" ability.
THEN you plug your digital camera into your printer directly, one says "i accept images" and the other says "i output images"... they both use the exact same image transfer protocol and so you can get printing. now it'd be up to the camera vendor if they wanted to extend their onboard image output capability into "document output" by allowing formatting for direct printing. but the printer by default should be able to at least get the standard image stream and stick it on a sheet of paper, scaled automatically to the embedded DPI and landscaped, probably too.
I developped a spreadsheet-like web app for a firm earlier this year and whilst the pitch was only aimed at IE i cheekily made it FX copatible too (opera came a close third and kinda works). But one of the functions they wanted was the ability to copy/paste data into the table to/from an actual spreadsheet or email. IE's ability to talk to the bopy buffer on demand combined with some cunning tab delimiting of data worked well.
The workaround for FX never got implimented but i was thinking of having a pop up textarea that allows you to paste in (once you've selected your cells and range) and then onchange fires the relevant process. getting copy data out though would be more difficult.
If there were a handy way of capturing the cut/copy/paste event from the keyboard or right click and being able to chat to the copy buffer in that event-time-window then that might be a better solution as otherwise we're just putting up barriers to effective web application development. Especially where the App is designed to be used by non-geeks who are used to copy and paste just working.
Now in europe please, oh and make sure they're all able to charge off of a sensible range of voltage and current and more importantly use the SAME USB socket, because let's face it there are twelve of those two.
Would be nice to have everything my way, the sheer built in extensibility of the language is in my opinion nothing short of beautiful, and something other languages could do well to imitate (check out D, for example).
allow me to elaborate, suppose you want to know if the version of the language on your platform supports an intrinsic array push function, and if not, attatch your own:
firstly the reference to.push in the if has no brackets, so it becomes a pointer to the function within the intrinsic Array class. you can then create a function and assign it to that pointer. Sheer magic and gorgeously intuitive.
sticking with arrays you can grow and shrink them with little to zero fuss:
function array_push( arr , item )
arr[arr.length] = item;
magically the array is one index longer. you can just set arr.length and it will append or delete indexes for you.
you can also use this to assign functions to other object's handlers, most notibly events
someObject.onclick = myFunction
But this has brought up the thing that really really needs fixing, suppose i want that onclick function to pass some info to myFunction when i call it i have to do this
so instead i've created a function inline to hold my custom function, firstly it's not immediatley obvious to what object the "this" applies. if i'm running this code in a class does the this mean the class or someObject, one hopes it means the someObject.
next is the scope issue i've talked about suppose i'm dynamically creating objects on the fly and want the callback to reflect the id thus
for( i=0 ; i<10 ; i++ ) {
someObject[i] = new SomeObject();
someObject[i].onclick = function(){ myFunction( i ) } }
every single object will pass the value of 10 to myFunction, because after the function has finished the instance of i in memory that was used is still sat there and every myFunction has been given a pointer to it, not the value it was when it was initialised!
so some oversights still exist, if only there were ways you could explicitly state "pointer to" or "value of" like in, oh, every other language including visual basic
What i truly don't understand is why it has to be so complex even the much vaunted and pparently much simpler XML-RPC looks like attatching a nuclear bomb to the process:
Browsers already have Javascript engines in that take C-syntaxey looking ascii and convert it into functions and objects, so why not just use a C-syntaxey plaintext to describe the service?
read: namespace{ int getCountryCodeFromAbbr( string ); };
send: namespace.getCountryCodeFromAbbr( "UK" );
get : 44
now, ok you might want to send comlext data structures back, but hey, you can just slap in the curly braces and be done
read: namespace{ personStruct{ string name, int age, char sex }; personStruct getPersonFromUserId( int ); };
send: namespace.getPersonFromUserId( 12 );
get : { "John Smith", 34, 'M' };
oh, but i forget: everthing has to be XML to be enterprisey, wether or not it's the best tool for the job, or if there's already a tool for the job that can do it for you with just a little tiny bit of effort. The "include this.js file" AJAX approach is essentially a wrapper for doing what i've just described, but taking the communication automation out of it.
I've been wandering about this and am insanely curious: if ZFS really does intelligently copy on write how far can it take it?
for starters, does the FS "know" that i've just clicked "Save As" in my word processor? what about copy and pasting a file back into the same directory to make a local copy? Also? is it just within variations on the same file? if i have a particular setup exe on my system but forget, and download it again to the desktop surely the FS has no initial way of knowing that they are one and the same, does some funky heuristic happen?
basically: does the OS's read/write/copy/delete functionality have to invoke copy-on-write via a FS API or is it built in for every single sector-sized chunk that gets stuffed into the FS?
the next question is the one in my subject: how therefore do you define "capacity"? if i've got a bunch of files that take up 700mb on a ZFS device and try to back up to a (Joliet) CD will i get a message telling me that the CD doesnt have room? i can imagine this scenario being unlikely with optimised binary data (jpegs and mpegs) but if i'm backing up a dev environment with autobackups (main.c,main.c.bak.001,main.c.bak.002,etc.) and manually created and dated directory tree "snapshots" (dev,dev_backup_2006-12-18,dev_backup_2006-12-01,e tc.) then this could probably happen quite easily.
"installing packages" and "resolving dependencies" should be done by turbo nutter linux admins(though i'd like to be one myself one day). "Installing a program" is what non-geeks do, and they need a happy shiney add/remove programs applet. Oh and one that explains what all the apps with 4 letter acronyms prefixed in k or x actually DO would be handy too. Even installing GCC and an IDE should be possible with a couple of clicks of the mouse.
several of the posts around here are suggesting that 2d games require much more effort because they require drawing sprites and such. Er. no.
the line between what i'd call a 2d and a 3d game is not as clear cut aw sprites vs polygons. let's start with the classics: Doom, a 2d game made to play like a 3d game by the use of FPS and clever use of height and Goldenaxe, a 2d sidescroller but with depth, you can move in and out of the field of play, occasionally yielding different routes. Whilst Doom fits a 3d game into a 2d setting Goldenaxe does the reverse.
Taking goldenaxe, there's no reason that the same gameworld view and approach couldnt be taken today with NG arcitecture, but instead of sprites and clever z-axis trickery it would just be a long, thin, but "true" 3d gameworld with a fixed aspect camera.
Next, what about a top-down game? such as the suikoden series or zelda on the gameboy, again height, set pieces and seperate-insides-of-buildings-to-the-outsides play a role here but the same gameplay feel can be replicated again using a camera mounted up high with perspective turned off.
Next, FPS, i've already mentioned doom, but Dungeon Master was most definately 3d, but used 2d tools to create each view, sprites of varying sizes to create the illusion of depth.
What I'm getting at here, and what i suspect the poster is getting at is that what we call 3d is not always what is actually 3d, when we say 3d we probably should say FPS or chasecam and when we say 2d we should probably say platform or top-down.
As a final thought, you can play GTA3 in "classic" mode, with a top-down view, i wander how fps's might fare with a top-down view, you'd need vertical autoaim and sniping would be troublesome but it's not the giant leap you might think it is.
it's one of the laws of thermodynamics, along with "it takes money to make money". Though the thermo laws dont strictly apply in this case the principal is similar.
To get energy out of hydrogen you have to get the hydrogen out of water, which itself takes energy, lots of energy. This indirectly makes the process similar creating a hydrogen based battery. You put the energy in in the seawater processing plant, and get it back out to drive your automobile, if the voltameters at the plant are solar powered you might as well have a solar powered car and cut out the middle step. However, if the plant were fusion powered then it might be a different story.
step 1. plug your desk into the usb port of your PC (s) step 2. plug your desk into the mains step 3. plonk monitors, mice, keyboards, ipods, digital cameras, possibly even laptops on desk
everything can talk to everything else, including any usb-connected devices, and everything gets power too. all it would take is a couple of induction layers and you can still have a few mm of laminated wood-effect on top. the RF communication would work pretty much like bluetooth or UWB but would induct via a plate at the bottom of the device (or the back of the ipod so it works when laid flat) into the RF Layer instead of shouting into the ether.
...until the driver comes up with a makeshift anchor
as opposed to "iPhone" on it's own, but then again i know nothing about trademark law
Though i've lived an internet connectionless home life for well over a year now, so havent actually had anything to show for it for a while. The goals of AROS, aside from promoting a warm fuzzy feeling amongst amiga stalwarts, are a small, efficient, multitasking, modular OS. and by small we mean less megabytes than you can count on one hand. and by multitasking we mean being able to process more than one thing at once, which lets face it, windows sucks at 20+ years after AmigaOS 1 came out.
The way that the warming effect manifests itself is in the spread of the regions, that is. towards the equator we have an hot arrid region, at the poles we have cold frosty regions and inbetween we have somewhat of a gradient in temperature but also the crucible of interaction between the two. This is how weather is "made": in the interaction between the hot and cold air and water of the equator (solar heated) and poles
Heat up the planet and the hot,dry band around the equator expands, initially the temperate zone is squashed, concentrating the effects of the cold/hot interaction and producing the "extreme" weather we are seeing.
Which is how a globally hotter climate can cause colder weather events in temperate areas.
basically the hotter the global temperature the steeper the gradient of temperature increase is from the poles. the poles themselves recieve little to no solar heating so will continue to sit there stubbornly trying to remain icy cold. steeper temperature gradient = wilder weather with greater extremes
absolutely positively the point, windows already IS at the point where users click OK -> NEXT -> NEXT -> I AGREE -> NEXT -> OK without reading any of the text presented to them.
Why? because we/they are all so damned used to not being able to get anything whatsoever done without reassuring windows that that's what we really want to do, right down to having to confirm every tiny little operation with "Are you sure you wanted to press that button? Pressing OK will do what the button you pressed says it will do, because you didnt already know that and MS thinks you are dumb" even power users who've been using windows for decades and really actually do know exactly what they are doing are so used to just hitting "Y" or Enter immediatley after initialising a task so that the forthcoming unavoidable dialog just flashes up for an instant.
Adding Yet More Dialogs, Prompts and Cautions will not solve the inherent security problem of any system: the user. because they will just get used to slapping in their admin password, post-itted to the screen, whenever asked without consideration as to WHY they are being asked for it because it's so damned frequent.
even when using metric the builders are also likely to psudeoimperialise it: The guy doing the sawing will know what the guy doing the measuring means when he says "that's a GOOD 63 inches", provided they've worked together for a good few years. Saying, "that's 1604mm" probably wont actually make that much difference. I've witnessed the construction of a dry wall in this manner myself and have to say that (remember in england no building is vertical or square) they made a very efficient job of it, sans millimetric precision, just by sheer teamwork and experience.
I'll buy whichever player i can get for £39.99 first
to add to the parent what people may not also know is that whilst what we consider current or electric flow in one direction is (put very crudely) the propogation of a gap between electrons, whilst the electrons themself slowly drift in the opposite direction, AFAIK the parent is about right, it's 1m/s.
the way to think of it is like if you had an abacus with a space the size of one bead and you moved them all one at a time from one side to the other, the gap would travel the whole width of the abacus but each bead would only move one step.
I've muttered about this before, what i'd like is a desk that was just a simple large flat inductive surface (with a nice layer of veneer on top). It could handle communication between devices (instead of insecurely and noisily shouting all your data over bluetooth et-al) and power/charge any reasonably small compatible device placed on it (laptops and monitors might be too beefy). digital cameras and ipods could just have a contact plate on one or more surfaces (the bottom of the camera, the back of the ipod) and would just show up a-la USB in your taskbar when you plonk them on the same desk as your PC. you could register your keyboard to your PC but the mouse might need some backup power onboard for when you're thrashing it about. Desks could be wired together to create workgroups in office spaces, that way everyone would be able to use the printer and scanner on the end table as if it were a native device, though they'd need to be queueable and lockable depending on who was using them, but you could still lock-out other people from messing with the digital camera that's on your desk.
basically expand the computer to include your entire desk, without all the annoying wires
reminds me of a jerry-rigged network install i did a few years back, they wanted to run from the utility cupboard under the stairs into the new office upstairs, which used to be a flat. bearing in mind i had very limited equipment to hand and had a hang over i managed to route the cabling i had under a cupboard in the kitchenette closesly missing drilling though the toilet's waste pipe to the only spot of hung cieling that you could get to near the utility room as most of the downstairs was a bar/restaurant. then realised the cabling i'd been given was abot 3 metres too short. fortunatley i had enough to make up the distance and a spare socket. so i wedged both cables into the back of the socket, which has probably long since worked it's way loose by now. It was only after my hangover abated several hours later that i realised i should have used a spare plug AND the spare socket.
with 4 legs if one fails the thing falls over. with 6 legs any two can fail and the thing will still remain upright, provided the weight is uniformly spread.
Remember this is going to weigh a lot more than the lunar lander and will land on earth, with it's much stronger gravitational pull, both those factors multiply the stresses on the gear and even with services these are designed to be reused, microfactures will creep through and joints will stick
seriously, and slightly off topic. why is it that every damned printer or scanner or digital camera in the universe requires a different clunky, slow and buggy set of drivers to operate? exactly how many ways can there possibly be to get a document off the screen onto a bit of paper?
... they both use the exact same image transfer protocol and so you can get printing. now it'd be up to the camera vendor if they wanted to extend their onboard image output capability into "document output" by allowing formatting for direct printing. but the printer by default should be able to at least get the standard image stream and stick it on a sheet of paper, scaled automatically to the embedded DPI and landscaped, probably too.
IMO Devices should just be lumped into categories with standard protocols, (with the option to use the device's custom features / drivers if you really want to) so: a printer is a "document input" device. A scanner would be an "image output device" a digital camera could be three things: "video output", "image output" and "file I/O". a DAT machine would be both "audio input" and "audio output" all with simple digital stream standards that each can read and/or write. a cheap and dirty eBook, interestingly, could probably be just present itself as a "document input" device, and store several document streams internally, scrapping the "file I/O" ability.
THEN you plug your digital camera into your printer directly, one says "i accept images" and the other says "i output images"
I developped a spreadsheet-like web app for a firm earlier this year and whilst the pitch was only aimed at IE i cheekily made it FX copatible too (opera came a close third and kinda works). But one of the functions they wanted was the ability to copy/paste data into the table to/from an actual spreadsheet or email. IE's ability to talk to the bopy buffer on demand combined with some cunning tab delimiting of data worked well.
The workaround for FX never got implimented but i was thinking of having a pop up textarea that allows you to paste in (once you've selected your cells and range) and then onchange fires the relevant process. getting copy data out though would be more difficult.
If there were a handy way of capturing the cut/copy/paste event from the keyboard or right click and being able to chat to the copy buffer in that event-time-window then that might be a better solution as otherwise we're just putting up barriers to effective web application development. Especially where the App is designed to be used by non-geeks who are used to copy and paste just working.
Now in europe please, oh and make sure they're all able to charge off of a sensible range of voltage and current and more importantly use the SAME USB socket, because let's face it there are twelve of those two.
allow me to elaborate, suppose you want to know if the version of the language on your platform supports an intrinsic array push function, and if not, attatch your own: firstly the reference to
sticking with arrays you can grow and shrink them with little to zero fuss: magically the array is one index longer. you can just set arr.length and it will append or delete indexes for you.
you can also use this to assign functions to other object's handlers, most notibly events But this has brought up the thing that really really needs fixing, suppose i want that onclick function to pass some info to myFunction when i call it i have to do this so instead i've created a function inline to hold my custom function, firstly it's not immediatley obvious to what object the "this" applies. if i'm running this code in a class does the this mean the class or someObject, one hopes it means the someObject.
next is the scope issue i've talked about suppose i'm dynamically creating objects on the fly and want the callback to reflect the id thus every single object will pass the value of 10 to myFunction, because after the function has finished the instance of i in memory that was used is still sat there and every myFunction has been given a pointer to it, not the value it was when it was initialised!
so some oversights still exist, if only there were ways you could explicitly state "pointer to" or "value of" like in, oh, every other language including visual basic
What i truly don't understand is why it has to be so complex even the much vaunted and pparently much simpler XML-RPC looks like attatching a nuclear bomb to the process:
h odName>
.js file" AJAX approach is essentially a wrapper for doing what i've just described, but taking the communication automation out of it.
<?xml version="1.0"?>
<methodCall>
<methodName>namespace.getCountryCodeFromAbbr</met
<params>
<param>
<value><string>UK</string></value>
</param>
</params>
</methodCall>
Browsers already have Javascript engines in that take C-syntaxey looking ascii and convert it into functions and objects, so why not just use a C-syntaxey plaintext to describe the service?
read: namespace{ int getCountryCodeFromAbbr( string ); };
send: namespace.getCountryCodeFromAbbr( "UK" );
get : 44
now, ok you might want to send comlext data structures back, but hey, you can just slap in the curly braces and be done
read: namespace{ personStruct{ string name, int age, char sex }; personStruct getPersonFromUserId( int ); };
send: namespace.getPersonFromUserId( 12 );
get : { "John Smith", 34, 'M' };
oh, but i forget: everthing has to be XML to be enterprisey, wether or not it's the best tool for the job, or if there's already a tool for the job that can do it for you with just a little tiny bit of effort. The "include this
Word!
(you have to have seen scooby doo: the movie to get that one)
I've been wandering about this and am insanely curious: if ZFS really does intelligently copy on write how far can it take it?
e tc.) then this could probably happen quite easily.
for starters, does the FS "know" that i've just clicked "Save As" in my word processor? what about copy and pasting a file back into the same directory to make a local copy? Also? is it just within variations on the same file? if i have a particular setup exe on my system but forget, and download it again to the desktop surely the FS has no initial way of knowing that they are one and the same, does some funky heuristic happen?
basically: does the OS's read/write/copy/delete functionality have to invoke copy-on-write via a FS API or is it built in for every single sector-sized chunk that gets stuffed into the FS?
the next question is the one in my subject: how therefore do you define "capacity"? if i've got a bunch of files that take up 700mb on a ZFS device and try to back up to a (Joliet) CD will i get a message telling me that the CD doesnt have room? i can imagine this scenario being unlikely with optimised binary data (jpegs and mpegs) but if i'm backing up a dev environment with autobackups (main.c,main.c.bak.001,main.c.bak.002,etc.) and manually created and dated directory tree "snapshots" (dev,dev_backup_2006-12-18,dev_backup_2006-12-01,
... it shouldnt BE at the command line.
"installing packages" and "resolving dependencies" should be done by turbo nutter linux admins(though i'd like to be one myself one day). "Installing a program" is what non-geeks do, and they need a happy shiney add/remove programs applet. Oh and one that explains what all the apps with 4 letter acronyms prefixed in k or x actually DO would be handy too. Even installing GCC and an IDE should be possible with a couple of clicks of the mouse.
yeah like Captain Wesley Crusher!
several of the posts around here are suggesting that 2d games require much more effort because they require drawing sprites and such. Er. no.
the line between what i'd call a 2d and a 3d game is not as clear cut aw sprites vs polygons. let's start with the classics: Doom, a 2d game made to play like a 3d game by the use of FPS and clever use of height and Goldenaxe, a 2d sidescroller but with depth, you can move in and out of the field of play, occasionally yielding different routes. Whilst Doom fits a 3d game into a 2d setting Goldenaxe does the reverse.
Taking goldenaxe, there's no reason that the same gameworld view and approach couldnt be taken today with NG arcitecture, but instead of sprites and clever z-axis trickery it would just be a long, thin, but "true" 3d gameworld with a fixed aspect camera.
Next, what about a top-down game? such as the suikoden series or zelda on the gameboy, again height, set pieces and seperate-insides-of-buildings-to-the-outsides play a role here but the same gameplay feel can be replicated again using a camera mounted up high with perspective turned off.
Next, FPS, i've already mentioned doom, but Dungeon Master was most definately 3d, but used 2d tools to create each view, sprites of varying sizes to create the illusion of depth.
What I'm getting at here, and what i suspect the poster is getting at is that what we call 3d is not always what is actually 3d, when we say 3d we probably should say FPS or chasecam and when we say 2d we should probably say platform or top-down.
As a final thought, you can play GTA3 in "classic" mode, with a top-down view, i wander how fps's might fare with a top-down view, you'd need vertical autoaim and sniping would be troublesome but it's not the giant leap you might think it is.
it's one of the laws of thermodynamics, along with "it takes money to make money". Though the thermo laws dont strictly apply in this case the principal is similar.
To get energy out of hydrogen you have to get the hydrogen out of water, which itself takes energy, lots of energy. This indirectly makes the process similar creating a hydrogen based battery. You put the energy in in the seawater processing plant, and get it back out to drive your automobile, if the voltameters at the plant are solar powered you might as well have a solar powered car and cut out the middle step. However, if the plant were fusion powered then it might be a different story.
(for when it's bloody cold)
step 1. plug your desk into the usb port of your PC (s)
step 2. plug your desk into the mains
step 3. plonk monitors, mice, keyboards, ipods, digital cameras, possibly even laptops on desk
everything can talk to everything else, including any usb-connected devices, and everything gets power too. all it would take is a couple of induction layers and you can still have a few mm of laminated wood-effect on top. the RF communication would work pretty much like bluetooth or UWB but would induct via a plate at the bottom of the device (or the back of the ipod so it works when laid flat) into the RF Layer instead of shouting into the ether.