Possibly the best advice I ever read/heard (I can't remember the origin), is to assume that the guy reading your code is perfectly familiar with the language. (Sadly this is usually inaccurate, but moving on.) So he can see what, mechanically, your code is doing. The idea of a comment is to explain how and why you are doing something. What is usually clear from the function name and accompanying documentation (be it doxygen/javadoc style or MSDN style or something else). I.e. if you have some jacked up mega-compound for-loop, a good comment explains why that loop is the way it is, and how it's achieving its goal (and possibly what precisely it's doing). A bad comment would be "this loop increments i, j, k, theta, and cheez_it until the cheez_it is failing to exceed the sum of i, j and the product of i, j, and k". That kind of information is right there in the code.
In short, comments convey concepts and explanations, not mechanical descriptions.
JCP isn't a standard. It's merely a consortium. That's better than unilateral control, but it's not the same as a standard-proper, like what you get when working with ANSI. As for your calling Mono a "minimalist" implementation, that's bullshit. With the exception of the Windows/MS specific libraries, Mono is almost completely compatible with.NET, to the point that several major applications done in ASP.NET can be run under a Linux/Apache setup. And the CLR is an open standard, MS cannot sue anyone for doing an implementation. They own the ".NET" trademark of course, but to build a "CLR implementation" and call it whatever you want is perfectly safe, forever.
If anything, you're the one who fell for a "feel-good" trick.
Let that sink in for a moment. Java isn't standardized. Sun would love for you to think Java is standardized, because it adds an extra layer of fuzzy comfort. That layer is, however, an illusion. Can you find a Java standard anywhere? A JVM standard? Nothing in ECMA, ISO, ANSI, et al? That's because they don't exist. Java is proprietary. Now, you have a fairly solid measure of assurance that you won't be sued for implementing it...although if you're MS and you implement it badly, well...but I digress.
Now, being Slashdot, people here love to hate MS and everything they do. Love it. But let's look at C#. It's completely standardized by the ECMA, both the language itself as well as the underlying virtual machine bytecode. MS cannot change C# or the CLI without running it past ECMA and making the changes publically specified. They can of course write, build, and publish non-standard assemblies like Windows.Forms, but so can anyone else. What about portability? Admittedly, Java is more portable, possibly a result of market distrust of MS combined with a shorter lifespan. (An active, evolving standard doesn't exactly help either.) But there is the Mono project. Mono is open source. Mono is free, as in beer and freedom. MS can never attack Mono legally (and have promised not to try). Mono runs on Windows, Linux, BSD, and OSX. That's not 100% of the PC market, but it's damned close. Mono is a fully evolved and mature project. Contrast that to free/open JVM implementations. I can only think of one, and it's hardly what I would call "mature". And hell, it gets better -- because the CLI is open and publically specified, there are a ton of languages built on CLI you can use if you don't like C#, including a number of Lisp and ML variants, if that's your thing. Other languages built on the JVM? There aren't many. Jython is the only one that comes to mind. (And IronPython serves as a CLI/.NET implementation of Python. It's not mature, but it's promising.)
I think it's pretty damn obvious which runtime system I'm a fan of. Even if you don't like MS, you've gotta admit that from a freedom point of view,.NET beats the crap out of Java.
And apart from that, and Apple developed? Wtf? Is rewriting history just considered acceptable nowadays or what? Xerox developed it. JUST Xerox. Apple stoled from Xerox and refined. MS stole from Apple and refined. Apple and Linux stole from Windows and refined. Ad nauseum. Xerox are probably the only people who didn't steal their ideas straight from someone else and tweak it just enough to avoid getting sued.
The rest of the news story, which slashdot didn't report:
However, upon attempting to show the disc in public, Sony found that entire meeting rooms were vacated almost instantly. It seems no one wants anything to do with Blu-Ray, or even wants to be in the same room to see the disc play. Sony execs are still trying to figure out why.
With the number of offices still running 2k...or NT4...believe me, they've got waiting down like nothing else. 2012 and we'll still have offices on XP, let alone Vista or whatever is afterwards.
M:N threading models
Solaris did this at one point. In short, it didn't go well. The system was a bitch to implement, but when it finally worked it was a big point of advertising. Later, when porting to the Itanium, they simply couldn't get it to work with any kind of reasonable performance, so they stripped it out and went for a more conventional approach. It was much faster than the M:N system. A little later, somebody ported the new system with the M:N threading stripped out back to Sparc, only to find that the conventional model beat the crap out of the M:N threader.
Normally I'd point out that if MS actually used third party libs for things like PNG and JPEG, they wouldn't have these problems (no more than anyone else, anyway). But since this applies to metafile bitmaps, which basically nobody uses, there's nothing to be done.
Read this MS forums post. There are no loopholes here. Download it within a year from now, and you get to use it forever, for free, with no restrictions. Commercial apps are fine. Competing products are fine. Everything is fine, just MS isn't liable. (Typical disclaimer, nothing to speak of.)
On a related note, consider that VS does not, has never had, and probably will never have any kind of anti-piracy measures. The top edition (Team System, I think?) is worth a good $1000-$1500 cash. What other software products retailing at those prices don't carry major copy protection? Not many. I don't know that I'd go so far as to claim that VS is meant to be stolen, but hell, it wouldn't be a hard case to make.
I'm a graphics coder, I'm not pulling this off random bullshit I heard on gamespot or anandtech or something. Of course now texture looksups in the VS are obscure, since ATI didn't bother to implement them.
Bleh, speaking of shader languages. It'd be nice if they spent a little less time on obscure video processing features and a little more time on implementing Shader Model 3.0 properly. Their lack of texture lookups in the vertex shader is weak.
I will direct you to this article:
Kernel-mode drivers that extend or replace kernel services through undocumented means (such as hooking the system service tables) can interfere with other software and affect the stability of the operating system. For x86-based systems, Microsoft discourages such practices but does not prevent them programmatically, because doing so would break compatibility for a significant amount of released software. A similar base of released software does not exist for x64-based systems, so it is possible to add this level of protection to the kernel without breaking compatibility.
As usual, it's the bane of all software corporations today -- legacy crap that some programmer shat out in his sleep.
So, it seems to me only a matter of time before we create miniature factories, which can create miniature models of miniature factories.
Re:Full review and screen shots
on
Quake 4 Linux
·
· Score: 4, Informative
Since I'm friends with a member or 3 of the Q4 dev team, I just want to point out that this is not a "port" of Doom 3. There has been major under the hood work between D3 and Q4 -- Raven would like people to license the Q4 engine instead of the D3 engine. The new engine is far more powerful but also efficient, which allows them to have a lot more lighting, shadowing, etc. effects while maintaining the same basic performance characteristics. That's why, unlike FEAR, it doesn't bring a 7800GTX to its knees.
if, on the other hand, you're doing something like A[i][j], the compiler has to generate two deref ops plus pay the cost of whatever cache misses result from using the two levels of indirection --- in this case, working with pointer / index arithmetic relative to the base address is a big win.
Not true. Not true at all. Multi-D arrays are merely syntactic sugar for single dimension. It doesn't involve two pointer dereferences unless it's a jagged array, aka an array of pointers. A built in C multi-D array will be just as good as a single-D array.
Ah, good old MIPS. I always love this number. The first thing they tell you in computer architecture classes is, "This is the MIPS value. People used to use it, but it's very much a bullshit number."
Next week's article:
Microsoft released a video of people who never used Linux, being asked to use a partly configured LFS system. The users were dropped at a command prompt and asked to simply fire up the windowing system, open the word processor, listen to music, etc. Every single user failed. MS points out that this is 100% accurate and solid evidence that Linux's TCO is 400% higher than Windows.
I like MS. I really do. But the ads. Jesus f'ing christ. No amount of features would make me switch to that system, just like no amount of features in Opera would have made me switch (to the now gone ads-filled version).
Why didn't Google do email years earlier? Why didn't Sun, who as we know absolutely love these sorts of apps, do any AJAX apps?
The bandwidth, connectivity, and general interest in the internet, as well as the sheer concept of something like AJAX, is relatively recent. It's only recently occurred to people to do this sort of thing at all.
It's ironic that MS is all of a sudden fighting for our rights. Admittedly a weak ass version of them (this "managed copy" thing is bullshit, but it's better than Sony's "fuck the consumer" approach).
I wasn't alive for (or at least, I wasn't old enough to notice) the whole Betamax vs VHS incident. Was it as big as this? Or has digital distribution changed something? I guess what I'm asking is, is this just a replay, or is this really something new and bigger than before?
Possibly the best advice I ever read/heard (I can't remember the origin), is to assume that the guy reading your code is perfectly familiar with the language. (Sadly this is usually inaccurate, but moving on.) So he can see what, mechanically, your code is doing. The idea of a comment is to explain how and why you are doing something. What is usually clear from the function name and accompanying documentation (be it doxygen/javadoc style or MSDN style or something else). I.e. if you have some jacked up mega-compound for-loop, a good comment explains why that loop is the way it is, and how it's achieving its goal (and possibly what precisely it's doing). A bad comment would be "this loop increments i, j, k, theta, and cheez_it until the cheez_it is failing to exceed the sum of i, j and the product of i, j, and k". That kind of information is right there in the code.
In short, comments convey concepts and explanations, not mechanical descriptions.
Obviously introverts are smarter. We don't waste all our brain power talking about who hooked up with who, we actually go and do shit.
JCP isn't a standard. It's merely a consortium. That's better than unilateral control, but it's not the same as a standard-proper, like what you get when working with ANSI. As for your calling Mono a "minimalist" implementation, that's bullshit. With the exception of the Windows/MS specific libraries, Mono is almost completely compatible with .NET, to the point that several major applications done in ASP.NET can be run under a Linux/Apache setup. And the CLR is an open standard, MS cannot sue anyone for doing an implementation. They own the ".NET" trademark of course, but to build a "CLR implementation" and call it whatever you want is perfectly safe, forever.
If anything, you're the one who fell for a "feel-good" trick.
Java isn't standardized.
.NET beats the crap out of Java.
Let that sink in for a moment. Java isn't standardized. Sun would love for you to think Java is standardized, because it adds an extra layer of fuzzy comfort. That layer is, however, an illusion. Can you find a Java standard anywhere? A JVM standard? Nothing in ECMA, ISO, ANSI, et al? That's because they don't exist. Java is proprietary. Now, you have a fairly solid measure of assurance that you won't be sued for implementing it...although if you're MS and you implement it badly, well...but I digress.
Now, being Slashdot, people here love to hate MS and everything they do. Love it. But let's look at C#. It's completely standardized by the ECMA, both the language itself as well as the underlying virtual machine bytecode. MS cannot change C# or the CLI without running it past ECMA and making the changes publically specified. They can of course write, build, and publish non-standard assemblies like Windows.Forms, but so can anyone else. What about portability? Admittedly, Java is more portable, possibly a result of market distrust of MS combined with a shorter lifespan. (An active, evolving standard doesn't exactly help either.) But there is the Mono project. Mono is open source. Mono is free, as in beer and freedom. MS can never attack Mono legally (and have promised not to try). Mono runs on Windows, Linux, BSD, and OSX. That's not 100% of the PC market, but it's damned close. Mono is a fully evolved and mature project. Contrast that to free/open JVM implementations. I can only think of one, and it's hardly what I would call "mature". And hell, it gets better -- because the CLI is open and publically specified, there are a ton of languages built on CLI you can use if you don't like C#, including a number of Lisp and ML variants, if that's your thing. Other languages built on the JVM? There aren't many. Jython is the only one that comes to mind. (And IronPython serves as a CLI/.NET implementation of Python. It's not mature, but it's promising.)
I think it's pretty damn obvious which runtime system I'm a fan of. Even if you don't like MS, you've gotta admit that from a freedom point of view,
And apart from that, and Apple developed? Wtf? Is rewriting history just considered acceptable nowadays or what? Xerox developed it. JUST Xerox. Apple stoled from Xerox and refined. MS stole from Apple and refined. Apple and Linux stole from Windows and refined. Ad nauseum. Xerox are probably the only people who didn't steal their ideas straight from someone else and tweak it just enough to avoid getting sued.
KHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN!!! (Yeah yeah slashdot. caps yada yada yelling yada yada I know. 'Tis a joke.)
Dude, it's SPACE movies, not SCI FI movies. How the heck is Back to the Future, albeit a very good movie, considered a SPACE movie?
I think Serenity hasn't been around long enough to sink in to the culture properly, but god, such a good movie. Firefly was a good series too.
The rest of the news story, which slashdot didn't report: However, upon attempting to show the disc in public, Sony found that entire meeting rooms were vacated almost instantly. It seems no one wants anything to do with Blu-Ray, or even wants to be in the same room to see the disc play. Sony execs are still trying to figure out why.
With the number of offices still running 2k...or NT4...believe me, they've got waiting down like nothing else. 2012 and we'll still have offices on XP, let alone Vista or whatever is afterwards.
M:N threading models Solaris did this at one point. In short, it didn't go well. The system was a bitch to implement, but when it finally worked it was a big point of advertising. Later, when porting to the Itanium, they simply couldn't get it to work with any kind of reasonable performance, so they stripped it out and went for a more conventional approach. It was much faster than the M:N system. A little later, somebody ported the new system with the M:N threading stripped out back to Sparc, only to find that the conventional model beat the crap out of the M:N threader.
Normally I'd point out that if MS actually used third party libs for things like PNG and JPEG, they wouldn't have these problems (no more than anyone else, anyway). But since this applies to metafile bitmaps, which basically nobody uses, there's nothing to be done.
Read this MS forums post. There are no loopholes here. Download it within a year from now, and you get to use it forever, for free, with no restrictions. Commercial apps are fine. Competing products are fine. Everything is fine, just MS isn't liable. (Typical disclaimer, nothing to speak of.)
On a related note, consider that VS does not, has never had, and probably will never have any kind of anti-piracy measures. The top edition (Team System, I think?) is worth a good $1000-$1500 cash. What other software products retailing at those prices don't carry major copy protection? Not many. I don't know that I'd go so far as to claim that VS is meant to be stolen, but hell, it wouldn't be a hard case to make.
I'm a graphics coder, I'm not pulling this off random bullshit I heard on gamespot or anandtech or something. Of course now texture looksups in the VS are obscure, since ATI didn't bother to implement them.
Bleh, speaking of shader languages. It'd be nice if they spent a little less time on obscure video processing features and a little more time on implementing Shader Model 3.0 properly. Their lack of texture lookups in the vertex shader is weak.
I will direct you to this article:
Kernel-mode drivers that extend or replace kernel services through undocumented means (such as hooking the system service tables) can interfere with other software and affect the stability of the operating system. For x86-based systems, Microsoft discourages such practices but does not prevent them programmatically, because doing so would break compatibility for a significant amount of released software. A similar base of released software does not exist for x64-based systems, so it is possible to add this level of protection to the kernel without breaking compatibility.
As usual, it's the bane of all software corporations today -- legacy crap that some programmer shat out in his sleep.
So, it seems to me only a matter of time before we create miniature factories, which can create miniature models of miniature factories.
Since I'm friends with a member or 3 of the Q4 dev team, I just want to point out that this is not a "port" of Doom 3. There has been major under the hood work between D3 and Q4 -- Raven would like people to license the Q4 engine instead of the D3 engine. The new engine is far more powerful but also efficient, which allows them to have a lot more lighting, shadowing, etc. effects while maintaining the same basic performance characteristics. That's why, unlike FEAR, it doesn't bring a 7800GTX to its knees.
if, on the other hand, you're doing something like A[i][j], the compiler has to generate two deref ops plus pay the cost of whatever cache misses result from using the two levels of indirection --- in this case, working with pointer / index arithmetic relative to the base address is a big win.
Not true. Not true at all. Multi-D arrays are merely syntactic sugar for single dimension. It doesn't involve two pointer dereferences unless it's a jagged array, aka an array of pointers. A built in C multi-D array will be just as good as a single-D array.
Of course not. Yes MS is changing course, but not that much.
Anyway, if you want to see how the protocol works, just open up the gaim plugin's source code. Problem solved.
Ah, good old MIPS. I always love this number. The first thing they tell you in computer architecture classes is, "This is the MIPS value. People used to use it, but it's very much a bullshit number."
Next week's article: Microsoft released a video of people who never used Linux, being asked to use a partly configured LFS system. The users were dropped at a command prompt and asked to simply fire up the windowing system, open the word processor, listen to music, etc. Every single user failed. MS points out that this is 100% accurate and solid evidence that Linux's TCO is 400% higher than Windows.
I like MS. I really do. But the ads. Jesus f'ing christ. No amount of features would make me switch to that system, just like no amount of features in Opera would have made me switch (to the now gone ads-filled version).
Why didn't Google do email years earlier? Why didn't Sun, who as we know absolutely love these sorts of apps, do any AJAX apps?
The bandwidth, connectivity, and general interest in the internet, as well as the sheer concept of something like AJAX, is relatively recent. It's only recently occurred to people to do this sort of thing at all.
It's ironic that MS is all of a sudden fighting for our rights. Admittedly a weak ass version of them (this "managed copy" thing is bullshit, but it's better than Sony's "fuck the consumer" approach).
I wasn't alive for (or at least, I wasn't old enough to notice) the whole Betamax vs VHS incident. Was it as big as this? Or has digital distribution changed something? I guess what I'm asking is, is this just a replay, or is this really something new and bigger than before?