I have no problems with a transferable key. I to have a problem with "binding" to a machine, having been burned in the past by reinstalls on the same hardware causing loss of access to games.
Purchases of games on (and for) Steam aren't bound to any particular machine, just to a particular Steam user account. As a wild example, my PC could be destroyed in a nuclear explosion, taking every last molecule and data bit with it, and so long as I can remember my email address and Steam password (and possibly not even that) I can download the Steam client on another machine and get access to all the games I've bought.
It's absolutely not a perfect system (Valve seem to have some kind of a vendetta against dial-up users for a start) but the roaming-account system is one of the more impressive aspects of it.
A brilliant bonus for Introversion will be the huge amount of publicity. My very own MINERVA mod is in Steam's games listings, and so far it's chewed its way through over 100,000 downloads and about 1.5TB of bandwidth. I won't be purchasing Darwinia through Steam, sadly - I've got my very own, lurid-green boxed copy as purchased just days after release. It's a great game, and well worth it. I hope they get the success they deserve...
There's also eleventy billion work-in-progress multiplayer mods with endless unskinned weapons renders and concept 'art' drawn in crayon; if you look really carefully you might find one that's actually been released...
But they're not simply upscaling, the game is actually rendered at 720p, so it will have sharp edges, and sharp-to-semifuzzy-textures. It will look just as sharp as a PC playing at 1280x720.
It looks a bit odd, though. Take this screenshot as an example - there are some really lumpy pixels on the cables and archway to the left of the picture.
Actually, I've just spent the last ten minutes making some rubbishy animated GIFs comparing differences between screenshots.
Here's one comparing Xbox and Xbox360 shots - there's definitely a difference, but there are horrible jagged pixels on the wires to the left on both of them.
Here's another comparing Xbox and Xbox360 shots again - go on, tell me which one's which.;-) One of them is slightly better, with anti-aliasing on a lot of edges, but what's going on with Sarge's holster? Chunky pixels!
And finally, my favourite. Comparing the 1280x720 image with a version scaled down to 640x360 and back again. Here I chucked away three-quarters of the information in the screenshot (I did a nearest-neighbour scale down to 640x360 in The GIMP, a cubic scale up to 1280x720 and applied 40% sharpening). First of all, try to tell them apart - there are some slight differences on near-horizontal lines, but otherwise the 1280x720 image might as well have been rendered at 640x360 then scaled up to the larger size.
Either these are extremely bad screenshots (they did mention having to grab the video), or there's something very strange going on. I hope it's the former, but there still isn't much improvement over the original Xbox...
If this "F.E.A.R." game really requires a $500 graphic card to play then they can keep it. It's just a game, you'll play it and be bored within a week. Meanwhile you're still out the $500 and your computer is taking "yet more power" to run.
I've only played the demo for F.E.A.R., but I was singularly under-impressed by the graphics - or rather, the design and artwork. Yes, it had fully dynamic shadows (but no radiosity), all sorts of refractive shaders and gloss-mapped, normal-mapped and parallax-mapped everything, but it didn't seem to do anything with that capability, beyond some hopelessly generic, cramped warehouses and pipe-filled rooms.
Turning the graphical settings up to maximum was a bit of an eye-opener on my not-cutting-edge GeForce 6600. I ended up with incredibly simple, blocky corridors making the game run at around 15fps, presumably because of the computationally expensive shadows and (naff-looking) shaders on the walls - despite all that, it wasn't exactly aesthetically pleasing.
When Half-Life 2's engine can do something like this on my PC with a decent resolution and 4X anti-aliasing at around 30-40fps, when F.E.A.R. might manage this at around 15fps, I do wonder if games engines are heading in the wrong direction. It's not so much 'optimisation' as 'making the best use of what's available'...
Too bad you can play it for real with any stove or grill for about $10. Stupid.
Well, you can play a remarkably realistic Grand Theft Auto simulation for the cost of a bent screwdriver - but I wouldn't recommend it. The force-feedback is a bit... vigourous. As is the police armed response.
I was thinking this sounded like a complete rip-off of something I saw on an advert the other day, before remembering that was for a Philips product as well. Basically, coloured LEDs behind a wall-mounted flat-screen television adjusted to roughly match the average colour of what appears on the screen, thus lighting up the wall and room.
My somewhat cheaper night-time gaming solution is to have a desk-light switched on and pointing at the wall. It means I can actually see the keyboard in dark sections! (Insert Doom 3 jokes here...)
Er, we've already got a great (at least in the sense of "large") Web infrastructure with market buyin and lots of developers, which is totally cross-platform. Distributed X apps have none of that. If you haven't seen any good AJAX drawing programs yet, that means you should encourage people to develop one, not discourage it. Especially since encouraging X development for the same benefit is obviously a doomed adventure.
I was using X more as an example of a dumb, supposedly obsolete system for network-transparency which can still do things which are impossible with AJAX. Like, erm, drawing circles quickly, setting pixels to particular colours without creating a miniature new document section and so on.
As traditional graphical user interface APIs go, AJAX is basically shit, as it's a simple document markup system with scripting grafted on. Its main, colossal advantage is that everyone's got the client software already - there's no X server, Java virtual machine or VNC client to download. But for someone designing this hypothetical drawing program, they'd be writing it without the aid of any moderngraphicsAPIs. I'd be utterly amazed if someone produced a fast, usable and cross-platform equivalent of (say) Inkscape using AJAX.
Improving existing web applications? Brilliant! Making possible interesting new ways of submitting textual data or retrieving graphical data? Definitely. Recoding existing, offline desktop applications in a way that isn't a gigantic hack? Not really...
If we split OpenOffice along its presentation/processing tiers, turning those APIs into XML/HTTP, we can have pools of OpenOffice servers accessed by AJAX clients. Let's see MS WebOffice compete with that.
Please don't.
So far, I haven't seen anyone manage a proper, pixel-perfect page layout or drawing program with AJAX - people seem to pee themselves with excitement when they manage to get Javascript to draw basic lines and circles.
I'd like to see someone implement, say, Google Earth (not Maps) in AJAX, or Adobe Photoshop. If you desperately needed network transparency then the prehistoric X11 and GLX wouldn't break a sweat running such kinds of programs remotely, whereas AJAX wouldn't know where to begin.
This AJAX thing is a buzzword for an interesting and useful technique for making existing web applications a bit more dynamic and responsive (it's ideal for email or database-type tasks) - it's not some glorious new application framework which will revolutionise the whole computing world. Computers can do far more, and it seems ridiculous to have to limit new software to the tiny little niche it provides.
Half Life 2 runs like a dream on my Athlon 1200, 768MB RAM and GeForce 4 ti4800 card. The Doom 3 engine is a pig in a wig.
Probably because the artwork behind Half-Life 2 is of such a high quality that it doesn't lean on the engine too much - I was really surprised how nice things looked when testing it with different DirectX capability settings.
Source is, in some ways, a very old-fashioned engines. That's probably what makes it so great, in that it takes stuff which worked well in the past and extends it to today's hardware. So far, the only way I've managed to slow it down on a fast PC is by using far too many materials with complex shaders - it munches its way through geometry like there's no tomorrow. So much so that I'm not sure if there is a way of directly checking scene polygon counts, merely the system load that's induced...
Here you go: Infestation, released in 1990. Most definitely an FPS, was in true 3D, and seems to have been entirely forgotten since it wasn't for the PC but the Atari ST and Amiga instead.
It's bastard difficult, though - I've only ever managed to survive thirty seconds or so. Apparently you can get inside and remove your helmet and wander round, so it's a proper indoors/outdoors FPS engine!;-)
There was good article on Ars Technica as well, going into a fair amount of technical detail into why Valve's HDR implementation is interesting, and why it took so long (and so many attempts) to create.
I'm still waiting for the updated Source SDK so I can build maps using HDR - it's something I'm really looking forwards to. Eat your heart out, darkness-obsessed Doom 3 and friends!;-)
I haven't played Quake 4 yet, but there's a vaguely similar-sounding map in the classic Zerstörer: Testament of the Destroyer mod for the original Quake. You descend deeper and deeper into some horrifically complex facility without encountering a single enemy, in search of some elusive artefact - you reach a colossal underground arena and the Sanguinoch lies just in front of you, and you just know that when you take it, you're going to have to fight untold hordes of enemies in order to escape...
Zerstörer's also notable for having what I reckon to be is the best ever ending for an FPS game, ever. It's seriously brilliant!;-)
You're stuck in some dark loading bay with approximately three bullets left, and you can hear a monkey gasping and grunting, then as you cautiously creep forwards, it and another monkey start screaming and howling, and you're absolutely sure they're approaching and they're screaming and you know their skulls are sliced open and they're screaming... They're looking for you and they're screaming...
Ahem!
The last time I was anywhere near that terrified was in the latter part of the first MINERVA map for Half-Life 2. Underground in some World War Two bunker that's been commandeered by the Combine, and there's... stuff crawling around. There's very little combat at first, just music, a whole lot of atmosphere, the murdered, decomposing corpses of some prior occupants and some off-world presence ranting into your ear about your past mistakes, and that stuff crawling around again, coming to get you...
Embarrassingly, it was me who built the map, and that bit still scared me silly!:-D
It's just one short level. And actually, it's more like a demo designed to show off the graphics with a HL2 map attached to it.
Yup. To get the best enjoyment out of the game side of things, play on Hard with the commentary turned off - the latter is important because otherwise you'll be stuck in an invulnerable god-mode.
It is very short, but quite nicely constructed. I still think that Day of Defeat: Source was the better demonstration of HDR, but this new map is still worth the download. The recommended specifications seem pretty generous too - I played on a 128MB GeForce 6600 (non-GT) without any real problems.
As for higher-res textures, it's not such a crazy idea. As I understand it developers often produce media at higher resolution than the final in-game res, and then scale it down. So the media probably already exists, meaning it's not a major monetary investment to produce it.
The original Halo's a bit weird regarding world textures - there's an interesting design decision which, while ideal for the memory-poor, GPU-power-rich Xbox, kind of knackered things for the PC port of the game (a memory-rich, fairly GPU-poor platform).
Essentially, a world texture is made up of lots of lower resolution textures which get combined together. Think multiple levels of detail textures overlaid on a very low-resolution base texture. It actually works fairly well - the game still looks pretty good (and non-blurry) when played at a higher screen resolution on a PC.
I guess some high-quality anti-aliasing, a 50/60Hz framerate and some tidied-up content would more than suffice for the first game - and some WORKING TEXTURE CACHING for the second would certainly be welcomed. Anything else would most likely hit that limited-storage problem you mentioned - 20GB is pretty tiny if there's the need to store next-generation-quality content for multiple games...
I travel one hour per day, and since my SE K750i is so powerful, I watch re-encoded episodes of American Dad and Family Guy to kill some time. The quality is acceptable. I basically see the phone as a cool gadget to kill some time while travelling or attending a very boring class.
Whatever happened to reading a book?
I'm starting to feel like some weird throwback to some bygone age with my newspapers and paperback books - and I'm only 26!;-)
I was doing exactly this earlier today - it's definitely possible to make a site regurgitate vital data by injecting SQL through what was supposed to be an integer database ID supplied in a URL...
The database was expecting a number. So I sent it something like the following: '1 UNION ( SELECT 1, 2, 3, 4, 5, 6, 7, username, password, 10, 11, 12 FROM users ) --' - and instead of project associates for an organisation, it printed a great long list of usernames and (trivially encrypted) passwords.
(Yes, I'm doing all this with full permission - in fact I'm being paid to do this by the people who are supposed to be using this site. It's appalled me how easy it is to compromise a site in this manner, and also how easy it is to protect against...)
Basically, if it's supposed to be a number, make sure it's a number.;-)
[C]orrect me if I'm wrong, but does the above just remove all single and double quotes from all GET and POST vars? Some people may need those characters... Why not just use stripslashes (if you have magic quoting on) and mysql_escape_string?
That's what I do - I enforce that all strings are completely unadorned with any extra escape-slashes junk, and always add them in when they're actually needed. Likewise for numbers - I'll cast them to integers as appropriate, so they can't actually be strings in disguise.
$query = "SELECT blah FROM ".DB_PREFIX."foo WHERE badger = '".mysql_escape_string( $badger )."' AND id = ".(integer )$id." ";
I do this completely automatically now; it actually makes the SQL in my PHP quite nice to read with syntax highlighting, as I know exactly what each variable is supposed to contain. Doing it consistently is a great help, too...
Some day, all software will be distributed through either leaks or invites, then one day someone will try to be special and different by actually releasing it on time
I have no problems with a transferable key. I to have a problem with "binding" to a machine, having been burned in the past by reinstalls on the same hardware causing loss of access to games.
Purchases of games on (and for) Steam aren't bound to any particular machine, just to a particular Steam user account. As a wild example, my PC could be destroyed in a nuclear explosion, taking every last molecule and data bit with it, and so long as I can remember my email address and Steam password (and possibly not even that) I can download the Steam client on another machine and get access to all the games I've bought.
It's absolutely not a perfect system (Valve seem to have some kind of a vendetta against dial-up users for a start) but the roaming-account system is one of the more impressive aspects of it.
A brilliant bonus for Introversion will be the huge amount of publicity. My very own MINERVA mod is in Steam's games listings, and so far it's chewed its way through over 100,000 downloads and about 1.5TB of bandwidth. I won't be purchasing Darwinia through Steam, sadly - I've got my very own, lurid-green boxed copy as purchased just days after release. It's a great game, and well worth it. I hope they get the success they deserve...
...and has it come out yet for the Mac?
;-)
Disappointingly, yes.
See my post of earlier today on the HD-supporting updates for the Halo games. Upsampling again? ;-)
I played the lost coast demo and minerva, can anyone recommend any others?
...
;-)
How about the second part of MINERVA?
Oh, hang on - not finished yet. Sorry...
As for other maps, there's a couple around. I haven't played all that many, but there's some reviews here, more reviews here and another map here. There's a pretty cool total conversion here, but it's incredibly short and defiantly non-Half-Life 2.
There's also eleventy billion work-in-progress multiplayer mods with endless unskinned weapons renders and concept 'art' drawn in crayon; if you look really carefully you might find one that's actually been released...
But they're not simply upscaling, the game is actually rendered at 720p, so it will have sharp edges, and sharp-to-semifuzzy-textures. It will look just as sharp as a PC playing at 1280x720.
;-) One of them is slightly better, with anti-aliasing on a lot of edges, but what's going on with Sarge's holster? Chunky pixels!
It looks a bit odd, though. Take this screenshot as an example - there are some really lumpy pixels on the cables and archway to the left of the picture.
Actually, I've just spent the last ten minutes making some rubbishy animated GIFs comparing differences between screenshots.
Here's one comparing Xbox and Xbox360 shots - there's definitely a difference, but there are horrible jagged pixels on the wires to the left on both of them.
Here's another comparing Xbox and Xbox360 shots again - go on, tell me which one's which.
And finally, my favourite. Comparing the 1280x720 image with a version scaled down to 640x360 and back again. Here I chucked away three-quarters of the information in the screenshot (I did a nearest-neighbour scale down to 640x360 in The GIMP, a cubic scale up to 1280x720 and applied 40% sharpening). First of all, try to tell them apart - there are some slight differences on near-horizontal lines, but otherwise the 1280x720 image might as well have been rendered at 640x360 then scaled up to the larger size.
Either these are extremely bad screenshots (they did mention having to grab the video), or there's something very strange going on. I hope it's the former, but there still isn't much improvement over the original Xbox...
If this "F.E.A.R." game really requires a $500 graphic card to play then they can keep it. It's just a game, you'll play it and be bored within a week. Meanwhile you're still out the $500 and your computer is taking "yet more power" to run.
I've only played the demo for F.E.A.R., but I was singularly under-impressed by the graphics - or rather, the design and artwork. Yes, it had fully dynamic shadows (but no radiosity), all sorts of refractive shaders and gloss-mapped, normal-mapped and parallax-mapped everything, but it didn't seem to do anything with that capability, beyond some hopelessly generic, cramped warehouses and pipe-filled rooms.
Turning the graphical settings up to maximum was a bit of an eye-opener on my not-cutting-edge GeForce 6600. I ended up with incredibly simple, blocky corridors making the game run at around 15fps, presumably because of the computationally expensive shadows and (naff-looking) shaders on the walls - despite all that, it wasn't exactly aesthetically pleasing.
When Half-Life 2's engine can do something like this on my PC with a decent resolution and 4X anti-aliasing at around 30-40fps, when F.E.A.R. might manage this at around 15fps, I do wonder if games engines are heading in the wrong direction. It's not so much 'optimisation' as 'making the best use of what's available'...
I think you need more monkeys - that's still not Shakespeare.
Too bad you can play it for real with any stove or grill for about $10. Stupid.
... vigourous. As is the police armed response.
:-(
Well, you can play a remarkably realistic Grand Theft Auto simulation for the cost of a bent screwdriver - but I wouldn't recommend it. The force-feedback is a bit
1/10
I was thinking this sounded like a complete rip-off of something I saw on an advert the other day, before remembering that was for a Philips product as well. Basically, coloured LEDs behind a wall-mounted flat-screen television adjusted to roughly match the average colour of what appears on the screen, thus lighting up the wall and room.
My somewhat cheaper night-time gaming solution is to have a desk-light switched on and pointing at the wall. It means I can actually see the keyboard in dark sections! (Insert Doom 3 jokes here...)
Er, we've already got a great (at least in the sense of "large") Web infrastructure with market buyin and lots of developers, which is totally cross-platform. Distributed X apps have none of that. If you haven't seen any good AJAX drawing programs yet, that means you should encourage people to develop one, not discourage it. Especially since encouraging X development for the same benefit is obviously a doomed adventure.
I was using X more as an example of a dumb, supposedly obsolete system for network-transparency which can still do things which are impossible with AJAX. Like, erm, drawing circles quickly, setting pixels to particular colours without creating a miniature new document section and so on.
As traditional graphical user interface APIs go, AJAX is basically shit, as it's a simple document markup system with scripting grafted on. Its main, colossal advantage is that everyone's got the client software already - there's no X server, Java virtual machine or VNC client to download. But for someone designing this hypothetical drawing program, they'd be writing it without the aid of any modern graphics APIs. I'd be utterly amazed if someone produced a fast, usable and cross-platform equivalent of (say) Inkscape using AJAX.
Improving existing web applications? Brilliant! Making possible interesting new ways of submitting textual data or retrieving graphical data? Definitely. Recoding existing, offline desktop applications in a way that isn't a gigantic hack? Not really...
If we split OpenOffice along its presentation/processing tiers, turning those APIs into XML/HTTP, we can have pools of OpenOffice servers accessed by AJAX clients. Let's see MS WebOffice compete with that.
Please don't.
So far, I haven't seen anyone manage a proper, pixel-perfect page layout or drawing program with AJAX - people seem to pee themselves with excitement when they manage to get Javascript to draw basic lines and circles.
I'd like to see someone implement, say, Google Earth (not Maps) in AJAX, or Adobe Photoshop. If you desperately needed network transparency then the prehistoric X11 and GLX wouldn't break a sweat running such kinds of programs remotely, whereas AJAX wouldn't know where to begin.
This AJAX thing is a buzzword for an interesting and useful technique for making existing web applications a bit more dynamic and responsive (it's ideal for email or database-type tasks) - it's not some glorious new application framework which will revolutionise the whole computing world. Computers can do far more, and it seems ridiculous to have to limit new software to the tiny little niche it provides.
Half Life 2 runs like a dream on my Athlon 1200, 768MB RAM and GeForce 4 ti4800 card. The Doom 3 engine is a pig in a wig.
Probably because the artwork behind Half-Life 2 is of such a high quality that it doesn't lean on the engine too much - I was really surprised how nice things looked when testing it with different DirectX capability settings.
Source is, in some ways, a very old-fashioned engines. That's probably what makes it so great, in that it takes stuff which worked well in the past and extends it to today's hardware. So far, the only way I've managed to slow it down on a fast PC is by using far too many materials with complex shaders - it munches its way through geometry like there's no tomorrow. So much so that I'm not sure if there is a way of directly checking scene polygon counts, merely the system load that's induced...
Here you go: Infestation, released in 1990. Most definitely an FPS, was in true 3D, and seems to have been entirely forgotten since it wasn't for the PC but the Atari ST and Amiga instead.
;-)
It's bastard difficult, though - I've only ever managed to survive thirty seconds or so. Apparently you can get inside and remove your helmet and wander round, so it's a proper indoors/outdoors FPS engine!
I think I'm off to have another play...
There was good article on Ars Technica as well, going into a fair amount of technical detail into why Valve's HDR implementation is interesting, and why it took so long (and so many attempts) to create.
;-)
I'm still waiting for the updated Source SDK so I can build maps using HDR - it's something I'm really looking forwards to. Eat your heart out, darkness-obsessed Doom 3 and friends!
I haven't played Quake 4 yet, but there's a vaguely similar-sounding map in the classic Zerstörer: Testament of the Destroyer mod for the original Quake. You descend deeper and deeper into some horrifically complex facility without encountering a single enemy, in search of some elusive artefact - you reach a colossal underground arena and the Sanguinoch lies just in front of you, and you just know that when you take it, you're going to have to fight untold hordes of enemies in order to escape...
;-)
Zerstörer's also notable for having what I reckon to be is the best ever ending for an FPS game, ever. It's seriously brilliant!
The monkeys. Don't forget the monkeys!
... They're looking for you and they're screaming ...
... stuff crawling around. There's very little combat at first, just music, a whole lot of atmosphere, the murdered, decomposing corpses of some prior occupants and some off-world presence ranting into your ear about your past mistakes, and that stuff crawling around again, coming to get you...
:-D
You're stuck in some dark loading bay with approximately three bullets left, and you can hear a monkey gasping and grunting, then as you cautiously creep forwards, it and another monkey start screaming and howling, and you're absolutely sure they're approaching and they're screaming and you know their skulls are sliced open and they're screaming
Ahem!
The last time I was anywhere near that terrified was in the latter part of the first MINERVA map for Half-Life 2. Underground in some World War Two bunker that's been commandeered by the Combine, and there's
Embarrassingly, it was me who built the map, and that bit still scared me silly!
It's just one short level. And actually, it's more like a demo designed to show off the graphics with a HL2 map attached to it.
Yup. To get the best enjoyment out of the game side of things, play on Hard with the commentary turned off - the latter is important because otherwise you'll be stuck in an invulnerable god-mode.
It is very short, but quite nicely constructed. I still think that Day of Defeat: Source was the better demonstration of HDR, but this new map is still worth the download. The recommended specifications seem pretty generous too - I played on a 128MB GeForce 6600 (non-GT) without any real problems.
Kubrick's only flaws as a filmmaker are that he had no sense of humor; therefore he couldn't give his films a variety of tone.
;-)
Erm... Doctor Strangelove?
Even 2001 has a brilliant joke - that being the terrifyingly long instruction sheet for the zero-gravity toilet...
As for higher-res textures, it's not such a crazy idea. As I understand it developers often produce media at higher resolution than the final in-game res, and then scale it down. So the media probably already exists, meaning it's not a major monetary investment to produce it.
The original Halo's a bit weird regarding world textures - there's an interesting design decision which, while ideal for the memory-poor, GPU-power-rich Xbox, kind of knackered things for the PC port of the game (a memory-rich, fairly GPU-poor platform).
Essentially, a world texture is made up of lots of lower resolution textures which get combined together. Think multiple levels of detail textures overlaid on a very low-resolution base texture. It actually works fairly well - the game still looks pretty good (and non-blurry) when played at a higher screen resolution on a PC.
I guess some high-quality anti-aliasing, a 50/60Hz framerate and some tidied-up content would more than suffice for the first game - and some WORKING TEXTURE CACHING for the second would certainly be welcomed. Anything else would most likely hit that limited-storage problem you mentioned - 20GB is pretty tiny if there's the need to store next-generation-quality content for multiple games...
I travel one hour per day, and since my SE K750i is so powerful, I watch re-encoded episodes of American Dad and Family Guy to kill some time. The quality is acceptable. I basically see the phone as a cool gadget to kill some time while travelling or attending a very boring class.
;-)
Whatever happened to reading a book?
I'm starting to feel like some weird throwback to some bygone age with my newspapers and paperback books - and I'm only 26!
(Mod parent up!)
;-)
I was doing exactly this earlier today - it's definitely possible to make a site regurgitate vital data by injecting SQL through what was supposed to be an integer database ID supplied in a URL...
The database was expecting a number. So I sent it something like the following: '1 UNION ( SELECT 1, 2, 3, 4, 5, 6, 7, username, password, 10, 11, 12 FROM users ) --' - and instead of project associates for an organisation, it printed a great long list of usernames and (trivially encrypted) passwords.
(Yes, I'm doing all this with full permission - in fact I'm being paid to do this by the people who are supposed to be using this site. It's appalled me how easy it is to compromise a site in this manner, and also how easy it is to protect against...)
Basically, if it's supposed to be a number, make sure it's a number.
That's what I do - I enforce that all strings are completely unadorned with any extra escape-slashes junk, and always add them in when they're actually needed. Likewise for numbers - I'll cast them to integers as appropriate, so they can't actually be strings in disguise.I do this completely automatically now; it actually makes the SQL in my PHP quite nice to read with syntax highlighting, as I know exactly what each variable is supposed to contain. Doing it consistently is a great help, too...
This is, of course, after The Guardian invested 80 million quid on new, hamburger-format-oriented printing presses. Of the non-e-paper variety!
Oops...
You realise that lucid dreaming is basically another name for dreams you can control.
Are you sure you're not just dreaming that you can control them?
Some day, all software will be distributed through either leaks or invites, then one day someone will try to be special and different by actually releasing it on time
And maybe, just maybe, it won't be a Beta!