This only went on so long because tech sites use such poor, useless benchmarking methods. Minimum/Average/Maximum FPS, or often just Average/Maximum FPS, are worthless!
A game, or a video card, can average 100fps, but still have that one frame every second that performs some extra I/O and takes 3x longer than usual causing an annoying stutter effect.
A good first step would be to use frame latency percentiles.. i.e. 90% of frames are at least 60 FPS, 95% of frames are at least 50 FPS, 99% of frames are at least 40 FPS.
The next step is to measure spikes themselves -- low framerate sucks, but not nearly as much as a stuttering framerate. A sudden spike from constant 10ms/frame to 50ms/frame and back should be counted as far more detrimental than a smooth transition from constant 10ms to constant 25ms.
3) takes time to make. The quicker it is to create the hash, the quicker it is to brute-force your way through all possible combinations to find a hash that matches.
I wouldn't say that. The hash itself should be as quick as possible, so long as it satisfies the other requirements. We have things like PBKDF2 when we want a hash to eat up a lot of CPU, and scrypt when we want to eat up lots of RAM as well.
Garbage collection has its uses. C++ makes resource management trivial and safe, so really it wouldn't be used for the same reasons as other languages tend to like it for, but they do exist. I'll actually be happy to see if WG21 can find a way to get it into the language cleanly and efficiently.
Maximally efficient compile-time bounds checking is possible right now, thought there are so many places where this can't work that it would provide only a slight safety -- and language support for this wouldn't do any better.
Run-time bounds checking is something we already have. Every random-access container in the standard library has an at member function which throws an exception if the given index is out of bounds.
What is 'properly-used C++'? First the essential C++ advocacy catchphrase was 'don't use the bits you don't like', now it's 'you're not using it properly'.
By "properly" I mean fully, with no features left out. I'd hoped to have implied that with the context you left out, "not a subset," but maybe I did that poorly. Exceptions, RTTI, non-trivial static variables, the full standard library, and even the thread storage class included.
"Don't use the bits you don't like" is kind of a stupid catchphrase, certainly not one of C++. If it had any mantra, it might be "don't pay for what you don't use".
None of the C++ features listed in that link are inherently incompatible with kernel-mode. They're all simply a lack of support in the compiler to target the environment.
+1. High-level features are not mutually exclusive with low-level ones. C++ being "unsafe" in some areas is not something people are in denial about -- it is a purposeful tradeoff for providing unbeatable performance when you need it.
Want more safety? Performance not an issue? There are better languages for those cases than C++, and it's a programmer's prerogative to use them, not a standard body's job to adapt the language for something it isn't intended for.
And for good reason, C++ in kernel space is a recipe for disaster.
I hear this fairly often, but never with any compelling argument behind it. What parts of C++ wouldn't work well for kernel-mode, exactly? How are these specific parts, combined, enough to give a blanket "recipe for disaster" statement?
The one poor argument I've heard is that some C++ features requires runtime support, and people seem to think this runtime support is some user-mode voodoo that is impossible to implement in kernel-mode. Which is complete nonsense.
I've written drivers (albeit for Windows, not Linux), and I'm a bit of a language lawyer when it comes to C++. I can't say I've ever encountered a problem in kernel-mode where I thought C++ wouldn't be able to do the job. And not with some crappy subset of it, either. I mean full-blown, properly-used C++.
What is it with open-source leaders and their irrational hate of C++?
I don't think it's irrational. It's just for different reasons than many individuals may have.
It is perfectly possible for someone extremely competent in C++ to write code that someone else, with an equal level of knowledge and experience, can't make heads or tails of without some serious review time.
And then there's an additional problem that, because C++ is such a complex language, it's possible for people with more experience to write better code that people with less experience simply can't yet understand. And by less experience, I mean someone who understands the problem and the general solution, but only has 5 years of heavy C++ use. This problem of pure language complexity and a huge ramp-up time may not be unique to C++, but it's something C does not really suffer from.
I say this as someone who absolutely loves C++ and uses it daily. I love the complexity. I love to play around with templates to do some micro-optimization that I'd probably never put in live code. But I must say, the idea of being a maintainer -- reviewing and committing a diverse set of patches like Linus has to do -- for a C++ project sounds incredibly daunting for the reasons given above.
Often, this leads to atrocious usage guidelines that significantly hamper the flexibility and power of the language in an attempt to make it more accessible.
the example used was RMS's distaste for C++, not exactly a strong point against RMS
So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?
Does RMS actually have control over what GNU projects are implemented in? If so, I'd say that's quite a strong point against GNU -- throw the whole "right tool for the job" bit out the window because one dude doesn't like it?
Both the Colorado movie killer and Virginia Tech Killer had been identified with mental illness with red flags.
A constant theme around these is that plenty of people noticed "red flags" in the person, and yet none of them did anything about it to get them help. I think this is probably more 20/20 hindsight than useful observation. And then everyone gets the idea that if only the system worked better, they'd have got help.
How do we improve the system? Who's responsible for getting people help? One person might know someone with social anxiety disorder, while another person might only see a "red flag" in a gun-collecting guy with scruffy hair who never looks anyone in the eye. Is every person who doesn't intimately know you but sees some odd behavior supposed to harass you about getting help?
I think this is a more complicated thing than many will let on, and it's a slippery slope to TSA levels of worthless profiling.
Would you rather have double the detail at 30 FPS, or half the detail at 60 FPS?
It depends entirely on the game. In a twitch shooter like Quake where you expect constant feedback, things feel drastically wrong at 30fps. In a single-player shooter? These are rarely built for competitive players, and don't need quick response. I can handle 30fps if it has decent motion blur, like Crysis. In an RPG? 30fps is mildly annoying but playable.
But that's only what I can tolerate, without shelving the game for a future video card. If I had a choice? I'd pick 60fps over 30fps every time. It's one of those things you don't realize you want until you've had it -- I guarantee console players would love it too if given the choice.
How many times do you people need to be told client side security doesn't work?
Client-side security is like a lock on your front door. It's there to keep people honest, not to keep people out. Clearly it was not targeting people like Mr. Angel.
Tor only anonymizes the source of the data; Anything between the exit node and destination is sent in the clear and likely they've made some mistake that'll allow it to be blockable.
One feature of Tor is "hidden services", where the traffic is encrypted end-to-end and even the service itself is anonymous, identified only through a.onion address. I'd guess this is what they're using.
Some Tor nodes filter certain exits -- ie. to not allow porn through their node. if this works for hidden services I imagine this botnet could be blacklisted fairly easily if enough of the node operators got in on the act.
This is a bit worrisome, because Valve has a tendency to let non-critical issues go unaddressed for long periods of time, instead preferring to work on some new feature that will inevitably have its own set of ignored issues.
As more and more games have decided to integrate completely with Steam, I've been having more and more problems with friends dropping from games when Steam decides to just randomly disconnect people as they update servers or whatever. This happens 1-3 times a week, where their servers just constantly disconnect people every so often for a few hours. Some of the games are even completely unplayable when Steam is down (Dungeon Defenders, looking at you!). Some of this is the game's fault for being so deeply tied to Steam, but really Steam's devs need to learn how to provide a more robust user experience before they get into the living room.
I get it -- servicing 6 million concurrent users is tough -- but other services have been doing it just fine for far longer than Steam has existed.
For example, the Linux kernel is a lot older than 12 years now. If Linus hadn't gone through the motions to register the copyright and apply for extensions, by now we'd see a whole host of proprietary companies legally take the Linux source code and do what they want with it.
I'd rather have the collective works of everyone get into the public domain than worry about people copying 12-year-old Linux code.
He is referring to needing to swipe from the corner of the screen in order to find the restart option. This definitely fits within the "tablet interface" definition for me. Restarting and shutting down seem to take people a while to find in Windows 8. If you don't know the shortcuts and you have only ever done it via the start menu, you won't find the option anywhere obvious.
As far as Windows 8 being a failed tablet experience -- I don't understand how he could have ended up at that conclusion. I don't have enough OSX/iOS experience to be able to compare to those with any authority, but compared to Android on my Nexus 7, the only thing I've found Windows 8 lacking for is apps. The UI looks better, is more intuitive, and doesn't need a quad core beast to run smoother than "butter".
I don't even think Windows 8 fails as a desktop experience, really. At first glance it comes close -- very close -- but after using it for a while I feel like the changes aren't the end of the world and in many cases are actually improvements. The apps -- okay, these are awkward at best and usually pretty useless with a keyboard and mouse. I don't use those -- I've got all my desktop apps still. The start screen is actually pretty nice, supporting all the features I cared about in the start menu like launching via typed search, but with the added benefit that I can have live tiles displaying information at a glance whenever I hit the windows key.
The OS has some improved APIs that I've been wanting for a while. I think the only major request I've got left is the ability to asynchronously open files, with asynchronous manual page faults being a distant "that'd be neat" second.
The summary is building expectations so much that I can't help feeling this is a massive flop (yup, I did that) waiting to happen.
I'd be really impressed if they did match the performance of the 920, even if it'll probably be somewhere between 5-10 years old by the time this Free CPU sees production and gets into consumer hands. That's quite a complex, performant CPU right there to match. But the summary has so many holes, I really have a hard time believing they'll get anywhere near the 920 for general-purpose computing.
Compare it to a modern processor? Intel's Haswell architecture, coming out mid-2013, has theoretical performance of 973 GFLOPS of single-precision and 486 GFLOPS of double-precision. And those numbers don't include the on-die GPU performing work in OpenCL simultaneously.
I'm all for a Free CPU design and really wish them well, but naming names and saying they'll be comparable opens them up to this kind of skepticism fair and square.
Java has yet to be ported to the Pi's floating-point, so the only option is to use soft floats. I can't imagine Minecraft running at any acceptable speed. LibreOffice is also painfully unusable on the Pi at the moment, but I don't know how much that depends on float ops.
Where are you ordering from? Different vendors have different timings -- some will get you a Pi within a week, others (Allied?) don't seem to get much stock and take forever.
During Windows Vista and previous development, private beta testers (not internal to MS) were given a constant stream of new builds to test. Microsoft was very responsive and bugs were generally fixed very quickly. I know this will surprise people, but at least for me, Vista was quite bug-free at launch because all the ones I found during the beta were fixed.
Sinofsky took over for Windows 7, and the change in testing procedure was jarring. We got a total of two builds over the entire program -- Beta 1 and RC. The effects of this were that many bug reports weren't reproducible on their much newer internal builds, so the bugs either didn't get fixed or testers were wasting effort. When the RC was released, Microsoft actually deleted many old bug reports and told everyone not to submit anything that didn't result in a BSOD or failed install, which let a lot of glaring cosmetic bugs get through. I can only imagine this was so they could reduce their official bug counts at launch.
The botched Windows 7 testing lead to the weirdest thing I could imagine -- in the middle of the program, there was basically a revolt among the testers. So much so that some took to labeling themselves "proud" testers in their signatures to separate them from the frustrated majority.
For Windows 8 -- we all pretty much knew it was going to happen -- there was no external testing at all. I guess after Vista's performance issues and the poor handling of 7, it was pretty easy for them to decide testers weren't helping them.
This is pretty common. Source engine can also be DoSed very easily with corrupt packets. It's one of the reasons I stopped playing Left 4 Dead --- some people can't just lose, they need to be losers.
Software Engineer: can build a flexible, properly designed application architecture and has grown past the schooled "everything fits within some methodology X" phase (i.e. can think outside the box).
Developer: will usually be able to make something that works, and even write quite nice code when given good direction, but can create a mess when given a chance to be a cowboy coder.
Political Compass puts me very close to Stein, while isidewith says I agree more with Johnson's policies -- who is far far far on the right at PC. I guess gauging someone's politics is a bit difficult with a quiz.
This might not be explicitly removing software patents, but in effect that sounds like what would happen. What would the point of software patents be if this made it so nobody could ever infringe on one?
Maybe this kind of indirect approach is exactly what is needed to blend in with other legislation.
This only went on so long because tech sites use such poor, useless benchmarking methods. Minimum/Average/Maximum FPS, or often just Average/Maximum FPS, are worthless!
A game, or a video card, can average 100fps, but still have that one frame every second that performs some extra I/O and takes 3x longer than usual causing an annoying stutter effect.
A good first step would be to use frame latency percentiles.. i.e. 90% of frames are at least 60 FPS, 95% of frames are at least 50 FPS, 99% of frames are at least 40 FPS.
The next step is to measure spikes themselves -- low framerate sucks, but not nearly as much as a stuttering framerate. A sudden spike from constant 10ms/frame to 50ms/frame and back should be counted as far more detrimental than a smooth transition from constant 10ms to constant 25ms.
3) takes time to make. The quicker it is to create the hash, the quicker it is to brute-force your way through all possible combinations to find a hash that matches.
I wouldn't say that. The hash itself should be as quick as possible, so long as it satisfies the other requirements. We have things like PBKDF2 when we want a hash to eat up a lot of CPU, and scrypt when we want to eat up lots of RAM as well.
Garbage collection has its uses. C++ makes resource management trivial and safe, so really it wouldn't be used for the same reasons as other languages tend to like it for, but they do exist. I'll actually be happy to see if WG21 can find a way to get it into the language cleanly and efficiently.
Maximally efficient compile-time bounds checking is possible right now, thought there are so many places where this can't work that it would provide only a slight safety -- and language support for this wouldn't do any better.
Run-time bounds checking is something we already have. Every random-access container in the standard library has an at member function which throws an exception if the given index is out of bounds.
What is 'properly-used C++'? First the essential C++ advocacy catchphrase was 'don't use the bits you don't like', now it's 'you're not using it properly'.
By "properly" I mean fully, with no features left out. I'd hoped to have implied that with the context you left out, "not a subset," but maybe I did that poorly. Exceptions, RTTI, non-trivial static variables, the full standard library, and even the thread storage class included.
"Don't use the bits you don't like" is kind of a stupid catchphrase, certainly not one of C++. If it had any mantra, it might be "don't pay for what you don't use".
None of the C++ features listed in that link are inherently incompatible with kernel-mode. They're all simply a lack of support in the compiler to target the environment.
+1. High-level features are not mutually exclusive with low-level ones. C++ being "unsafe" in some areas is not something people are in denial about -- it is a purposeful tradeoff for providing unbeatable performance when you need it.
Want more safety? Performance not an issue? There are better languages for those cases than C++, and it's a programmer's prerogative to use them, not a standard body's job to adapt the language for something it isn't intended for.
And for good reason, C++ in kernel space is a recipe for disaster.
I hear this fairly often, but never with any compelling argument behind it. What parts of C++ wouldn't work well for kernel-mode, exactly? How are these specific parts, combined, enough to give a blanket "recipe for disaster" statement?
The one poor argument I've heard is that some C++ features requires runtime support, and people seem to think this runtime support is some user-mode voodoo that is impossible to implement in kernel-mode. Which is complete nonsense.
I've written drivers (albeit for Windows, not Linux), and I'm a bit of a language lawyer when it comes to C++. I can't say I've ever encountered a problem in kernel-mode where I thought C++ wouldn't be able to do the job. And not with some crappy subset of it, either. I mean full-blown, properly-used C++.
What is it with open-source leaders and their irrational hate of C++?
I don't think it's irrational. It's just for different reasons than many individuals may have.
It is perfectly possible for someone extremely competent in C++ to write code that someone else, with an equal level of knowledge and experience, can't make heads or tails of without some serious review time.
And then there's an additional problem that, because C++ is such a complex language, it's possible for people with more experience to write better code that people with less experience simply can't yet understand. And by less experience, I mean someone who understands the problem and the general solution, but only has 5 years of heavy C++ use. This problem of pure language complexity and a huge ramp-up time may not be unique to C++, but it's something C does not really suffer from.
I say this as someone who absolutely loves C++ and uses it daily. I love the complexity. I love to play around with templates to do some micro-optimization that I'd probably never put in live code. But I must say, the idea of being a maintainer -- reviewing and committing a diverse set of patches like Linus has to do -- for a C++ project sounds incredibly daunting for the reasons given above.
Often, this leads to atrocious usage guidelines that significantly hamper the flexibility and power of the language in an attempt to make it more accessible.
the example used was RMS's distaste for C++, not exactly a strong point against RMS
So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?
Does RMS actually have control over what GNU projects are implemented in? If so, I'd say that's quite a strong point against GNU -- throw the whole "right tool for the job" bit out the window because one dude doesn't like it?
Both the Colorado movie killer and Virginia Tech Killer had been identified with mental illness with red flags.
A constant theme around these is that plenty of people noticed "red flags" in the person, and yet none of them did anything about it to get them help. I think this is probably more 20/20 hindsight than useful observation. And then everyone gets the idea that if only the system worked better, they'd have got help.
How do we improve the system? Who's responsible for getting people help? One person might know someone with social anxiety disorder, while another person might only see a "red flag" in a gun-collecting guy with scruffy hair who never looks anyone in the eye. Is every person who doesn't intimately know you but sees some odd behavior supposed to harass you about getting help?
I think this is a more complicated thing than many will let on, and it's a slippery slope to TSA levels of worthless profiling.
Would you rather have double the detail at 30 FPS, or half the detail at 60 FPS?
It depends entirely on the game. In a twitch shooter like Quake where you expect constant feedback, things feel drastically wrong at 30fps. In a single-player shooter? These are rarely built for competitive players, and don't need quick response. I can handle 30fps if it has decent motion blur, like Crysis. In an RPG? 30fps is mildly annoying but playable.
But that's only what I can tolerate, without shelving the game for a future video card. If I had a choice? I'd pick 60fps over 30fps every time. It's one of those things you don't realize you want until you've had it -- I guarantee console players would love it too if given the choice.
How many times do you people need to be told client side security doesn't work?
Client-side security is like a lock on your front door. It's there to keep people honest, not to keep people out. Clearly it was not targeting people like Mr. Angel.
Tor only anonymizes the source of the data; Anything between the exit node and destination is sent in the clear and likely they've made some mistake that'll allow it to be blockable.
One feature of Tor is "hidden services", where the traffic is encrypted end-to-end and even the service itself is anonymous, identified only through a .onion address. I'd guess this is what they're using.
Some Tor nodes filter certain exits -- ie. to not allow porn through their node. if this works for hidden services I imagine this botnet could be blacklisted fairly easily if enough of the node operators got in on the act.
Richard is an academic.
RMS is a religion.
Defines ethics for people to follow? Check.
Loves to shove his views down other people's throats? Check.
Ostracizes anyone who don't follow his strict views? Check.
Has a confusing mix of greater-good that helps people tolerate his batshit-crazy? Check.
Has an old tome with several revisions and unfortunate interpretations, which many people praise without actually understanding it? Check.
This is a bit worrisome, because Valve has a tendency to let non-critical issues go unaddressed for long periods of time, instead preferring to work on some new feature that will inevitably have its own set of ignored issues.
As more and more games have decided to integrate completely with Steam, I've been having more and more problems with friends dropping from games when Steam decides to just randomly disconnect people as they update servers or whatever. This happens 1-3 times a week, where their servers just constantly disconnect people every so often for a few hours. Some of the games are even completely unplayable when Steam is down (Dungeon Defenders, looking at you!). Some of this is the game's fault for being so deeply tied to Steam, but really Steam's devs need to learn how to provide a more robust user experience before they get into the living room.
I get it -- servicing 6 million concurrent users is tough -- but other services have been doing it just fine for far longer than Steam has existed.
For example, the Linux kernel is a lot older than 12 years now. If Linus hadn't gone through the motions to register the copyright and apply for extensions, by now we'd see a whole host of proprietary companies legally take the Linux source code and do what they want with it.
I'd rather have the collective works of everyone get into the public domain than worry about people copying 12-year-old Linux code.
He is referring to needing to swipe from the corner of the screen in order to find the restart option. This definitely fits within the "tablet interface" definition for me. Restarting and shutting down seem to take people a while to find in Windows 8. If you don't know the shortcuts and you have only ever done it via the start menu, you won't find the option anywhere obvious.
As far as Windows 8 being a failed tablet experience -- I don't understand how he could have ended up at that conclusion. I don't have enough OSX/iOS experience to be able to compare to those with any authority, but compared to Android on my Nexus 7, the only thing I've found Windows 8 lacking for is apps. The UI looks better, is more intuitive, and doesn't need a quad core beast to run smoother than "butter".
I don't even think Windows 8 fails as a desktop experience, really. At first glance it comes close -- very close -- but after using it for a while I feel like the changes aren't the end of the world and in many cases are actually improvements. The apps -- okay, these are awkward at best and usually pretty useless with a keyboard and mouse. I don't use those -- I've got all my desktop apps still. The start screen is actually pretty nice, supporting all the features I cared about in the start menu like launching via typed search, but with the added benefit that I can have live tiles displaying information at a glance whenever I hit the windows key.
The OS has some improved APIs that I've been wanting for a while. I think the only major request I've got left is the ability to asynchronously open files, with asynchronous manual page faults being a distant "that'd be neat" second.
The summary is building expectations so much that I can't help feeling this is a massive flop (yup, I did that) waiting to happen.
I'd be really impressed if they did match the performance of the 920, even if it'll probably be somewhere between 5-10 years old by the time this Free CPU sees production and gets into consumer hands. That's quite a complex, performant CPU right there to match. But the summary has so many holes, I really have a hard time believing they'll get anywhere near the 920 for general-purpose computing.
Compare it to a modern processor? Intel's Haswell architecture, coming out mid-2013, has theoretical performance of 973 GFLOPS of single-precision and 486 GFLOPS of double-precision. And those numbers don't include the on-die GPU performing work in OpenCL simultaneously.
I'm all for a Free CPU design and really wish them well, but naming names and saying they'll be comparable opens them up to this kind of skepticism fair and square.
Java has yet to be ported to the Pi's floating-point, so the only option is to use soft floats. I can't imagine Minecraft running at any acceptable speed. LibreOffice is also painfully unusable on the Pi at the moment, but I don't know how much that depends on float ops.
Where are you ordering from? Different vendors have different timings -- some will get you a Pi within a week, others (Allied?) don't seem to get much stock and take forever.
During Windows Vista and previous development, private beta testers (not internal to MS) were given a constant stream of new builds to test. Microsoft was very responsive and bugs were generally fixed very quickly. I know this will surprise people, but at least for me, Vista was quite bug-free at launch because all the ones I found during the beta were fixed.
Sinofsky took over for Windows 7, and the change in testing procedure was jarring. We got a total of two builds over the entire program -- Beta 1 and RC. The effects of this were that many bug reports weren't reproducible on their much newer internal builds, so the bugs either didn't get fixed or testers were wasting effort. When the RC was released, Microsoft actually deleted many old bug reports and told everyone not to submit anything that didn't result in a BSOD or failed install, which let a lot of glaring cosmetic bugs get through. I can only imagine this was so they could reduce their official bug counts at launch.
The botched Windows 7 testing lead to the weirdest thing I could imagine -- in the middle of the program, there was basically a revolt among the testers. So much so that some took to labeling themselves "proud" testers in their signatures to separate them from the frustrated majority.
For Windows 8 -- we all pretty much knew it was going to happen -- there was no external testing at all. I guess after Vista's performance issues and the poor handling of 7, it was pretty easy for them to decide testers weren't helping them.
This is pretty common. Source engine can also be DoSed very easily with corrupt packets. It's one of the reasons I stopped playing Left 4 Dead --- some people can't just lose, they need to be losers.
Software Engineer: can build a flexible, properly designed application architecture and has grown past the schooled "everything fits within some methodology X" phase (i.e. can think outside the box).
Developer: will usually be able to make something that works, and even write quite nice code when given good direction, but can create a mess when given a chance to be a cowboy coder.
Political Compass puts me very close to Stein, while isidewith says I agree more with Johnson's policies -- who is far far far on the right at PC. I guess gauging someone's politics is a bit difficult with a quiz.
This might not be explicitly removing software patents, but in effect that sounds like what would happen. What would the point of software patents be if this made it so nobody could ever infringe on one?
Maybe this kind of indirect approach is exactly what is needed to blend in with other legislation.