Flash works fine in the Nokia N900 web browser, and it has a touch screen.
The browser can also emulate a cursor, when it's needed.
Which is thankfully, not very often. So I think the anonymous story poster is wrong.
What are you talking about? Software fails all the time, and for many, many reasons. And if if a program is logically correct, the hardware upon which it must run can certainly fail to execute instructions correctly.
Formally correct software does not fail in the sense that it 'suddenly' stops working. If it has a 'bug', then the 'bug' has always been there. That's what I mean with failing, because the parent of my post made an analogy between bridges and computer programs. And hardware failure is not software failure. Bridges fail due to forces outside of your control, but well-formed computer programs do not. Changes to the platform or hardware would mean a new specification is needed, which means redesign. If the platform and hardware is static, it is possible to make a perfect computer program, but it is far from feasible. There is always time and budget constraints, (I acknowledge that, I'm not stupid) but that doesn't change that software which is shipped with flaws is per definition, unfinished, or is based on a flawed specification.
If we are going to punish people, shouldn't everyone involved share in the responsibility?
Nice straw man there. I didn't mention punishment with one word. I contested the analogy in my parent's post.
I hope you are not a software manager. If you are, you are completely and totally ignorant of modern software development processes and I pity anyone who works for you. [...] Get an education. Work in the field for a while. Then come back and perhaps we can have an intelligent dialog.
Great insults. You just lost whatever sound arguments you had.
In projects with tens of thousands of lines of code, it is unreasonable and completely unrealistic to expect every line to be a pinnacle of perfection, just like it is unreasonable to expect that every sentence in a book is completely without error.
Yes, I don't disagree. It seems people took my post a bit too literally. Given that you code against one static platform, it is possible to make bug-free software, but it's usually not feasible in practice. The poster I replied to felt that people were 'barking up the wrong tree' by blaming software engineers more than attackers. It is that part my post addresses. I'm not some nut who thinks that all shipped software can be free of exploits. But I do think that software which is not bug-free is in fact unfinished or has a flawed specification. That this happens to be the case for all but the most trivial software, doesn't change anything.
And yes, I do write code. But if my code fails, I know where to put the blame. At myself. I don't do self-deception. My applications might do their task well enough in most cases, but if they contain bugs or attack vectors, they are by definition not finished.
Putting most of the blame on attackers is a cop-out, which was my point in the previous post.
Software does not fail, ever. It either works according to the specification, or it does not. Any attack vector or 'bug' is a fault with the program which has always been there. Bridges and other structures can't be made 100% secure, but software can and should. If a piece of software is not, then either it does not work according to the specification (as in, not finished), or it was deliberately made to be faulty. This is where your analogy breaks down. A well-formed program is 'invincible', but a bridge can never be, unless someone invents a material which is resistant to corrosion, shock, extreme heat/cold, and never gets tired.
In fact, since software cannot fail, ever, designing a well-formed specification and software following that specification exactly, is the only thing you can be responsible for as a software engineer. Since the very definition of "works according to specification" implies the absence of any vulnerabilities, is it really so hard to see why the blame is put on the software authors, in addition to the 'attackers'?
Feel free to ship unfinished software, or make it insecure on purpose. But then don't be surprised of the opinion customers and your peers hold for you.
we still have a proposed Internet Filter, no R18+ rating for video games, and a South Australian government that passed a law saying that every person commenting about the election online must provide their real name and postcode. We have a long way to go yet.
What is unhealthy is that they are likely to want the real thing eventually. Take for instance the straight male that gets one of these - it may placate him when he gets randy but it is only going to increase his appetite for more. hat makes you think a pedophile would be any different?
So you think pedophilia is 'curable'? It's not more curable than say, homosexuality is. It's a sexual preference. If that's not what you meant, how do you figure that getting an outlet for ones urges somehow makes a person even more desperate? In my head, it's kind of the other way around.
I beg to differ. For example, you can measure all the angles in the known universe if you want to, but you will *never* be able to prove the Pythagoras theorem wrong. For sound mathematical proofs, they precede experiments.
Note that I only think this makes sense for mathematical proofs.
When I was twelve, I moved from QBasic to C. C isn't that difficult to understand. If the child doesn't show any interest, don't push him/her. It takes a certain level of curiosity to like programming. It isn't for everyone. Choosing a dumbed-down toy-language doesn't make a difference, but being a good teacher does.
I loved AvP back in 1999. Sure, the campaign was short, but there was one for each race, remember? Besides, the *real* fun was to play multiplayer via Gamespy or MPlayer. I used to play 1 vs 7 team deathmatch against my buddies with me as alien and the other team as whatever race they wanted. I won single-handedly every time because the alien was so fast. Hit'n'run tactics for the win.
Sadly, they nerfed the alien in AvP2. That game *really* sucked. Instead of decent jumping, they added a pounce attack, which made your enemy explode, leaving no body to let you regain health. And yeah, I do agree with the franchise mix. The Alien and Predator universes are better separated than combined. I really look forward to Colonial Marines.
It's not always as clear-cut as this. Some code simply *is* complex by nature, or needs to be complex to meet certain requirements, like high performance. A real-life example could be finding the type of an instructions in a RISC instruction set where all the instructions is of the same fixed length. The 'clean' solution be something like:
int ParseInstruction(unsigned int instr) { int i; unsigned int sbo,sbz;
for(i=0; i<NUM_INSTR; ++i){ sbo =instr_set_mask[i];/* instruction set bit mask */ sbz = instr_zero_mask[i];/* instruction mask for required zero bits */ if((instr & sbo) == sbo && (~instr & sbz) == sbz) return i; } return InstrUndefined; }
Elegant, readable and very maintainable, but yet horribly slow for most solutions. Instead you end up with a nightmare of branches in order to avoid scanning through the whole instruction set for every instruction. My point is that in practice, there is no way you can always make super maintainable code *and* fulfill all the requirements. Some solutions are butt ugly while still being the best one for the current problem. Heck, some of the easiest algorithms to read are the ones with the highest run time. For example long multiplication vs Toom Cook multiplication. Premature optimization is evil though, and I agree with the rest of your post. I just think it came off as a bit purist.
The only prerequisite to use C code for "bare-metal" code is a working stack. That means setting the stack pointer to a sane value right after a RESET. I've coded lowlevel embedded stuff for the Gameboy Advance and GP2X with C only. Down to the interrupt handler.
I consider death penalty to be wrong in itself, as it works more as revenge rather than as a deterrent or rehabilitation. The government is no better than the criminal in that case. But actually making someone *wait on death row* without knowing when he/she will die, is even more hideous. That's something I wouldn't wish my worst enemy. Or something I can imagine the worst serial killer do to a victim. It's pure evil. If capital punishment is deemed necessary, at least execute the punishment quickly without unnecessary waiting.
Troll? Thanks guys, I love you all. Too bad you guys didn't get the joke. You know.. some of use have waited *a long time* for a Linux port of Unreal 3. And you can bet your arse that their commercial SDK isn't coupled to a Windows build environment.
Quake was not 3D either, in the true sense of the word. The engine did not support 'roll', i.e rotation around the Z-axis. I guess it boils down to the definition of 3D. In my head, "true" 3D is freedom in 3D directions without any restrictions, and free rotation in all three axes without causing gimbal lock. I'm not sure, but perhaps Descent fits my definition.
Flash works fine in the Nokia N900 web browser, and it has a touch screen.
The browser can also emulate a cursor, when it's needed.
Which is thankfully, not very often. So I think the anonymous story poster is wrong.
Formally correct software does not fail in the sense that it 'suddenly' stops working. If it has a 'bug', then the 'bug' has always been there. That's what I mean with failing, because the parent of my post made an analogy between bridges and computer programs. And hardware failure is not software failure. Bridges fail due to forces outside of your control, but well-formed computer programs do not. Changes to the platform or hardware would mean a new specification is needed, which means redesign. If the platform and hardware is static, it is possible to make a perfect computer program, but it is far from feasible. There is always time and budget constraints, (I acknowledge that, I'm not stupid) but that doesn't change that software which is shipped with flaws is per definition, unfinished, or is based on a flawed specification.
Nice straw man there. I didn't mention punishment with one word. I contested the analogy in my parent's post.
Great insults. You just lost whatever sound arguments you had.
Yes, I don't disagree. It seems people took my post a bit too literally. Given that you code against one static platform, it is possible to make bug-free software, but it's usually not feasible in practice. The poster I replied to felt that people were 'barking up the wrong tree' by blaming software engineers more than attackers. It is that part my post addresses. I'm not some nut who thinks that all shipped software can be free of exploits. But I do think that software which is not bug-free is in fact unfinished or has a flawed specification. That this happens to be the case for all but the most trivial software, doesn't change anything.
And yes, I do write code. But if my code fails, I know where to put the blame. At myself. I don't do self-deception. My applications might do their task well enough in most cases, but if they contain bugs or attack vectors, they are by definition not finished.
Putting most of the blame on attackers is a cop-out, which was my point in the previous post.
Software does not fail, ever. It either works according to the specification, or it does not. Any attack vector or 'bug' is a fault with the program which has always been there. Bridges and other structures can't be made 100% secure, but software can and should. If a piece of software is not, then either it does not work according to the specification (as in, not finished), or it was deliberately made to be faulty. This is where your analogy breaks down. A well-formed program is 'invincible', but a bridge can never be, unless someone invents a material which is resistant to corrosion, shock, extreme heat/cold, and never gets tired.
In fact, since software cannot fail, ever, designing a well-formed specification and software following that specification exactly, is the only thing you can be responsible for as a software engineer. Since the very definition of "works according to specification" implies the absence of any vulnerabilities, is it really so hard to see why the blame is put on the software authors, in addition to the 'attackers'?
Feel free to ship unfinished software, or make it insecure on purpose. But then don't be surprised of the opinion customers and your peers hold for you.
we still have a proposed Internet Filter, no R18+ rating for video games, and a South Australian government that passed a law saying that every person commenting about the election online must provide their real name and postcode. We have a long way to go yet.
And banned A-cup breasts from mainstream pornography. Reason? Think-of-the-children mentality again. http://www.sankakucomplex.com/2010/01/28/australia-bans-small-breasts-as-child-pornography/ I found that both amusing and shocking. It's not about children's safety anymore, but pushing moral values and acting as thought-police.
What is unhealthy is that they are likely to want the real thing eventually. Take for instance the straight male that gets one of these - it may placate him when he gets randy but it is only going to increase his appetite for more. hat makes you think a pedophile would be any different?
So you think pedophilia is 'curable'? It's not more curable than say, homosexuality is. It's a sexual preference. If that's not what you meant, how do you figure that getting an outlet for ones urges somehow makes a person even more desperate? In my head, it's kind of the other way around.
If the math works, then "shut up and calculate"
Sorry, but experiments trump math.
I beg to differ. For example, you can measure all the angles in the known universe if you want to, but you will *never* be able to prove the Pythagoras theorem wrong. For sound mathematical proofs, they precede experiments. Note that I only think this makes sense for mathematical proofs.
DIE! Just give it up already. It's not even fun anymore.
Incidentally, which is hardest to kill? DNF or Jack Thompson?
So God is the HIV virus?
The word you're looking for is probably intent, not purpose.
When I was twelve, I moved from QBasic to C. C isn't that difficult to understand. If the child doesn't show any interest, don't push him/her. It takes a certain level of curiosity to like programming. It isn't for everyone. Choosing a dumbed-down toy-language doesn't make a difference, but being a good teacher does.
Did you forget the 28800 baud modem? :-)
All algorithms can be described by lambda calculus: Wikipedia:Lamda_calculus
I loved AvP back in 1999. Sure, the campaign was short, but there was one for each race, remember? Besides, the *real* fun was to play multiplayer via Gamespy or MPlayer. I used to play 1 vs 7 team deathmatch against my buddies with me as alien and the other team as whatever race they wanted. I won single-handedly every time because the alien was so fast. Hit'n'run tactics for the win.
Sadly, they nerfed the alien in AvP2. That game *really* sucked. Instead of decent jumping, they added a pounce attack, which made your enemy explode, leaving no body to let you regain health. And yeah, I do agree with the franchise mix. The Alien and Predator universes are better separated than combined. I really look forward to Colonial Marines.
I'd claim that the He-Man Christmas special is worse. (requires Flash)
It's not always as clear-cut as this. Some code simply *is* complex by nature, or needs to be complex to meet certain requirements, like high performance. A real-life example could be finding the type of an instructions in a RISC instruction set where all the instructions is of the same fixed length. The 'clean' solution be something like:
/* instruction set bit mask */ /* instruction mask for required zero bits */
int ParseInstruction(unsigned int instr)
{
int i;
unsigned int sbo,sbz;
for(i=0; i<NUM_INSTR; ++i){
sbo =instr_set_mask[i];
sbz = instr_zero_mask[i];
if((instr & sbo) == sbo && (~instr & sbz) == sbz)
return i;
}
return InstrUndefined;
}
Elegant, readable and very maintainable, but yet horribly slow for most solutions. Instead you end up with a nightmare of branches in order to avoid scanning through the whole instruction set for every instruction. My point is that in practice, there is no way you can always make super maintainable code *and* fulfill all the requirements. Some solutions are butt ugly while still being the best one for the current problem. Heck, some of the easiest algorithms to read are the ones with the highest run time. For example long multiplication vs Toom Cook multiplication.
Premature optimization is evil though, and I agree with the rest of your post. I just think it came off as a bit purist.
How can you kill that which has no wife??
There, I fixed that for you.
Incidentally, you have a number in your handle. I assume 4 is suppose to mean 'for'? :-)
The only prerequisite to use C code for "bare-metal" code is a working stack. That means setting the stack pointer to a sane value right after a RESET. I've coded lowlevel embedded stuff for the Gameboy Advance and GP2X with C only. Down to the interrupt handler.
I consider death penalty to be wrong in itself, as it works more as revenge rather than as a deterrent or rehabilitation. The government is no better than the criminal in that case.
But actually making someone *wait on death row* without knowing when he/she will die, is even more hideous. That's something I wouldn't wish my worst enemy. Or something I can imagine the worst serial killer do to a victim. It's pure evil. If capital punishment is deemed necessary, at least execute the punishment quickly without unnecessary waiting.
Troll? Thanks guys, I love you all. Too bad you guys didn't get the joke. You know.. some of use have waited *a long time* for a Linux port of Unreal 3. And you can bet your arse that their commercial SDK isn't coupled to a Windows build environment.
boooring!
Quake was not 3D either, in the true sense of the word. The engine did not support 'roll', i.e rotation around the Z-axis. I guess it boils down to the definition of 3D. In my head, "true" 3D is freedom in 3D directions without any restrictions, and free rotation in all three axes without causing gimbal lock. I'm not sure, but perhaps Descent fits my definition.
Shh.. don't give them ideas!
I rather want a laptop with touch-screen than support stereoscopic imaging. The former is convenient, the latter is a gimmick.