snprintf will always write 'n' bytes. it will not write a null terminator if it runs out of room, and it will pad with 0's if it doesn't. so you won't overflow your buffer, but you might not get a terminator. it's better to just resize your buffers or error out.
Developers have known about buffer overflows for years, and people still use sprintf over snprintf.
snprintf just trades off potentially writing past the end of the buffer with potentially reading past the end of the buffer. People should be resizing their buffers as needed - when is it ever OK to truncate data - and stop misusing the 'n' functions.
Team Fortress 2 rewards skill, to be sure, but the shallowness of the learning curve and self-teaching mechanisms means that expertise in TF2 is a much lower piece of fruit. Ultimately, isn't that the sign of a great online game? One that lots of people can participate in?
(disclaimer: I'm a hardcore bhopping, rocket/gren jumping, physics abusing player of the original TF and Custom-TF)
Leveling the field between newbies and long time players doesn't come without a price. The correct phrase is "dumbed down" - with little to master, I don't see it captivating players for long. HL2: Ep2 and Portal are both fantastic games and well worth the price, but I can't say the same for TF2.
Microsoft has never referred to these as new core web fonts. TFA seems to confuse them starting with a "C" as meaning "core". I read an article directly from Microsoft (which I fail to locate at the moment) that said they start with a "C" because they were all designed specifically to take advantage of ClearType, but there were also three market-drone "C" words that were stressed. None of them were "core".
They are phenomenal fonts, but there's only one problem - CSS's font fallback support is almost useless. Fonts of the same point size being different in actual size is quite common, and these ClearType fonts tend to be significantly smaller than other fonts. There is currently no way to specify sizes for individual fallback fonts, and there is no good way to test for font availability in Javascript.
So unless you are developing a site specifically for users who have this font installed, be prepared to battle with inconsistent sizes. Even if you're a good web developer and use font derived sizes (em, ex, etc.) for things it can still throw your design out of wack when Corbel looks just perfect at 9pt but your fallback font Verdana looks huge.
For any fellow Quake players who enjoy trick maps: get Portal now! This has to be the most fun I've had since beating maps like rjartvf1 for the first time. Okay, so the maps don't involve a super large amount of it, but the potential is endless for map makers - it doesn't have Quake's physics but this is the Next Big Thing we've all been looking for.
Portal is stocked full of humor and puzzles. I'd recommend it to anyone.
So how much will these cards cost? Flynn told us that the company is aiming to beat $30 dollars a GB
So the initial 80GB model will hopefully cost less than $2400. I suspect these will be limited to servers demanding immense I/O with a large amount of data.
Best way to get ahead in reviews? Optimize a common CPU-intensive component for your products. So long as they provide a generic implementation compatible with competitors' products, game developers will stay happy. But they'll still get that extra FPS lead that ensures benchmark scores over AMD, and a few FPS is all it takes.
I remember my dad taking a continued education class for dentistry, and he saw something like this.. several years ago. I'm not sure if it was the same thing, but apparently it found cancer in people even before they show symptoms.
And not too hard to implement - all you need is a lexer and a few functions to classify different naming styles. lexertl even comes ready with a full example for C++, so get to it;)
if the author cared about sharing he could have used the GPL. i have no remorse for people releasing under BSD that throw a fit when people actually distribute (or don't) under terms of the license. i say this as someone who releases most of his code under the zlib or bsd licences.
The only thing I can think of is the ISP might have an incompatibility with the new per-connection recieve window autotuning that Vista does. I can't really think of why this would affect an ISP's routers though - really I've only heard of it affecting some older consumer routers that didn't support it.
Is it nice to give back under the BSD? Sure! But not doing so is not rude. They could have used the GPL if wanted it to be given back under the same license. Instead by using BSD they explicitly give you the legal right and moral OK to not give back.
Erasing the copyright info is definitely illegal. No arguments there.
I don't write those fancy codecs, but I can immediately see where some of these instructions could come in handy - for instance, PCMOV and PTEST (packed cmov/test).
The new instructions take up an extra opcode byte, but seeing how they will lower the amount of instructions you would otherwise do, I don't see that as a problem. The super instructions (like FMADDPS - Multiply and Add Packed Single-Precision
Floating-Point) do more than just help the instruction decoder too - they mention "infinitely precise" intermediate voodoo for several of them which makes it seem like doing a FMADDPS instead of a MULPS,ADDPS will result in a more accurate result.
There are new 16-bit floating point instructions too, which I can see as a boon for graphics wanting the ease of floating point and a little higher rounding precision than bytes with values between 0 and 255 would give, without the large memory requirements of 32-bit floating point.
did you reply to the wrong comment? async has nothing to do with deployment or failover, it's just a different method for being notified when an operation is done.
see this comment for more along the lines of what I'm talking about.
I'm unhappy about the wait() call because it doesn't lend itself to fully async coding - if you've got nothing to do in that context, you're stuck blocking the thread when it could be doing other things. So now you have to waste CPU on context switches and waste RAM on state for a new thread.
A good callback-based API doesn't have these deficiencies. You just call a function to dequeue completion callbacks, from however many threads you'd like. You're never stuck blocking when there is work to be done, and you don't waste time polling needlessly.
The only async apis they have are like the example I gave before. These are sub-optimal!
It's true that with a single server handling 10, 100, 200 RPS, the stupid threaded model will likely not make a big difference in _throughput_. It will make a MASSIVE difference in CPU/RAM usage though, and let you easily scale up to 10000 RPS on commodity hardware using just a single thread. Some people like to maximize their hardware usage.
And async is certainly not much more difficult - it's a new way of thinking, sure, something new to learn. But it's not really that difficult! Compare the two:
/* threaded */
int res = send(sock, buf, size, 0);
if(res != -1) { /* do something */
}
else { /* handle error */
}
Is that most of them have poor native APIs when it comes to scalability. Some of them have something like
handle = query("SELECT..."); /*do something*/ result = wait(handle);
But that is far from optimal. When will they be smart and release an async API that notifies you via callback when complete? This would be very useful for apps that need maximum scalability.
Microsoft's.NET framework is actually a great example of doing the right thing - it has these types of async methods all over the place. But then you have to deal with cross-platform issues and problems inherent with a GC.
It's not that much different for web frameworks either. None that I've tried (RoR, PHP, ASP.NET) have support for async responding - they all expect you to block execution should you want to query a db/file/etc. and just launch boatloads of threads to deal with concurrent users. I guess right now with hardware being cheaper it is easier to support rapid development and scale an app out to multiple servers.
any forensic team with an ounce of competence will copy the original HDD and work off the copy, so that just won't work.
Vista lets you drag folders into the Favorite Links area :)
Everyone I know uses an XviD or h.264 codec these days. I haven't seen a new DivX video for a couple years.
is the obesity problem over then?
It sounds like you are re-implementing an non-anonymous Freenet.
snprintf will always write 'n' bytes. it will not write a null terminator if it runs out of room, and it will pad with 0's if it doesn't. so you won't overflow your buffer, but you might not get a terminator. it's better to just resize your buffers or error out.
(disclaimer: I'm a hardcore bhopping, rocket/gren jumping, physics abusing player of the original TF and Custom-TF)
Leveling the field between newbies and long time players doesn't come without a price. The correct phrase is "dumbed down" - with little to master, I don't see it captivating players for long. HL2: Ep2 and Portal are both fantastic games and well worth the price, but I can't say the same for TF2.
Microsoft has never referred to these as new core web fonts. TFA seems to confuse them starting with a "C" as meaning "core". I read an article directly from Microsoft (which I fail to locate at the moment) that said they start with a "C" because they were all designed specifically to take advantage of ClearType, but there were also three market-drone "C" words that were stressed. None of them were "core".
They are phenomenal fonts, but there's only one problem - CSS's font fallback support is almost useless. Fonts of the same point size being different in actual size is quite common, and these ClearType fonts tend to be significantly smaller than other fonts. There is currently no way to specify sizes for individual fallback fonts, and there is no good way to test for font availability in Javascript.
So unless you are developing a site specifically for users who have this font installed, be prepared to battle with inconsistent sizes. Even if you're a good web developer and use font derived sizes (em, ex, etc.) for things it can still throw your design out of wack when Corbel looks just perfect at 9pt but your fallback font Verdana looks huge.
For any fellow Quake players who enjoy trick maps: get Portal now! This has to be the most fun I've had since beating maps like rjartvf1 for the first time. Okay, so the maps don't involve a super large amount of it, but the potential is endless for map makers - it doesn't have Quake's physics but this is the Next Big Thing we've all been looking for.
Portal is stocked full of humor and puzzles. I'd recommend it to anyone.
I'm not sure how much just one developer can do, but props to Novell nonetheless.
Best way to get ahead in reviews? Optimize a common CPU-intensive component for your products. So long as they provide a generic implementation compatible with competitors' products, game developers will stay happy. But they'll still get that extra FPS lead that ensures benchmark scores over AMD, and a few FPS is all it takes.
I remember my dad taking a continued education class for dentistry, and he saw something like this.. several years ago. I'm not sure if it was the same thing, but apparently it found cancer in people even before they show symptoms.
And not too hard to implement - all you need is a lexer and a few functions to classify different naming styles. lexertl even comes ready with a full example for C++, so get to it ;)
if the author cared about sharing he could have used the GPL. i have no remorse for people releasing under BSD that throw a fit when people actually distribute (or don't) under terms of the license. i say this as someone who releases most of his code under the zlib or bsd licences.
The only thing I can think of is the ISP might have an incompatibility with the new per-connection recieve window autotuning that Vista does. I can't really think of why this would affect an ISP's routers though - really I've only heard of it affecting some older consumer routers that didn't support it.
It's not rude.
Is it nice to give back under the BSD? Sure! But not doing so is not rude. They could have used the GPL if wanted it to be given back under the same license. Instead by using BSD they explicitly give you the legal right and moral OK to not give back.
Erasing the copyright info is definitely illegal. No arguments there.
I don't write those fancy codecs, but I can immediately see where some of these instructions could come in handy - for instance, PCMOV and PTEST (packed cmov/test).
The new instructions take up an extra opcode byte, but seeing how they will lower the amount of instructions you would otherwise do, I don't see that as a problem. The super instructions (like FMADDPS - Multiply and Add Packed Single-Precision Floating-Point) do more than just help the instruction decoder too - they mention "infinitely precise" intermediate voodoo for several of them which makes it seem like doing a FMADDPS instead of a MULPS,ADDPS will result in a more accurate result.
There are new 16-bit floating point instructions too, which I can see as a boon for graphics wanting the ease of floating point and a little higher rounding precision than bytes with values between 0 and 255 would give, without the large memory requirements of 32-bit floating point.
I won't be buying. I was looking forward to this one, too.
did you reply to the wrong comment? async has nothing to do with deployment or failover, it's just a different method for being notified when an operation is done.
see this comment for more along the lines of what I'm talking about.
I'm unhappy about the wait() call because it doesn't lend itself to fully async coding - if you've got nothing to do in that context, you're stuck blocking the thread when it could be doing other things. So now you have to waste CPU on context switches and waste RAM on state for a new thread.
A good callback-based API doesn't have these deficiencies. You just call a function to dequeue completion callbacks, from however many threads you'd like. You're never stuck blocking when there is work to be done, and you don't waste time polling needlessly.
The only async apis they have are like the example I gave before. These are sub-optimal!
It's true that with a single server handling 10, 100, 200 RPS, the stupid threaded model will likely not make a big difference in _throughput_. It will make a MASSIVE difference in CPU/RAM usage though, and let you easily scale up to 10000 RPS on commodity hardware using just a single thread. Some people like to maximize their hardware usage.
And async is certainly not much more difficult - it's a new way of thinking, sure, something new to learn. But it's not really that difficult! Compare the two:
Is that most of them have poor native APIs when it comes to scalability. Some of them have something like
But that is far from optimal. When will they be smart and release an async API that notifies you via callback when complete? This would be very useful for apps that need maximum scalability.
Microsoft's .NET framework is actually a great example of doing the right thing - it has these types of async methods all over the place. But then you have to deal with cross-platform issues and problems inherent with a GC.
It's not that much different for web frameworks either. None that I've tried (RoR, PHP, ASP.NET) have support for async responding - they all expect you to block execution should you want to query a db/file/etc. and just launch boatloads of threads to deal with concurrent users. I guess right now with hardware being cheaper it is easier to support rapid development and scale an app out to multiple servers.