I think that's the difference between C and Python programmers - C programmers enjoy programming.
That's crazy talk.
Python programmers don't, at least everything my Python-loving collegues say suggests that the thing they like about it most is that they never get to understand what's going on under the hood.
Supposing that you are not misrepresenting your Python-loving collegues, then yes, they are probably not good programmers (at least not great programmers). But so what? What have they got to do with anything? I don't even know these people. What about the Python programmers who do know what is going on under the hood (like me:D)? Are they bad programmers too? Really, if you are going to critique some technology, then please stick to technical issues. It's easy to make logically fallacious arguments: C programmers are bad because I know some C programmers that only know what goes on under the hood. They don't know anything else beyond that. And they smell. Therefor C is bad. (Note to any particularly dimwitted moderators out there: I don't believe that is an accurate representation of C programmers at all! I think it is quite untrue in fact. It is just an example of a logically fallacious argument used to illustrate a point. Please don't mod me down, you dipshit moderator!)
I think that messaging is nearly always a better solution than RPC, especially for wireless where the network might not be very reliable. I've been playing with Spread recently. It looks pretty good.
the point of this exercise was probably to increase sales, so on that front, it's failed...
A cynical person (like me) would say that he rigged it so that cards would would come out on top in order to lend his silly formula an air of objectivity. He knows full well that no one will buy cards and that they will buy the next one on the list, "Monopoly Simpsons", instead.
If I may troll just a little, the first one is better because most programmers are afraid of anything that doesn't look like C and because they like to type in lots of boilerplate code because it makes them feel productive.
A good way to learn regular expressions is to get Python and do experiments with them in the interactive interpreter. That way you get immediate feedback, which is good for learning. According to the docs, Python's regular-expression syntax is "similar to those found in Perl"; so you could transfer your knowledge back to Perl (or just stick with Python, hehe).
Yes, it's true. He was one of the greatest geniuses ever, but he was an asshole. His famous statement, "If I have seen further, it is by standing on the shoulders of giants", was a sarcastic comment directed at Robert Hooke who was a little hunch-backed guy. When Newton oversaw the moving of the Royal Society to a new location and they were moving the portraits of all the members, Hooke's portrait somehow got lost. So now no one knows what Hooke looked like.
I wasn't equivocating as I wasn't being intentionally ambiguous. However, I can see that my original statement was ambiguous, and I've tried to clarify what I meant by it. I will try to write more clearly in the future! The statement "you could say that Jabber has been affected if you like" may have sounded condescending. If it did, I apologize, it was not meant to be. Yes, Jabber has been affected because the Yahoo gateways have been affected; but no, the fundamental functioning of Jabber as an IM system has not been affected -- one Jabber user can still talk to another Jabber user.
If the poster I was replying to was referring to Yahoo gateways, I must have misunderstood him. But he didn't mention Yahoo gateways -- he only mentioned Jabber and Gaim. I thought he was talking about some odd behavior in Gaim that was triggered by the Yahoo protocol change. In any case, I specifically said that the Yahoo gateways would probably be broken. Do I write unclearly or something?
I wasn't aware that people actually use the Yahoo gateways anyway. The previous time the Yahoo protocol changed, the gateway programmers took much longer to crack it than the Gaim programmers.
You are quibbling about the definition of "Jabber". I simply meant that core part of Jabber is unaffected and is in fact immune from the problem of secret changes to closed protocols. Naturally any software -- whether in a client or server -- that connects to Yahoo's system has been affected. So yes, since Jabber servers have an optional component that can (or could) talk to Yahoo's system, you could say that Jabber has been affected if you like.
I use Yahoo! Messenger and haven't experienced any problems whatsoever related to this.
Not directly related to this perhaps, but I've had problems with Yahoo! Messenger. I've noticed a couple of problems: at times msgs have not gone through in one direction (so that there's a one-sided conversation); and sometimes contacts don't show up as being online even though they are not logged-in in invisible mode. So yes, Yahoo users are affected, in a way, by being locked in to what appears to be a crappy protocol or implementation of that protocol. Of course, we can't get the full picture (apart from what can be reverse-engineered on the client end) because the protocol and the official clients and server software are closed.
Yahoo have official clients for Linux and FreeBSD. But I hope you are right that this is good news for Jabber. You don't need to run your own Jabber server BTW. You can sign up for an account on one of the many public Jabber servers.
Of course Jabber is not affected. Why would it be? That is the beauty of Jabber and a good reason why everyone should be using it instead of closed IM protocols. (Good luck convincing anyone though!) If you have a Yahoo account which you log-in to from Gaim, though, you might want to clear the auto-login checkbox for that account for the time being as it won't work and it will just give an error. The Gaim people are working on a fix -- you can read the announcement on their web site. I imagine that any Yahoo gateways on Jabber servers would be broken too.
Yes, GC is just shifting the responsibility, but the freeing-unused-memory pied-piper must be paid by something, no matter the language, no matter the os.
Paid for in what sense? I know from experience that I pay in programming time when doing manual memory management. If you mean paid for in CPU time, you should understand that malloc and free take a significant amount of time already. They are not free. GC does not add a great deal to that cost.
And, when it comes right down to it, we are already developing more programmers now that *cannot* work on os-level code (straight C or asm, always) because they've been indoctrinated into the "just let another process handle that bit o' trivia".
A master programmer can write low-level and high-level code. If you are writing os-level code, you use os-level tools, and manual memory management is appropriate; if you are writing high-level code, you use high-level tools, and GC is appropriate. I really don't see your point. There are many programmers out there who can only write low-level code (poorly). Too much focus on the low-level means that, for instance, they don't know how to use any datastructures except for arrays.
Also, when it comes time to write an app that is as fast as possible with the fastest possible reaction time to the user, a solid minute of unscheduled, but necessary, GC will make such an endeavor impossible.
That hasn't been true of garbage collectors for decades. We are not in the 70s any more. Garbage collectors these days are incremental. The biggest optimization gains in software (except in some low-level software) are usually won through algorithmic optimizations rather than low-level optimizations. Garbage collection tends to make such optimizations easier or at least gain you some programming time in which to implement them.
The competition was judged on performance in a way. The contestants had only so much time to prepare their entries, and much of that time must have been eaten up by their programs doing computation. The winning entry had an element of brute force computation together with a clever method to reduce the amount of computations. C++ sounds like a good choice for that approach.
Now what the BSD license does allow is for some company to take some or all of the source and reuse it elsewhere, under a proprietary license if they so wish, without giving anything back to the Free software community.
They do give back to the community in many cases anyway. I fixed a bug in some code with a BSD-like license that we use in our proprietary product. It made sense for us to send a patch in to the maintainers because naturally it would have been impractical for us to maintain the software ourselves. So we won and the maintainers won -- it made our product better, and the maintainers got the services of a paid programmer to fix one of their bugs. I imagine this is a fairly common case.
Yes, well said. It's better that someone can get some use out of the stuff instead of it just sitting there and becoming worthless. It's not as if computer parts retain value over time. But stuff I don't give away I just toss into cardboard boxes. Seems to work fine.
portupgrade is at least 2 years old... It kicks ass, but it's hardly news
portupgrade is not news, but new user documentation is news. Well, if it's good documentation, then it's news. I read a few sections of it just now, and I think it's pretty good. It's written in a direct, readable style and has lots of examples. Since it answered some questions I had about portupgrade, it seems to me to be comprehensive. So, this is pretty cool. One of the best things about BSD is the quality of the documentation.
"Could care less" is American; "couldn't care less" is British. The American one isn't strictly logical, but that doesn't mean it's wrong because idiomatic expressions often aren't strictly logical (double negatives for instance). Personally, I'm not bothered which version people use because I understand what they mean.
Re:The wrong free distinction, it's free as in spe
on
Perl for the Disabled
·
· Score: 2, Informative
Why this is somewhat amusing is that it's the other kind of "free" (as in speech) as well
The Artistic License may or may not be free (as in RMS). Here's what the FSF says about it:
We cannot say that this is a free software license because it is too vague; some passages are too clever for their own good, and their meaning is not clear. We urge you to avoid using it, except as part of the disjunctive license of Perl.
The problems are matters of wording, not substance. There is a revised version of the Artistic License (dubbed "The Artistic License 2.0") which is a free software license, and even compatible with the GNU GPL. This license is being considered for use in Perl 6. If you are thinking of releasing a program under the Artistic License, please do investigate other GPL-compatible, Free Software licensing options listed here first. [link]
You made a joke saying that there are no Plan 9 users. Niker responded saying, no, he does in fact exist, and so do other Plan 9 users, and that their smallness of number simply implies they are better. It was a joke. "You don't exist". "Yes, I do, and I'm better". There was no need to go into a grammar rage. What makes you think he is even a native English speaker? It sounds like he is not. His writing was unidiomatic certainly, but it made sense. Yours however (held to more exacting standards) doesn't make complete sense:
I suppose that's fair, but at least part of my intent was enforcing the age-old maxim: "if you're...
How can an intent enforce anything? Doesn't one intend to enforce something? What do you mean by "but at least part of my intent"? I know what you are getting at, that your actions were justified, at least in part, by that maxim. But it isn't particularly clear what you mean; there is an incomplete thought in there somewhere. Clarity is important after all, as you said.
And dramatic effect aside, structurally, the final sentence is a total clunker, from confusing the sense of "offense" to imputing neglectfulness to my comment instead of me, to running two or three distinct thoughts together in one sentence.
He doesn't confuse the sense of offense; he merely uses it unidiomatically. I don't really see a problem with the idea of a comment neglecting to mention something. What it lacks in strict logic it makes up for by liveliness. You however killed some of that when you recast it from the active to the passive voice.
Plan 9 seems like a good idea, but from my experience, it seems like an idea people like to talk about a lot more than they like to implement.
Surely the fundamental ideas are already implemented. Which idea are you talking about?
(Replying to my own post.) '-m BATCH=yes' means run all Makefiles in batch rather than interactive mode. I'm guessing that the '3D' is some formatting crap the crept in somehow. Because as far as I can tell the Makefiles only test if BATCH is defined, it shouldn't what it's defined as ('3Dyes' should work just as well as 'yes').
You can just call win32 function OutputDebugString (or the TRACE macro, but that may just be MFC) and the debug messages will show up in Visual Studio's debug window. DebugView from Sysinternals will also show debug messages.
I think that's the difference between C and Python programmers - C programmers enjoy programming.
:D)? Are they bad programmers too? Really, if you are going to critique some technology, then please stick to technical issues. It's easy to make logically fallacious arguments: C programmers are bad because I know some C programmers that only know what goes on under the hood. They don't know anything else beyond that. And they smell. Therefor C is bad. (Note to any particularly dimwitted moderators out there: I don't believe that is an accurate representation of C programmers at all! I think it is quite untrue in fact. It is just an example of a logically fallacious argument used to illustrate a point. Please don't mod me down, you dipshit moderator!)
That's crazy talk.
Python programmers don't, at least everything my Python-loving collegues say suggests that the thing they like about it most is that they never get to understand what's going on under the hood.
Supposing that you are not misrepresenting your Python-loving collegues, then yes, they are probably not good programmers (at least not great programmers). But so what? What have they got to do with anything? I don't even know these people. What about the Python programmers who do know what is going on under the hood (like me
I think that messaging is nearly always a better solution than RPC, especially for wireless where the network might not be very reliable. I've been playing with Spread recently. It looks pretty good.
the point of this exercise was probably to increase sales, so on that front, it's failed...
A cynical person (like me) would say that he rigged it so that cards would would come out on top in order to lend his silly formula an air of objectivity. He knows full well that no one will buy cards and that they will buy the next one on the list, "Monopoly Simpsons", instead.
If I may troll just a little, the first one is better because most programmers are afraid of anything that doesn't look like C and because they like to type in lots of boilerplate code because it makes them feel productive.
A good way to learn regular expressions is to get Python and do experiments with them in the interactive interpreter. That way you get immediate feedback, which is good for learning. According to the docs, Python's regular-expression syntax is "similar to those found in Perl"; so you could transfer your knowledge back to Perl (or just stick with Python, hehe).
Yes, it's true. He was one of the greatest geniuses ever, but he was an asshole. His famous statement, "If I have seen further, it is by standing on the shoulders of giants", was a sarcastic comment directed at Robert Hooke who was a little hunch-backed guy. When Newton oversaw the moving of the Royal Society to a new location and they were moving the portraits of all the members, Hooke's portrait somehow got lost. So now no one knows what Hooke looked like.
I wasn't equivocating as I wasn't being intentionally ambiguous. However, I can see that my original statement was ambiguous, and I've tried to clarify what I meant by it. I will try to write more clearly in the future! The statement "you could say that Jabber has been affected if you like" may have sounded condescending. If it did, I apologize, it was not meant to be. Yes, Jabber has been affected because the Yahoo gateways have been affected; but no, the fundamental functioning of Jabber as an IM system has not been affected -- one Jabber user can still talk to another Jabber user.
If the poster I was replying to was referring to Yahoo gateways, I must have misunderstood him. But he didn't mention Yahoo gateways -- he only mentioned Jabber and Gaim. I thought he was talking about some odd behavior in Gaim that was triggered by the Yahoo protocol change. In any case, I specifically said that the Yahoo gateways would probably be broken. Do I write unclearly or something?
I wasn't aware that people actually use the Yahoo gateways anyway. The previous time the Yahoo protocol changed, the gateway programmers took much longer to crack it than the Gaim programmers.
You are quibbling about the definition of "Jabber". I simply meant that core part of Jabber is unaffected and is in fact immune from the problem of secret changes to closed protocols. Naturally any software -- whether in a client or server -- that connects to Yahoo's system has been affected. So yes, since Jabber servers have an optional component that can (or could) talk to Yahoo's system, you could say that Jabber has been affected if you like.
I use Yahoo! Messenger and haven't experienced any problems whatsoever related to this.
Not directly related to this perhaps, but I've had problems with Yahoo! Messenger. I've noticed a couple of problems: at times msgs have not gone through in one direction (so that there's a one-sided conversation); and sometimes contacts don't show up as being online even though they are not logged-in in invisible mode. So yes, Yahoo users are affected, in a way, by being locked in to what appears to be a crappy protocol or implementation of that protocol. Of course, we can't get the full picture (apart from what can be reverse-engineered on the client end) because the protocol and the official clients and server software are closed.
Yahoo have official clients for Linux and FreeBSD. But I hope you are right that this is good news for Jabber. You don't need to run your own Jabber server BTW. You can sign up for an account on one of the many public Jabber servers.
Of course Jabber is not affected. Why would it be? That is the beauty of Jabber and a good reason why everyone should be using it instead of closed IM protocols. (Good luck convincing anyone though!) If you have a Yahoo account which you log-in to from Gaim, though, you might want to clear the auto-login checkbox for that account for the time being as it won't work and it will just give an error. The Gaim people are working on a fix -- you can read the announcement on their web site. I imagine that any Yahoo gateways on Jabber servers would be broken too.
Yes, GC is just shifting the responsibility,
but the freeing-unused-memory pied-piper must
be paid by something, no matter the language,
no matter the os.
Paid for in what sense? I know from experience that I pay in programming time when doing manual memory management. If you mean paid for in CPU time, you should understand that malloc and free take a significant amount of time already. They are not free. GC does not add a great deal to that cost.
And, when it comes right
down to it, we are already developing more
programmers now that *cannot* work on os-level
code (straight C or asm, always) because
they've been indoctrinated into the "just let
another process handle that bit o' trivia".
A master programmer can write low-level and high-level code. If you are writing os-level code, you use os-level tools, and manual memory management is appropriate; if you are writing high-level code, you use high-level tools, and GC is appropriate. I really don't see your point. There are many programmers out there who can only write low-level code (poorly). Too much focus on the low-level means that, for instance, they don't know how to use any datastructures except for arrays.
Also, when it comes time to write an app that
is as fast as possible with the fastest
possible reaction time to the user, a solid
minute of unscheduled, but necessary, GC will
make such an endeavor impossible.
That hasn't been true of garbage collectors for decades. We are not in the 70s any more. Garbage collectors these days are incremental. The biggest optimization gains in software (except in some low-level software) are usually won through algorithmic optimizations rather than low-level optimizations. Garbage collection tends to make such optimizations easier or at least gain you some programming time in which to implement them.
The competition was judged on performance in a way. The contestants had only so much time to prepare their entries, and much of that time must have been eaten up by their programs doing computation. The winning entry had an element of brute force computation together with a clever method to reduce the amount of computations. C++ sounds like a good choice for that approach.
Now what the BSD license does allow is for some company to take some or all of the source and reuse it elsewhere, under a proprietary license if they so wish, without giving anything back to the Free software community.
They do give back to the community in many cases anyway. I fixed a bug in some code with a BSD-like license that we use in our proprietary product. It made sense for us to send a patch in to the maintainers because naturally it would have been impractical for us to maintain the software ourselves. So we won and the maintainers won -- it made our product better, and the maintainers got the services of a paid programmer to fix one of their bugs. I imagine this is a fairly common case.
Yes, well said. It's better that someone can get some use out of the stuff instead of it just sitting there and becoming worthless. It's not as if computer parts retain value over time. But stuff I don't give away I just toss into cardboard boxes. Seems to work fine.
portupgrade is at least 2 years old... It kicks ass, but it's hardly news
portupgrade is not news, but new user documentation is news. Well, if it's good documentation, then it's news. I read a few sections of it just now, and I think it's pretty good. It's written in a direct, readable style and has lots of examples. Since it answered some questions I had about portupgrade, it seems to me to be comprehensive. So, this is pretty cool. One of the best things about BSD is the quality of the documentation.
"Could care less" is American; "couldn't care less" is British. The American one isn't strictly logical, but that doesn't mean it's wrong because idiomatic expressions often aren't strictly logical (double negatives for instance). Personally, I'm not bothered which version people use because I understand what they mean.
The Artistic License may or may not be free (as in RMS). Here's what the FSF says about it:
malloc has some notable bugs in it - it often hangs when allocating numerous small chunks of memory
That is surprising. Whose malloc are you talking about?
He doesn't confuse the sense of offense; he merely uses it unidiomatically. I don't really see a problem with the idea of a comment neglecting to mention something. What it lacks in strict logic it makes up for by liveliness. You however killed some of that when you recast it from the active to the passive voice.
Surely the fundamental ideas are already implemented. Which idea are you talking about?
Thanks for the explanation. "=3D" is not so easy to search for. Nice research!
(Replying to my own post.) '-m BATCH=yes' means run all Makefiles in batch rather than interactive mode. I'm guessing that the '3D' is some formatting crap the crept in somehow. Because as far as I can tell the Makefiles only test if BATCH is defined, it shouldn't what it's defined as ('3Dyes' should work just as well as 'yes').
You can just call win32 function OutputDebugString (or the TRACE macro, but that may just be MFC) and the debug messages will show up in Visual Studio's debug window. DebugView from Sysinternals will also show debug messages.