I disagree. A knowledgable human using assembly will nearly always beat any optimiser, be it a compiler or a human tweaking a high-level language. For a start he can cheat by using that good knowledge of disassembled code. Write good code in HLL, examine compiler output and improve it. Compilers are getting good at fast copies and simple maths routines but they know jack about your customised graphics inner loop which has to run like a speed demon. They will generalise and that's where Assembly Dude (tm) can step up and start optimising by hand. Assembly Dude also knows more about his algorithms and data than the compiler does - yet another unfair advantage - not to mention the various quirks of processor pipelines and AGI conditions if they exist. I agree that a good knowledge of compiler output helps you write better HLL code while keeping portability but for speed (and often size) a good asm programmer can run rings around any compiler.
Bain is absolutely right here (and the fact that he's a personal friend has nothing to do with it of course). When you're cut off from the rest of the world, you have to make things work when you run into trouble.
P.S. better change your homepage dude - twilyt.com goes to Sophy's Web Cam now...
I also don't give a fsck what you'll say about "but the GPL!!
OK, at least we know where you stand but let me try and present the facts anyway.
If MS were to do this they would withouth question weasal around the GPL or hire an army of lawyers to get it thrown out or watered down to the point it wouldn't matter.
That's an amazing amount of crap squeezed into one sentence. You can't just "weasel around the GPL": it's a license that happens to be applied to someone else's copyrighted code. Should your theoretical army of Microsoft-sponsored lawyers get the GPL chucked out of court, then an even worse fate awaits the company: illegal use of copyrighted code - an offence they know and understand very well (since they have been found guilty and fined for doing so more than once). Your other suggestion is equally laughable. Microsoft's lawyers can't water down the GPL any more than I can sign a piece of paper giving you carte blanche to sell unauthorised copies of Windows XP. There are a good five million lines of GPLed code in the Linux kernel and tens of thousands of contributors. Microsoft knows only too well they can't even look at GPL projects let alone use their code.
Meanwhile, they would either not give any code back to the kernel, or more likely would inject code specifically designed to slowly build up an IP claim over the entire kernel.
Um, yeah right. Microsoft forks the kernel and builds in its own proprietary extensions, starts distributing them illegally and attempts to sabotage the remaining official branches. Apart from wrapping the whole of Seattle in huge plastic letters that spell out the words "WE LOST" I can't think of a better way to admit defeat.
Linus once said, and it's a telling quote: "if Microsoft ever port Office to Linux, I've won." You can be really sure that quote is well known (and understood) by management in Redmond - who are people that like to win more than they like to make money.
I've browsed quite far down all comments and have yet to see someone mention the Data Display Debugger. I find it an absolutely indispensible tool for debugging anything longer than a small utility. Off the top of my head, it supports all but one of your requirements (the exception is #6 which I think is unreasonable for compiled code but I can see why you like the possibility). Hmmm - not sure about #3 mainly because I've never tried it. Don't see why not though - set a watchpoint to stop whenever the variable's value changes and then go back a frame. And yes #7 is supported if gdb is your inferior debugger through user-defined commands.
While I was RTFA, I was intoning "DDD" to just about every complaint the author brought up. Quite apart from its support for Python, Perl and Java, its visual display of data structures is unique. Array getting mangled? Display it as a graph and see exactly how and where it gets clobbered. Threads getting you down? Display the data that needs to be mutexed and attach to process.
When I first played Nethack on an XT running DOS, framerate was critical. When you went down a level, it was easy to tell if there was a shop on that level - everything slowed down visibly!
Three submissions for the trolling missions, daring the Reply Seven for the editors and their brains of stone Nine for portal ads doomed to die One for the dark Katz and his dark Tome In the land of Mordoration where the mod points lie One Submission to rule them all, One Submission to find them, One Submission to bring them all and in the Slashdot bind them In the land of Mordoration where the mod points lie
Hmmmm - I think this is the original home of this link. The petition was authored by one Kevin Klerck. Wait a minute! Slashdotwidener@yahoo.com? It's the Goatse.cx troll!
Easily the stupidest thing I ever ever did was go into an old abandoned gold mine with some friends. I went to boarding school in the African bush at a college that was built on top of an old abandoned gold mine and weekends were often spent messing around on mine dumps and in old excavations. Apart from the usual bats and claustrophobic terror attacks, we once came across some old dynamite - maybe around 30-40 years old. It was sweating - and when dynamite sweats it oozes pure nitroglycerine. Not good. I had problems with bowels and bladder for the slow trip backwards and I know the guy in front of me did too...
For Dragonslair it was boring *very little strategy* compared to alot of high-selling games released in the same year *1990?*.
I distinctly remember playing Dragon's Lair - the arcade version - in early 1985. I also distinctly remember wasting an entire semester's allowance on it but that's another story...
Go on, mod me down, my karma is Godlike and I get 5 mod points a day...
Re:Who Actually USES These Patterns?
on
Design Patterns
·
· Score: 2
As soon as people talk in terms of patterns, they're talking at a level of abstraction above basic objects, and at a level where you're talking about object construction and interactions.
This also helps when you're trying to wrap your head around a library written by others. Some of the clearest and best use of design patterns I've seen is in the Open SceneGraph library. Although a little short on tutorial docs, the code is so well designed (including naming!) from a patterns point of view that you can pick up what the various classes are doing very quickly.I wouldn't quite recommend it to a beginner in patterns but for someone looking at exactly how they are used in the real world, it's great code.
Very simply: Maya and Blender are modelling packages where the geometry of models and scenes is created. Liquid is a tool to export the work you do in Maya to a RenderMan-compliant format. Renderman itself is just a standard which defines a couple of things including which functions a compatible renderer must provide and what a bytestream sent to a renderer looks like. Pixar's renderer is called PhotoRealistic Renderman (or PRMan for short). The main reason the final output of a RenderMan-compatible renderer surpasses Maya's and Blender's built-in output routines is that textures and surfaces and lighting can be defined by shaders. These are little C-like programs which calculate what a given pixel will look like based on its position, lighting and so on. This is roughly the order of creation:
Model your geometry in a tool like Maya or Blender
Export it to a RenderMan Interface ByteStream format (.RIB) using MTOR or Liquid for Maya or a python script for Blender
Write or buy the shaders you need to define your textures, surfaces and some forms of lighting
Run a RenderMan-compatible renderer on the RIB file to produce a picture which has potentially the same quality as that of Toy Story or A Bug's Life
Wait several days if your scene is very complex:)
Disclaimer: I am not a professional rendering artist/shader writer/modeller, but I have played around with all three to produce some amazing results. It's great fun to get into - but to make any progress you need serious CPU cycles. Excuse me, Aqsis compilation just bailed with some error...
My favourite example of Fritz's chatter was when Garry Kasparov got his copy from ChessBase and installed it. After a few games, he phoned up Frederick Friedel at ChessBase to complain about the "chatterbox" feature. Some time later he phoned again - mollified. He'd manoeuvred into a stunning position and Fritz had asked "are you Garry Kasparov?"
This is absolutely correct. To reply to all the other posters on this thread: time is a very important part of all competitive chess. There are strict rules about the chess clock and its use. International chess specifies 2 hours for the first 40 moves and then another two hours to reach move 60, for example (IIRC). Losing on time is a very common occurrence - especially on the Internet servers. Nothing like a quick game of 2 minutes blitz to make you appreciate time to think:)
If you want to see some game played by grandmasters when in "time trouble", I'd suggest picking up the Mammoth Book of Chess by Graham Burgess for some excellent - and amusing - examples. You don't have all the time in the world - chess is a balance between concentration and speed.
I'm not talking about the determination of the hijackers, I'm talking about the - let me say it again - massive failure by many US authorities to follow best practices before and after the event. For examples before, just search Time Magazine for "whistle blower" and "FBI". For examples on the day, here is a good start.
Is there anything that could have been done in design terms to stop 11 September from happening?
I don't think so. As far as I can tell, no mistakes were made. There were no practices in place that weren't followed.
He's joking right? It's kind of hard to tell from the context whether he's talking about facial recognition and 9/11, or just design in general and 9/11, but I for one am in the camp that says there was a massive failure to follow best practices by many of the US authorities before and during 9/11.
I disagree. A knowledgable human using assembly will nearly always beat any optimiser, be it a compiler or a human tweaking a high-level language. For a start he can cheat by using that good knowledge of disassembled code. Write good code in HLL, examine compiler output and improve it. Compilers are getting good at fast copies and simple maths routines but they know jack about your customised graphics inner loop which has to run like a speed demon. They will generalise and that's where Assembly Dude (tm) can step up and start optimising by hand.
Assembly Dude also knows more about his algorithms and data than the compiler does - yet another unfair advantage - not to mention the various quirks of processor pipelines and AGI conditions if they exist. I agree that a good knowledge of compiler output helps you write better HLL code while keeping portability but for speed (and often size) a good asm programmer can run rings around any compiler.
5) insert key2, rinse, lather repeat.
So all we have to do is be on the lookout for suspicious looking characters with soapsuds still in their hair?
*duck* - the rest of your points well taken.
Bain is absolutely right here (and the fact that he's a personal friend has nothing to do with it of course). When you're cut off from the rest of the world, you have to make things work when you run into trouble.
P.S. better change your homepage dude - twilyt.com goes to Sophy's Web Cam now...
I also don't give a fsck what you'll say about "but the GPL!!
OK, at least we know where you stand but let me try and present the facts anyway.
If MS were to do this they would withouth question weasal around the GPL or hire an army of lawyers to get it thrown out or watered down to the point it wouldn't matter.
That's an amazing amount of crap squeezed into one sentence. You can't just "weasel around the GPL": it's a license that happens to be applied to someone else's copyrighted code. Should your theoretical army of Microsoft-sponsored lawyers get the GPL chucked out of court, then an even worse fate awaits the company: illegal use of copyrighted code - an offence they know and understand very well (since they have been found guilty and fined for doing so more than once). Your other suggestion is equally laughable. Microsoft's lawyers can't water down the GPL any more than I can sign a piece of paper giving you carte blanche to sell unauthorised copies of Windows XP. There are a good five million lines of GPLed code in the Linux kernel and tens of thousands of contributors. Microsoft knows only too well they can't even look at GPL projects let alone use their code.
Meanwhile, they would either not give any code back to the kernel, or more likely would inject code specifically designed to slowly build up an IP claim over the entire kernel.
Um, yeah right. Microsoft forks the kernel and builds in its own proprietary extensions, starts distributing them illegally and attempts to sabotage the remaining official branches. Apart from wrapping the whole of Seattle in huge plastic letters that spell out the words "WE LOST" I can't think of a better way to admit defeat.
Linus once said, and it's a telling quote: "if Microsoft ever port Office to Linux, I've won." You can be really sure that quote is well known (and understood) by management in Redmond - who are people that like to win more than they like to make money.
Doh! Of course you can - not thinking straight today ...
I've browsed quite far down all comments and have yet to see someone mention the Data Display Debugger. I find it an absolutely indispensible tool for debugging anything longer than a small utility. Off the top of my head, it supports all but one of your requirements (the exception is #6 which I think is unreasonable for compiled code but I can see why you like the possibility). Hmmm - not sure about #3 mainly because I've never tried it. Don't see why not though - set a watchpoint to stop whenever the variable's value changes and then go back a frame. And yes #7 is supported if gdb is your inferior debugger through user-defined commands.
While I was RTFA, I was intoning "DDD" to just about every complaint the author brought up. Quite apart from its support for Python, Perl and Java, its visual display of data structures is unique. Array getting mangled? Display it as a graph and see exactly how and where it gets clobbered. Threads getting you down? Display the data that needs to be mutexed and attach to process.
When I first played Nethack on an XT running DOS, framerate was critical. When you went down a level, it was easy to tell if there was a shop on that level - everything slowed down visibly!
I don't know who said it. But it true IMHO.
Henry Spencer - who originally said: those who do not understand Unix are condemned to reinvent it, poorly.
Even more appropriate...
Three submissions for the trolling missions, daring the Reply
Seven for the editors and their brains of stone
Nine for portal ads doomed to die
One for the dark Katz and his dark Tome
In the land of Mordoration where the mod points lie
One Submission to rule them all, One Submission to find them,
One Submission to bring them all and in the Slashdot bind them
In the land of Mordoration where the mod points lie
Hmmmm - I think this is the original home of this link. The petition was authored by one Kevin Klerck. Wait a minute! Slashdotwidener@yahoo.com? It's the Goatse.cx troll!
Easily the stupidest thing I ever ever did was go into an old abandoned gold mine with some friends. I went to boarding school in the African bush at a college that was built on top of an old abandoned gold mine and weekends were often spent messing around on mine dumps and in old excavations.
Apart from the usual bats and claustrophobic terror attacks, we once came across some old dynamite - maybe around 30-40 years old. It was sweating - and when dynamite sweats it oozes pure nitroglycerine. Not good. I had problems with bowels and bladder for the slow trip backwards and I know the guy in front of me did too...
For those who didn't get the joke, Gradesaver has excellent Cliffish-like notes for all three LoTR titles as well as the Hobbit.
The answer is simple: Because laptops SUCK for working in your lap.
:)
If they sucked that much, I think this guy would have been happier
Actually I was quite relieved to be told where I was in the headline. 17 hours of debugging assembly tends to disorient the mind...
For Dragonslair it was boring *very little strategy* compared to alot of high-selling games released in the same year *1990?*.
I distinctly remember playing Dragon's Lair - the arcade version - in early 1985. I also distinctly remember wasting an entire semester's allowance on it but that's another story...
...
3. Profit!
Go on, mod me down, my karma is Godlike and I get 5 mod points a day...
As soon as people talk in terms of patterns, they're talking at a level of abstraction above basic objects, and at a level where you're talking about object construction and interactions.
This also helps when you're trying to wrap your head around a library written by others. Some of the clearest and best use of design patterns I've seen is in the Open SceneGraph library. Although a little short on tutorial docs, the code is so well designed (including naming!) from a patterns point of view that you can pick up what the various classes are doing very quickly.I wouldn't quite recommend it to a beginner in patterns but for someone looking at exactly how they are used in the real world, it's great code.
Always great to get a correction from one of the guys at Big Idea! Now if only you would release the Bunny Song in it's entirety... :)
Renderman itself is just a standard which defines a couple of things including which functions a compatible renderer must provide and what a bytestream sent to a renderer looks like. Pixar's renderer is called PhotoRealistic Renderman (or PRMan for short). The main reason the final output of a RenderMan-compatible renderer surpasses Maya's and Blender's built-in output routines is that textures and surfaces and lighting can be defined by shaders. These are little C-like programs which calculate what a given pixel will look like based on its position, lighting and so on.
This is roughly the order of creation:
Disclaimer: I am not a professional rendering artist/shader writer/modeller, but I have played around with all three to produce some amazing results. It's great fun to get into - but to make any progress you need serious CPU cycles.
Excuse me, Aqsis compilation just bailed with some error...
My favourite example of Fritz's chatter was when Garry Kasparov got his copy from ChessBase and installed it. After a few games, he phoned up Frederick Friedel at ChessBase to complain about the "chatterbox" feature. Some time later he phoned again - mollified. He'd manoeuvred into a stunning position and Fritz had asked "are you Garry Kasparov?"
This is absolutely correct. To reply to all the other posters on this thread: time is a very important part of all competitive chess. There are strict rules about the chess clock and its use. International chess specifies 2 hours for the first 40 moves and then another two hours to reach move 60, for example (IIRC). Losing on time is a very common occurrence - especially on the Internet servers. Nothing like a quick game of 2 minutes blitz to make you appreciate time to think :)
If you want to see some game played by grandmasters when in "time trouble", I'd suggest picking up the Mammoth Book of Chess by Graham Burgess for some excellent - and amusing - examples. You don't have all the time in the world - chess is a balance between concentration and speed.
1) IBM Sold It, and IBM customers buy what they are told.
2) CICS client
3) Fairly low memory requirements.
4) ????
5) Prof... oh wait, hang on...
Of course, he may feel a slight sting...
I'm not talking about the determination of the hijackers, I'm talking about the - let me say it again - massive failure by many US authorities to follow best practices before and after the event. For examples before, just search Time Magazine for "whistle blower" and "FBI". For examples on the day, here is a good start.
Is there anything that could have been done in design terms to stop 11 September from happening?
I don't think so. As far as I can tell, no mistakes were made. There were no practices in place that weren't followed.
He's joking right? It's kind of hard to tell from the context whether he's talking about facial recognition and 9/11, or just design in general and 9/11, but I for one am in the camp that says there was a massive failure to follow best practices by many of the US authorities before and during 9/11.