Could Be I only sang because the lonely road was long; and now the road and I are gone but not the song. I only spoke the verse to pay for borrowed time and now the clock and I are broken but not the rhyme. Possibly, the self not being fundamental, eternity breathes only on the incidental. -- Ernesto Galarza (1905-1984)
I am not a relativist; I do not say "I like my coffee with milk and you like it without; I am in favor of kindness and you prefer concentration camps" -- Isaiah Berlin
Incidentally, although it's obviously not 100% accurate [...] having strong intuition is generally a great thing, including in my designing/programming - except when challenged by other programmers, who of course always want an iron-clad logical explanation for everything, and I often don't always know how to explain why something is the right design decision in the midst of a murky complicated haze of details. Frequently, people care more about having good explanations than they do about whether something is correct or works better. -- dm
re: having strong intuition is generally a great thing, including in my designing/programming ... I often don't always know how to explain why something is the right design decision in the midst of a murky complicated haze of details
I hear you, sometimes I feel like those poor kids trying to explain why they like Apple Jacks. "It's just the right way, OK?" Of course, it's always fun when intuition leads you the wrong way, too.
Indeed! Sometimes badly so. But hey, logic sometimes does, too!! Ideally, they are used together. For instance, intuition is excellent at generating hypothesis, while logic is better at testing them.
"A mind all logic is like a knife all blade. It makes the hand bleed that uses it." -- Rabindranath Tagore-- dm
I would tend to think that intuition is a good way to generate new ideas or designs, but it is pretty useless as a justification. Once you have the design, you have to be able to demonstrate that it is effective - otherwise you don't really understand the design (even if you made it). That's a good way to introduce subtle problems.
Certainly. Which is why, after tersely saying some things about intuition on FeynmanAlgorithm, I ended with "Such intuitions still need to be tested by logic, of course.".
But similar things can be said of isolated logical conclusions in the absence of a global understanding (the latter, I would claim, is only rarely reached via intuitionless logic); that's e.g. the problem with code that works in foreseen circumstances but breaks in the (many) unforeseen circumstances. -- DougMerritt
Doug, someplace you endorsed meditation practice. Would you be so kind as to point us at resources for persons interested in giving it a try? Thanks.
There are a lot of different forms; the ones I recommend are aiming at relaxation and greater awareness of one's mind, body, and surroundings, which decreases stress, and long term, can make one more effective in general.
The meditation forms that I think can be especially helpful towards those ends are breath meditation (originally invented as one of the 7 or 8 classic kinds of yoga), where at its simplest one simply focuses on awareness of unforced natural breathing, and "mantra" meditation, where one repeats a word or a nonsense word rhythmically to calm and quiet one's verbal mind by giving it something to do other than chatter all the time, as it otherwise does.
The basic process is to do one of those forms, or both in sequence (but not at the same time), for about 20 minutes, twice a day, on a strict schedule, always aiming to do everything in a non-forced way, always aiming to let verbal thoughts and memories drift away and to focus only on the meditation - which takes practice. Initially, one drifts off into thought or memory and forgets one is meditating. Or one falls asleep. So it takes practice to learn to stay on track.
The benefits are probably pretty correlated with what percentage of the time one stays on track. If one drifts off 95% of the time supposedly spent meditating, benefits will be minimal. If one's mind drifts off only 25% of the time, then usually one will perceive benefits from relaxation for at least the rest of the day. Approximately speaking. If one stays mostly on track every time, for weeks or months on end, one might start getting some very unexpected indirect benefits.
But one has to learn to stay on track via relaxing. If one tries to force it, that leads to frustration, not to staying on track with the meditation.
The long-term effect can be startlingly powerful, which can seem unreasonable for such simple practices, but what's going on is as if we've clenched a rock in our fist all our lives, holding on for dear life, never letting go. That hand will not be very effective for anything else, and the muscles will be in permanent spasm, but since we've been doing that for so many years, mostly we forget we're even doing it.
If we start to learn to relax that hand, by some kind of hand meditation, and let go of the rock, the relaxation frees the hand to be used for other purposes that were not possible before, not because relaxation is so amazing per se, but because it occurs when something very negative has stopped, something that always made it impossible to do many things before.
This is what we all do with our minds: they are metaphorically clenching our thoughts in a never-ending deathgrip, which makes our minds much less effective for doing anything else. So the simple-sounding process of learning to relax, let go of thoughts, and instead just simply be aware of our self, our breath, our surroundings, can lead to astonishing results.
This is not inherently religious nor mystical, and does not require belief in anything to practice, but these practices tend to be invented in religious/mystical traditions, so that's where one finds the most discussion.
For instance, the late Alan Watts, a former Christian theologian who became one of the most famous interpreters of eastern philosophy to the west, discusses an introduction to meditation: http://www.grandtimes.com/An_Introduction.html
Web search also turned up this introduction; I don't know who wrote it or what tradition it came from, but quickly skimming it, it seems reasonable: Technique: http://www.angelfire.com/hi/TheSeer//technique.html Discussion: http://www.angelfire.com/hi/TheSeer/meditate.html
And there's lots more out there that I could dig up if need be.
P.S. if you see me get irritated on wiki, you can be sure I haven't been meditating recently; there's pretty much a direct correlation.
Thanks :-) On the other hand, CC (correctly) scolded me for losing my cool the other day... obviously I haven't been following my own advice (meditating for stress relief). -- dm
Doug, your contribution to DoTheMostComplicatedThingThatCouldPossiblyWork nearly brought tears to my eyes, it was so poetic - and accurate. How true that one of our most precious gifts is the ability to communicate need versus want to the client. That and a sturdy TwoByFour, of course. -- MartySchrader
Heh. Indeed. Ah, a fellow traveller on that bumpy road; my sympathies. Thanks.
"Back off, man. I'm a scientist." -- Dr. Peter Venkman, Ghostbusters.
That's just too precious. :) And appropriate. Gonna have to remember that one.
Doug, at page ThomasKuehne you suggest that my anonymous quote is by Frank Winkler. I once attributed the quote to him only to learn from him that he is not the originator but could not say who it actually is. BTW, the link to my publications should work just fine for both netscape and internet explorer. -- ThomasKuehne P.S.: The quote by Rabindranath Tagore is sooooooo true.
:-) Thanks for the note.
Doug, where are you?? Missing our quote librarian :)
Thanks...just busy, is all...
Doug, some time ago you added this remark to the GraphicalProgrammingLanguage page: Never mind, I'll just stick with the FBP primitives I invented for the 1983 version of the language in question. I'd still like to see them - can you post them somewhere or point to them? -- PaulMorrison
Doug, in GeneticAlgorithm you referred to "The Evolution of Dishonesty". Not having read that article, does it mean that in a "rational community of computing processes", the "natural selection" processes favor dishonest behaviour?
Yes indeed, but not in a 100% pessimistic sense; there is a pressure for some (usually small) percentage of a population to use non-cooperative means, and also a counter-pressure against that percentage growing beyond a certain point. This is a matter of "Evolutionarily Stable Strategies", a term invented by the biologist John Maynard Smith and discussed very clearly indeed in Richard Dawkin's classic book, TheSelfishGene (a title which seems to be widely misunderstood, btw).
So I would strongly suggest that Dawkin's book, as well as the Axlerod classic "The Evolution of Cooperation" - my "Evolution of Dishonesty" was patterned after his title as a kind of homage.
You'll find a lot of other material by web searching "prisoner's dilemma", "iterated prisoner's dilemma", and other such things.
Doug, On the off chance (based on a non-statistically significant sample) that we share a sense of humour I thought I'd let you know I've just put up an archive of 600 1850s Punch Cartoons at http://john-leech-archive.org.uk/ Some of the ones about attitudes to women and also about children are particularly entertaining these days. -- AndrewCates
cool...thanks! -- dm
Re the point you made on MS's page, I replied to what you said in relation to relatively recent squabbles. I've seen enough (in RecentChanges etc.) to notice whether there was significant escalation of the type you've mentioned.
It seems that Wiki has been manipulated into over-concern about its own workability. As a non-reductionist, what long-term measures to promote wiki workability do you suggest?
I don't know what you mean by "over-concern about its own workability", but I think its workability clearly dropped quite sharply a very long time ago. What I believe is necessary are some non-soft measures enforced by social and technical mechanisms implemented by Ward, and that nothing short of that would make a large difference. Fortunately, Ward is now pursuing that path, and that will eventually suffice, quite aside from the precise details of what he does.
How long ago? Also, can you state in comprehensible English how Ward could conceivably implement a social enforcement mechanism for a non-soft measure which would permanently improve workability? All that we know he's doing that's possibly related to that is seeking a voluntary panel to present suggestions to him.
"How long ago?" This sounds like the start of quibbling. To those who share Ward's interest in wiki as a forum for technical discussions, it is clear that wiki has problems today, and they aren't recent temporary problems. Anyone who disagrees that there are problems would seem to be defining themselves as someone who has different goals than Ward and the rest of us technophiles -- and IMNSHO such people would be better off on a wiki where the owner agrees with their goals.
Your wording "quite sharply" seemed to imply you had a specific occasion in mind.
"Can I state..." No, because it's purely up to Ward, and it doesn't matter what my opinion is. I have past experience with administering complex online social worlds, and I know a large space of technical and social algorithms to address the many issues that inevitably arise, so naturally I know what I would do if I were Ward, and I would have implemented them long ago. But I'm not Ward, so it's irrelevant. If you're curious what the solution space includes, google is your friend. There's not a single issue here that post-dates the web -- technical, ethical, social, anthropological, etc; online communities of many sorts are significantly older than the web, and most owners of such have been believers in harder rather than softer solutions.
The point is that I have long believed that action is necessary, and he says he will now take action, and like I said before, *that* is more important than which action is taken. You'll just have to decide whether to support him or fight him (I can't imagine the sanity of the latter, but it *is* a choice).
Okay, but such actions tend to conflict with Ward's original WikiPrinciples.
.... a little problem in 3D graphics ....
(I've archived the above / previous discussion. Delete at will)
So I'm trying to build a modeling framework and it turns out that I have to build a remote execution package like VW's Opentalk framework. Except that my package seems to have the narrower purpose of duplicating. A name immediately came to mind, the Doubletalk framework. I'm sure that name will inspire confidence in everybody. :)
The only problem is that, once the design problems of Doubletalk have been solved, I don't have any intrinsic reasons to implement it. It's not like I can use it without my modeler / object browser framework. And it's not like I can implement that without the freaking 3D engine.
And while my Graphs framework is itself only 60% finished, that 60% includes just about everything that I can touch. I've got more or less working graphs now. Who needs locking, garbage collection, statistics, or resource quotas when I can't even use my graphs framework for anything yet? Who needs interprocess links when I don't have processes yet? Who needs mutating identities (the equivalent of classes/traits within Graphs) when I only have the default identity?
The bad side is that I don't have anything to DO. Well, not anything that I'm motivated to do. So I'm just wondering how common it is for programmers to suffer from this. My guess is not very often if they have to be constantly reminded of YAGNI.
In an effort to remedy this, if I have an address space from 1-2MB which I share to 5-6MB, what happens on a cache miss? Specifically, if the pager fetches a page in that space, what address will it use for that page? Is this under software control or hardware control? Because if it's the latter then I'd like the pager to use either both spaces or only the original space (the one that's not being used).
And what reasonably available CPUs / architectures would you recommend I use given that I don't want to deal with a lot of arbitrary / stupid limitations? But on the other hand, I don't want to create my own architecture so I think that dismisses FPGAs. And given an architecture, where could I learn about all about it? -- RK
Glad to see you again. -- ElizabethWiethoff
I hate to just say "me too", but, well ... me too! -- DanMuller
That is really, really nice of both of you to say; thanks for making my day! -- DougMerritt
It's kind of you to offer to answer questions. I think I should probably read my textbook before I open my mouth on questions, though. I don't want to make a fool of myself (like it matters), and I don't want to waste anyone's time, but most of all, I don't want to be a lazy bum who doesn't figure stuff out for himself. I'm sure that over the course of the next several months, I will generate questions I cannot answer nor find an answer for, and that is when I will remember your offer. I also took your suggestion about being more specific on my UserPage. I will be expanding it as I think of things with which to expand it. -- JamesAguilar
BTW I got anonymous and sometimes baffling attacks here. It almost like angry soldiers shooting at innocent children, when others in their company got caught by guerillas disguised as civilians. Lots of innocent Koreans and Vietnamese got killed by the Americans out to protect their home country. Of course the other side wanted things to happen that way too.
All very sad indeed, no question.
Doug that StartedA... page is not intended to reflect on anyone here, or elsewhere. So how about take a rest, and come back tomorrow to see whether I mean what I wrote here. I have lots of respect for you and so I am surprised that you take it that way.
Thanks. :-) -- DougMerritt
I can't believe it. You actually stooped so low as to DisagreeByDeleting! Worse yet, you did so with a paragraph that I can easily prove is factually correct by quoting any text on information theory.
Why are you using such tactics? Is that your way of saying you're tired of talking, so you've decided be really rude, to piss me off so I'll go away, is that it? -- Doug
I see you did the same thing on ComputationAsSignalProcessing. -- Doug
Um, no, and apologies if I gave that impression. I didn't realize I'd done away with your ExFormation para and have since addressed it. FWIW typing while trying to ignore battling five year old boys is not conducive to competent editing - mea culpa.
As for the section on CASP, however, I took your first point so also deleted the sentence that gave rise to that part of your objection. I was hoping this would allow us to move on to the rest of the matter. Please review that page to see that this is so. DisagreeByDeleting, or, for that matter, giving you any offence, is very far from my intention. I'm amazed and delighted by your depth. While I might prefer a less adversarial mode, I'm finding this conversation very interesting. -- Pete
I am pleased to hear you make those disclaimers, and thank you also for the compliment. A remaining issue is that, at the same time you said the above, you also made another edit to CASP, and yet my comments there are still deleted. It sounds like you are under the impression that that your deletion would assist with communication and consensus, but as usual when you delete someone's words: no. Definitely not. If that is your aim, suggest the possibility, get consensus, and the other person will delete their own words if they agree, and if they disagree, discussion can continue on that disagreement. So I rather think you should restore them as a further sign of good faith; I didn't restore them myself because I didn't want an EditWar.
I don't believe I've actually indulged in an EditWar since wiki's inception. Not a proper one - have clobbered/been clobbered through over-eager editing back in days before PageHistory. Hmm. Perhaps back when RK was a more aggressive fellow. But even then I preferred to leave WardsWiki for a few years than hang around and get sucked in. So please down hackles and let's see what's out there.
After which, sure, let's continue this. Something I was waiting for the right time to say: you labelled yourself a crank. I don't necessarily see that as a bad thing; people who are willing to say that they are, usually are much less so than the people who insist they are not, for one thing.
A man does not create an entire wiki devoted to whimsy - well, at present, throttled whimsy - unless he is an unmitigated RatBag. I know a very few people who regard themselves as normal - and I don't trust them as far as I can comfortably spit.
For another thing, I don't mind wildly unorthodox views, which is what some people mean by "crank theory". Some such can eventually turn into new paradigms, after all. I do mind people who are stubborn in their convictions and are not interested in learning. I hope you are not in that category; your willingness to continue talking seems to indicate that you may not be, and I am willing to grant more and more good faith as the conversation goes on and the evidence grows.
Ta. In crank-mode I like to use wiki as a way to understand where the ground is. The old StoneSociety pages are an example. I used to wonder whether this would come back to bite me professionally. As it turns out it has both won and lost me opportunities, which is better than I deserve, I think. But I believe the danger of cranks is not just that they will turn out to favour aggressive ignorance. Paradigm shifts are often bloody affairs - look at the mess Marx made all unawares.
P.S. Although I may be getting somewhat stale, a few years back I was quite intimately familiar with XILINX FPGA's, so that topic is one of the ones I had intended to return to. -- Doug
I'm not an FPGA expert; they were the main deployment target back in Omnigon days simply because the company didn't get itself in a good enough situation to fab an ASIC. Which is to say, field-programmability isn't essential to my interests. ESOPs are, however, because they can be factored into numerically representable canonical forms. But I get ahead of myself. -- Pete
Doug did I catch you in discussing CasimirEffect type material (ExplanationsInPhysics) here? You are not guilty in OffTopic, instead it is IdontLikeThingsIdontUnderstand pattern at work, that made me want to delete those pages later on :). BTW your previous edits in my homepage were answered, then deleted after I assume you have seen it. If not, you know where to look for my response. -- MicrosoftSlave
You mean the Casimir stuff that was deleted something like a year ago? I didn't have an emotional attachment to it being deleted, else I would have restored it and said something snippy :-) . But don't you think that you're describing a poor reason to delete things? I mean, it's a big, complicated universe, and none of us will understand every aspect of it -- more to the point, none of us will understand everything that other humans know about every subject.
And yes, I followed what you were doing with the deletion on your home page, although I didn't see a direct response elsewhere. Nor do I require one, but if I overlooked something, let me know, and I'll look again. -- Doug
I did not respond to the 1st question (indirectly I have said what I can), I did respond to the second question regarding read-lockouts at MeatBall.
IdontLikeThingsIdontUnderstand is actually a pattern in the upcoming AngryPattern I intend to research to share with this community. Right now I am focussed on 1) finding out if there are still lots of read lockouts and what to do if that exists; 2) looking for "lost sheep" :)
Your focus is understandable. Just for the record, I personally love things that I don't understand, because it's an opportunity for me to learn more, even if I can only understand a little. "De gustibus non est disputandem"? -- Doug
Doug, since I was the one who originally edited the direct quote from Duff on DuffsDevice to which you objected, I just want to let you know that my intent was to make it clearer what the actual e-mail was. In doing so, I didn't change anything except for inserting linebreaks and spaces, so that the complete message would be formatted as code (note that the header and the quotes in it still are). I personally think that kind of editing is allowable even for direct quotes. But since you object to it, I'm not press it - unless I come across the original post including original linebreaks :). -- AalbertTorsius
There's also a subtler issue of whether Tom's use of doubled backtick matched with doubled single quote should be regarded as original text or just markup to achieve the effect (or potential effect) of symmetrical double quotes.
I don't strongly disagree with any of this, it's just that for one thing, it's a slippery slope, and for another, note that wiki's "diff" is crude, so looking at an edit like that, it's not obvious that only trivial changes were made, not obvious at all.
I'm also a fan of history and archaeology, and it's important to preserve the original forms for reference. I'm also highly disturbed that the U.S. courts have held that it is perfectly acceptable for journalists to use extreme paraphrases that do not even resemble the original, yet still call them "quotes", with no indication that it was not in fact a "quote". Something went really wrong, there. If something has been paraphrased, corrected, cleaned-up, the reader at the least should know this is the case.
So I'm gun-shy on the topic, even though I see you were acting in good faith and with understandable motivations. -- Doug
[[Please move this down to the place you consider appropriate, or delete it after answering on the original page, thanks. You said there were "many ways" to prove program equivalence undecidable. Can you give a couple of those ways that do not ultimately depend on something like a reduction of the halting problem or an application of Rice's Theorem which depends on that result also? I can't think of an easy such proof.]]
This is too large a subject for me to really do justice to, so I'll limit my comments to handwaving in certain directions. Also I trust that when you said "easy", that was an accidental slip? This does not tend to be an easy area for proofs in the first place.
For starters, I didn't say Rice's Theorem depending on the halting problem -- very much the opposite, I said they were equivalent. World of difference. Specifically, Rice's theorem can be proven independently, and the halting theorem can be derived from it.
More generally, it turns out that a huge number of results are all interchangeable at a sufficiently abstract level, and all have to do with the ancient Liar's Paradox, of which Russel's paradox is one form, and it all boils down to this: in nontrivial systems that allow both unconstrained self-reference and which have some kind of negation operator (both properties fleshing out what is meant by "nontrivial"), paradox is possible.
It then depends on the details as to whether paradox is also unavoidable, in which case the system is inconsistent, or whether it is simply certain statements that are paradoxical -- which in itself is no big deal, that just gives the classic proof by contradiction, however when the statements involve self-reference, more interesting results can follow: undecidability. It's no big deal to prove "A is false", but it's far more interesting when A is "A can be proven with this system".
Back to the undecidability of equivalence of programs or anything else: there's a scale of difficulty, of course, that includes polynomial, exponential, and then undecidable (to keep things simple). The first two apply when the set of possible solutions is finite. If finite but every possibility must be searched, then it's exponential simply because the number of possibilities is 2^N for any problem of finite size N expressed in bits. This arises in particular when the problem is not a Unique Factorization Domain and has no unique normal form (which are almost the same thing, and sometimes are the same thing, but are not always the same thing). Solutions are a lot easier to recognize if they can be uniquely normalized; that allows comparison of a candidate against a criteria in potentially linear time, whereas typically the lack of a normal form means that the comparison may not even be polynomial, all by itself.
If you have the latter difficulty of a lack of a normal form (which applies BTW to things like graph equivalence), but the set of possible solutions furthermore is not finite, then you have an undecidable problem -- potentially.
It's trivial to prove that there are an infinite number of algorithms that are equivalent to any given algorithm, by induction: on each induction step, add more states that don't do anything useful.
The rest follows. There's no normal form even for unlabeled graphs, let alone programs, so in general you've got an infinite equivalence class. No appeal to the halting theorem is needed.
I'm not pretending to have been formal enough to have proven anything; this is just handwaving to give the flavor of it. -- Doug
[[Thanks, I know all of this, although it is somewhat misleading. But what I was asking for was a direct proof of the fact that program equivalence is undecidable, one that does not ultimately use the undecidability of the Halting Problem in some way. You have not provided any such thing at all. That is what I wanted to see. (All that you have provided is the fact that for any given problem, there is an infinity of algorithms which solve that problem. Of course that is true, but how does that alone establish the result?) I hope you can provide such a thing (in fact, a couple of such things, since you said there were many). I am sure there is at least one, but I cannot think of it. I can follow math if it is presented to me, but I cannot do much of my own.
I say what you wrote is misleading because in explicitly going on about all of these decidable classes of problem, it ignores the more crucial fact, from the point of view of this context, that there are many different degrees of undecidability between decidability and the undecidability of the Halting Problem. There is an extremely complex structure of problems that are more decidable than the Halting Problem is, yet are not themselves decidable. It is true that all creative sets are recursively isomorphic (including the Halting Problem, program equivalence, and the problem of Rice's Theorem (whether or not a program generates an index set)) but there are very many r.e. sets that are not creative and in fact every countable upper semilattice can be embedded into the structure of the recursively enumerable Turing Degrees, of which the Halting Problem's degree is the maximal element.
see MeinongianLogic though, to find one professor of philosophical logic's way of avoiding these problems]]
Oh! You know all this, and "mathematically" you follow this one particular minority speculative unproven philosopher, so you're saying you were deliberately wasting my time asking what seemed innocent questions, when actually you just have an axe to grind. Thanks so very much. Nice to see you cared so much about a mutually beneficial conversation. How friendly and gracious. It really makes my day to spend time answering a question, and then to have it thrown back in my face by someone who wasn't truly asking a question after all, but instead making a point, unbeknownst to me. I really live for days like this. Truly, you have improved the quality of my life. -- Doug
[[No, you misunderstand me, twice. (Easily could be my fault). First, I do not "follow" Jacquette. Second, I really was asking the question, and still am. I do not see any easy way of proving that that the problem of program equivalence is undecidable that does not use the halting problem pretty directly. As I said, there probably should be one, using diagonalization in some way, and since you said there were many, I thought you could provide it.]]
The context was a page where people found the orthodox results unintuitive. I was merely saying that there's nothing magic about the halting theorem per se...from twenty thousand feet, it's the same thing as Goedel's theorem, and I was saying this on a page where people were rejecting the ChurchTuringThesis! I specifically was not talking about reducibility, that's a different issue.
Diagonalization is essentially always involved in all such things, although constructive proofs may go even further. Diagonalization is the extension of one of the foundations of mathematical argument, counting arguments/pigeonhole principle, to the transfinite domain, so of course it will inevitably pop up either directly or indirectly in any such thing.
Goedel's results can be proven in many different ways -- all involving diagonalization, usually explicitly so. The HaltingTheorem can be proven in many different ways, all involving diagonalization, but frequently implicitly (and yes, sometimes implicitly); nonetheless, you'd have a hard time if you tried to do it otherwise.
I also can see that this would inevitably degenerate into "those are equivalent, you said they were different" -- "I said there were many different that were equivalent" -- "see, you contradicted yourself again, if they're equivalent then they're not different" -- "sigh...."
Finally, I think that perhaps what you're really saying is that you know more about the topic than I do, and you're just politely and indirectly telling me that I made a bunch of misstatements. Could be. -- Doug
[[I really don't see what you are so disturbed about. You happened to say (in whatever context -- I don't see why that matters) that there were "many, many different ways of proving that program equivalence is undecidable", in reply to my saying (as an aside) that program equivalence is proven undecidable by reducing the halting problem to it. So, it seemed to me that, yes, you were not talking about reducibility, you were saying that there were many other ways of proving program equivalence undecidable. Since I could not really think of any, I simply asked you if you could provide some. I have also asked an acquaintance of mine who is an expert on mathematical logic. He said he thought there would be one, with us agreeing all around that it would employ diagonalization (so that's not the issue), but he got back to me a few days later saying he had thought about it and could not come up with one. So, I would still just like to know one (or more) ways of proving program equivalence undecidable without directly reducing the halting problem to it (or, you know, reducing the halting problem to some other problem then reducing that one to program equivalence, etc.)]]
I didn't say you couldn't reduce the halting problem to it, very much to the contrary, I said there were other ways that did not assume the halting problem in the first place. Huge difference! My whole point is that these things are all equivalent, but that that is NOT the same thing as saying they all depend on the HaltingTheorem. The latter is just plain false; it picks out the HaltingTheorem as somehow having supremacy over everything else, which it does not. It is not the normal form to which everything must be reduced if possible.
I have mentioned at least 3 approaches so far that do not need the HaltingTheorem for their proof. One is the sketch above concerning lack of normal forms for programs. I previously mentioned that both program equivalence and the HaltingTheorem can be derived from Rice's Theorem, which itself is usually proven, unsurprisingly, via diagonalization. Thirdly, I mentioned the Speedup Theorem, which can be proven without assuming the HaltingTheorem, and which directly implies the result about program equivalence.
You claim I'm being misleading because I'm not talking about e.g. Muchnik/Friedberg results. I'm not talking about those more subtle issues, it's true. So far I don't see why you think I should be. There are both gross and fine measures of "equivalence". -- Doug
[[I could not submit anything for over a day since the "code word" disappeared. This makes it kind of pointless for me to continue, but in any case it doesn't matter for my original question, since I have solved that question myself, by finally locating a proof of Rice's Theorem that is not based on the unsolvability of the Halting Problem, but uses the Recursion Theorem. Of the six books I own that offer a proof of Rice's Theorem, only one uses this approach]]
[[Of course models for the lambda calculus are given in topological spaces, where functions can be defined as limits of less and less partial approximations, but otherwise I do not know what you are talking about, since there convergence merely maps to computability (of partial recursive functions generally), not decidability. Can you please provide a reference or two to the literature? (especially where someone has "gone wild" (I assume this means "achieved many good results about decidability") applying the "vast machinery of analysis")]]
[[Assuming you are referring to me, I do not know enough mathematics to make general comments spanning across large areas. The only remark I would make is that I think one has to be quite careful claiming that some alleged pattern is significant. What counts in mathematics is that a result can be proven. The idea that something "looks similar" to something else in another area may provide some motivations to help one find a proof, but it may also mislead.]]
Heh. :-) No, I'm just an amateur and a generalist. But thanks. -- Doug
Please check EjbsAndDistributedTransaction and discussion in OnTopicButNotNeeded. CC wanted to delete the page, and he is probably right (Eric in his recent post seems to support that). If the page has merit then I hope you can champion its refactoring a bit more.
Reason you are approached is I just noticed in Will's homepage that you remarked that SS did a real good job in summarizing Java (he mentioned EJB). And you are so much more visible and approachable than SS :)
BTW my interests are to -> model a "due process" for page deletion (and resurrection), so I do a bit of facilitation amongst the clashing titans.
-- dl DeleteWhenCookedHmm. Well, thanks for asking...it seems to me that, on top of the other issues, the current version of EjbsAndDistributedTransaction is so short that it hardly matters. If there are any sentences in it that you like, rescue them to your homepage, I would think. Costin is clearly correct in his critique that EJB is not the "only possible way", so I'd agree that there is negative value to any such statements, especially unsupported ones (and all I see are unsupported ones); they will only mislead people. Related: EJB is widely considered a sometimes useful but highly flawed technology (not that I'm an EJB expert). -- Doug
Doug, pls see my address at DavidCary homepage, drop me a quick mail & let's have a quick chat (to me quick can mean days) -- dl
P.S. I'm glad you're not angry any more. :-) But seriously, I didn't create the DanglingLink page, that's part of normal wiki conventions! -- Doug
Also I am looking for code to implement QuickDiffForVbClassic? for a wiki like thing. Could not find it a few months ago when I looked for it. Do you have good suggestions?
Thanks from dl
I assume you're asking me because of my comments on DiffAlgorithm, but then that's confusing. Presumably you know I'm not a VB guy, so I wouldn't literally know the answer to where to find Diff written in VB, and also, I explained that a minimal diff can be written in roughly one or two hundred lines of code -- a few hours work. Especially if you prototyped it in APL; it's a very vector oriented algorithm, so you could grade up and down and be done in quite possibly 20 lines of APL.
The presentation of the results, as done on a wiki like this, is highly trivial HTML added to the resulting (DELETED, CHANGED, INSERTED) blocks.
So what am I missing? -- Doug
Doug I cannot use APL for this code segment inside a VbClassic app. But I appreciate pseudocode that is as good as C2 QuickDiff (maintainable and acceptable performance too). I hope it is not a few hours work and already exists somewhere on the net. If not, code in Python or (yuk, Cee) would be better than nothing. -- dl
I did not suggest APL within VbClassic, I suggested prototyping in APL and then translating. If you want pseudocode, I'm trying to tell you, my description of a small algorithm on DiffAlgorithm is pseudocode. But yes, it would require some hours of work. I do not know what to point you to that would save you hours of work, but I would suggest that you may already have spent hours looking, so this may be false economy. Just implement.
Additionally let me note that, for decades now, people have implemented what they call "diff", but which is uninformed by the state of the art even as of 1975, and such naive diff algorithms turn out to truly suck in real world application. The DiffAlgorithm page describes approaches that truly work in a non-naive sense.
But I guess what you really want is an off-the-shelf solution. And you can't find one. But you still wonder why some of us are UnixBigots?. ;-) Anyway, I don't do Windows (alas, there have been exceptions), and I don't do VB, so it's possible that, if you're just looking for an off-the-shelf easy plugin solution, you're asking the wrong guy. (It's also possible that the MS Windows world doesn't work that way, and that there is no such easy solution, but I wouldn't know) -- Doug
Thx Doug, you have been real helpful already as I did not know about DiffAlgorithm, nor its small pseudocode. I am going to copy your comments to QuickDiff as it could be useful to other people seeking similar solutions later on. -- dl
You're welcome. I forgot to mention, off-the-shelf code most certainly is available in many languages, the problem is that they're all invariably very bloated, for both good and bad reasons, so usually such things are hard to translate because the elegantly simple core algorithm is completely obscured. The GNU diff utility, for instance, is absurdly bloated.
In fact, most GNU code done by the core team is absurdly bloated and verging on write-only code, as I can attest, having attempted with varying degrees of success to make minor bug fixes in many of the packages. (RMS is technically brilliant in some ways, but anti-disciplined in these matters, and has never been exposed to forces that would cause him to form different opinions and habits -- not that this is so different from most commercial-world programmers.)
You mentioned Python. Note that Python includes a standard diff library. See documentation http://www.python.org/doc/current/lib/module-difflib.html, and upon downloading the Python source, see Lib/difflib.py. At a brief glance it looks well written, but at 2000 lines certainly is bloated, despite the industrial strength features it offers, given that it's written in a relatively powerful language. When I said diff could be implemented in 100 to 200 lines, I meant even in C.
So I'm not so sure that it would be easier to translate it compared with rolling your own based on the description in DiffAlgorithm. But it could serve as a reference to elaborate on that terse description. -- Doug
Doug, just want to confirm your "pseudo code" in DiffAlgorithm is the section on that page that start with "The core of diff algorithms seeks to...". I will try to pass to a "real programmer" to do guesstimate on implementation efforts.
Also I would appreciate you dropping me an email so I can consult you privately about C2. Promise not to abuse the email. Cheers from dl 19May05
Hey Doug, I want to steal a section you wrote here ... (done already) You're both welcome to it, at any rate. P.S. Why did you suppress the wiki page name from being a link? -- Doug
BTW I have just made a comment in Helmuts page on something you may have a view, I can continue discussion with you here if you want. -- dl
[Many years ago, just before RKFanClub was created, PeterMerel created DeclineOfCivility. A completely general title and the only subject of discussion was me. I was quite embarrassed by all the direct attention and aggrieved by many of the things on it. Like unverified assumptions that bordered on outright lying. And PM even managed to make mutually contradictory accusations about me. This isn't anything like a stellar example of dissent, more like a lynching mob, but it would have hurt me to interfere with it and it would have been exhausting to do so, so I let it be.
RKFanClub is very different. I mean, initially I was quite embarrassed with it and didn't dare touch it (I still don't unless something is radically misinterpreted). But by now I've learned to live with it. Not least because I find it hilarious. Some of my best stuff is there and I've reread it several times over the years. I'm quite proud of being able to write well. Playing with words is next of kin to playing with thoughts. It's design and I enjoy that.
By now, that's probably a major reason why I get angry so much when I get attacked; because it throws off my writing. I LIKE being able to replace a knee-jerk insult with an elaborate explanation that captures exactly why the other guy's position or argument is blatantly stupid. It means that after the heat of the moment is long gone, I can be proud of the contribution instead of embarrassed by it. And when I'm attacked, I don't have time for that. So not only do I get angry, but I get angry because I'm angry; not a happy cycle. And I hate adrenaline rushes in the first place. -- RK Delete at will]
DuffsDevice is still in need of some cleanup. If you don't have the time for it, I may still have a copy of my version lying around. -- MS
I kept a copy of your version. After our agreement in principle, I got stuck on the question of doing a block quote. The ":" quote on c2 is broken for many browsers (including mine); it displays as a single infinitely long line. Ideas? -- DougMerritt
I wasn't aware of that issue; I'll have to keep it in mind for future editing. I suggest using monospaced text. It would probably be a more accurate reproduction anyway, considering the age of the quote and that it came from Usenet. -- MS
Which platform/browser? Does it accept blockquote (i.e., <dd>, as in HTML 3.2) and indent the text under any circumstances?
On ChrisMellon?'s homepage you wrote,
You know, the ambiguity in the word "hard" is interesting. It can mean "conceptually easy but time consuming", or it can mean "conceptually difficult but easy once you get the idea", or it can mean both or neither.
I think that, psychologically, most things seem conceptually easy once you understand them thoroughly, which means that, with sufficient background, most kinds of programming are "easy but tedious", in one sense. But there still remains the sense of easy versus hard relative to e.g. how long it takes to do something.
Good to keep in mind in future discussions. -- DougMerritt
Does this apply to C++ and if so then in what way? Does C++ actually seem conceptually easy to C++ experts or do people never learn C++ with the kind of thoroughness necessary to make it seem conceptually easy? -- RK
If you omit templates and namespaces, everything else is fairly straightforward, IMO. The language mechanics are low-level, but not hard to understand. When you add namespaces, you can (but usually don't) run into a few subtleties. Simple use of templates is also very straightforward, and worries me not at all.
Oh, almost forgot exceptions. Writing good exception-safe code is hard -- but mainly because error-handling is hard, and the language requires explicit memory management. Exception handling poses subtle problems in all languages I've used that have them, so I don't hold this against C++.
Note that I'm talking about the standard language, which was only really fully supported by the most popular compilers starting a few years ago. Using advanced language features before that was, umm, interesting. -- DanM
Well, but even taking all that at face value, you can't omit templates, namespaces, and exceptions, you just can't. I do admit that I reached my emotional breaking point a few years ago when things were "interesting", but some issues are unfixable, such as the way that template names expand as nested macros into arbitrarily long and complicated strings (as I believe you've heard me complain about before :-) And of course, the bottom line is that, yes, one can get good work done in C++, but that doesn't mean the language isn't unnecessarily complex -- vastly so. That's what many people like about other languages like Smalltalk and Lisp; the libraries may grow without bounds, but the language itself is small enough to grasp in its entirety.
Did I mention the amusing story some years back, when I was consulting in the C++ compiler group at HP, and the head of the group was heading off to Tokyo for a week, for the annual C++ standards group meeting? I said I was astonished he cared enough to do so, rather than delegating to someone else, considering that he was one of the truly busiest guys I've ever worked with. He explained that he was going in order to plead with them to not add any more features to C++, and that doing so was the best use of his time that he could imagine. :-) -- Doug
God bless him. :-)
I didn't say that one ought to omit templates, namespaces, and exceptions, but only that the complexity that they add is moderate, IMO. The worst stuff is truly in the advanced template techniques. The template name expansion problem is at least partly a quality-of-implementation issue.
Doug, is this you?DougMerritt
<wayneandgarth>We're not worthy! We're not worthy! We're not worthy!</wayneandgarth> :)
Although I did switch to FireFox recently, and am not 100% familiar with it yet, I believe you're mistaken, because I saw that garbage there on that page before I touched it...also your quoted "can�t" appears to me as garbage chars (double dotted I, inverted question mark, 1/2 fraction symbol), not smart chars. -- Doug
Yeah, it's my fault. -- RK
Doug, here's a random thought I had recently;
about 10% of the population are political extremists, whether on the right or left. About 10% of the population are concept users, able to see similarities and draw inferences between widely different fields. In both cases, you've got people with a bent towards reductionism. -- rk
Interesting. And so, what underlying phenomenon have you reduced these two things into? ;-) -- DougMerritt
:) I think the rules- vs concept- using is the fundamental.
But actually, I'm now convinced that I must have been wrong. It has to do with the difference between law and justice.
Laws are rules. Ethics and morality are heuristics. Justice and human rights are concepts.
And the defining characteristic of left- vs right-wing is in their allegiance to justice over laws, outcome vs process. Unless we accept a different definition of right-wingism such as selfish evilmindedness. -- RK
BTW, do you recall a discussion we had about physics where instead of going in depth into one field and learning all the rules, you could learn in breadth and learn all of the concepts involved? Though this predated my making the distinction between rules and concepts, and also my reading of AgainstMethod where Fayerabend writes "superficial thinker" in an admiring tone. You used a big word to describe the latter form, something like taxonomic ... do you recall what it was? Not exactly a burning issue but it would be interesting to reread it. -- RK
I vaguely remember the discussion, so I just checked some pages where I recalled talking to you about physics back in spring/summer 2004, but alas, did not see the discussion in question. Your comment at the bottom of AgainstMethod about value judgements is sensible, at least in the right context -- but none of this is jogging my memory of precisely which concept you're talking about that I used a sesquipedalian :-) word for.
Lemme know if you think of something else to jog my memory. -- Doug
I think it was actually "taxonomic" in (NeverMakeKnowledgePrerequisiteToUnderstanding). :)
Quite so. In fact I have a specific example. Circa 1995 I stumbled upon a new PhD thesis, "Taxonomies and Toolkits of Regular Language Algorithms", Bruce W. Watson, (Eindhovenhoven U. in the Netherlands, but in English). He did exactly what you just said, created an extremely careful and detailed taxonomy in the area for the first time, implementing every variant in the resulting taxonomy in a toolkit, and by doing so, uncovered some blank areas in the otherwise regular tree, which allowed him to read off the attributes of the un-invented algorithms simply by their placement in the taxonomy, making it easy to invent and implement them.
(This doubtless is some kind of ammo on the "discovered" side of the ancient "invented vs discovered" debate, but never mind.)
Although no doubt it's arguable whether this was groundbreaking, nonetheless I brought it to the attention of a friend who was organizing a conference in a related area of computational linguistics algorithms, who found the work interesting enough to invite the author, resulting in the newly-minted PhD giving an invited paper at the small-ish conference, included in the Cambridge U. Press proceedings publication, so it wasn't considered trivial work by any means. -- DougMerritt
You're assuming that taxonomies are discovered. There's lots of people would disagree. :)
Doug, I have no internet access at home for many months now, and apologize for not checking for your reply (and I miss a lot of recent changes even when I am here). I did check email before I wrote that query and no response then. Sorry I'll go read your reply somehow next few hours in a cafe, and let's go from there. -- DavidLiu DeleteWhenRead, but rehighlighted material from DM to RK
David, please do not ever "rehighlight" or otherwise change other peoples signatures. You've been doing that in various ways for ages, and I really, really, really dislike you doing so. If I can't get you to stop doing that on other c2 pages (and I know other people have also asked you to stop doing so), I CAN damn well insist that you not edit my HOME page in that strange way.
You may ADD comments to my home page (or delete your own comments, of course, if you feel the need, although I hope you do not).
You do not have my permission to edit anything else at all on my home page. Additions only. I trust that is clear enough for you. -- DougMerritt
P.S. I note that some WikiGnome, by a coincidence of timing, edited multiple paragraphs here around the same time, and I have no problem with that, I'm not talking about standard WikiGnoming?. I'm talking about highly non-standard non-WikiGnome edits to my (and others') paragraphs, such as adding/changing/generally fucking with/ attributions. -- Doug
Doug I have noticed in Nov05 you were involved in a difference with Jonathan and I hope neither of you let the differences on VI viewpoints affect your future relationship here. I have continued to update ThirdGeneration related information and I value your contributions there as well.
BoulderPatternsGroup was lasted edited by you. I am curious as to why the Wall Garden could not have a few doors made to link to rest of C2? I was not here and it looked as though we have driven away good people with interests in patterns.
You said: You violated. No gray here.
Doug, I am now thoroughly confused as to what exactly it is that I have done that has no gray about it. I have now clarified a possible misunderstanding on WindowsPartitionPageDiscussion?, but all my recent comments were designed to say I am backing off. I acknowledge that my page ThoughtPolice was wrong, which I have apologized for that there. I have agreed to its deletion. I don't think that was the point you were making.
As I see it I argued a case against a snap judgement about the page. I was not the person who either deleted or restored the page. What I have experienced is a lot of judgementalism about what is the wiki role, focussed on me because I argued for more tolerance of what was perceived as not relevant. This is not sarcastic, but a request for clarification. -- jpf
I have put this here as it is a comment to you. Feel free to reply on my home page.
Doug, thanks for the reply. One part of it (about signatures) was not me, please note. -- jpf
Doug, on my own home page I put some hours ago, the following - "ThoughtPolice is now revised and has a separate life." You are not acting for me in deleting the current one. Please discuss this with Gunnar Zarncke. -- jpf
You said delete. I deleted. I overlooked that you changed your mind. "You are not acting for me " blah blah... this is basically annoying; you're the one being wishy washy. Instead of implicitly criticizing me for not noticing your rapid change of mind, you should be saying "sorry, my fault". -- Doug
Thanks Doug, and HappyNewYear. -- jpf
Symbolic AI has reached the toddler stage, much better than dog levels.
Highly debateable. In the absence of any reference, I assume you're referring to Breazeal's "Kismet," (http://www.ai.mit.edu/projects/humanoid-robotics-group/kismet/kismet.html) which is arguably a clever application of pattern recognition but not something that even comes close to achieving the breadth of a dog's intelligence, let alone that of a human toddler.
No, I'm referring to the SYMBOLIC AI Cyc. Why everyone in a forum of programmers who know Lisp seems to assume AI means neural networks even after the word symbolic is thrown in is unimaginable.
What neural networks? Kismet was a logical assumption, because its design was influenced by -- and intentionally resembles -- human infant behaviour. As for Cyc, it's a knowledge base coupled with an inference engine. It has no more reached "dog levels" of anything, let alone "toddler stage" -- for any reasonable definition of these -- than any other expert system. "AI approaching at least Dog Levels" is still a long, long way away.
Great, now we're going to argue over the merits of cognition over pattern matching. This is exceedingly lame.
[This goes way over the line. NOTHING humans have produced approaches dog levels of cognition. Cite just one, if you insist on bucking that well-known fact. Counter-example: dog vision. (And I'm having trouble thinking of anything Cyc attempts that dogs do at all, so that particular claim is especially baffling.) -- DougMerritt
Vision is certainly not what most people understand by the word 'cognition' which is generally the higher level functions. What the hell are you even talking about?? What's this obsession with neural networks??? As for dogs, dogs don't think and they don't reason, parrots are more intelligent than dogs are. What kind of higher functioning can a dog possibly do?
As for your "bafflement" that AI research pursues higher-level functioning independently of lower-level functioning, well considering that this is the traditional path and that neural networks are a relatively new thing in AI research, I really wonder what the hell you're smoking! You really need a big slap across the face to wake you up from your dream fantasy when you say that it's "over the line" for someone to point out the traditional divisions in AI research. And it certainly is a fantasy since you're contradicting yourself in the same paragraph. You demand that I cite an AI that does things at least as well as dogs do and then you dismiss Cyc for doing things far beyond the capabilities of dogs. What the hell kind of ideological knee-jerk reactionary crazy ("bucking that well-known fact") thinking is this? This is really disappointing Doug. -- RK
Hang on...I disappointed you, which irritated me, so I wrote the following in an irritated mood and therefore irritated tone, which doubtless will irritate you right back...hang on while I write something about the background of my irritation, before you respond. Give me a bit....Ok, done.
No -- the problem is that you are not using standard technical terminology, and have not studied cognitive science as a technical field, so we're talking about different issues. "Vision" is cognition to cognitive scientists; I could care less what the man in the street thinks.
Yes, CYC can do things that dogs cannot, but look at what I said: "...trouble thinking of anything Cyc attempts that dogs do at all". The things that Cyc does better than dogs, dogs don't do at all. I'm still trying to think of something that dogs do (naturally, in the wild) that Cyc attempts at all.
I did not use the term "neural networks"; I only just entered this conversation (unless I wrote something months ago and then forgot).
You can't logically be disappointed when I speak on the subject as I did here; it's a technical speciality of mine (including animal cognition), and I am expressing facts, not opinions, so if I contradict you on facts, it's time for you to do a BookStop. If I offer an opinion, it'll be clear that it's merely an opinion. For instance, I think that strong AI is possible. That's my opinion, not a fact, so I could be wrong about that (although naturally I don't think I am). The stuff I said above, by contrast, is simple fact. -- DougMerritt
I am completely willing (as a matter of personal interest and philosophy) to be very open-minded to:
Ideas you have for improving things in some/any subject matter
Critiques you have for the status quo in some/any subject matter, even if you haven't come up with a better plan as yet (and recognizing that you might in the future).
...after all, I myself have critiques of at least some aspect of most traditional approaches to most topics, so I'm willing to believe that you might share some of my own critiques, and might have thought of some that I have not.
Then, due to old conversations between you and I, I am slowly (I have no reason to hurry) considering, open-mindedly, your suggestion that conceivably all topics can be approached both qualitatively and quantitatively, even the subjects that are nominally quantitative, by analogy to old-school descriptive (taxonomic) biology versus the various more recent forms of biology that go beyond the purely descriptive. You raised a reasonable doubt in my mind on that topic, and it touches on...just about everything, so I continue to think about strengths and weaknesses of that argument across the board.
Ok, then we get into areas where it is harder to be open-minded. A common one is that you usurp technical terms. For example, I can be open-minded about expanding the term "operating system" to be something larger and more all-encompassing than the usual technical definition, so I'm not completely closed-minded to you redefining that term. BUT that introduces communication problems:
You unfortunately tend to throw a wrench into the works, by not just expanding the definition of a term such as "operating system", but by making your definition mutually exclusive with the definition accepted by millions for decades, as you did recently when you insisted that "scheduling algorithms have nothing to do with operating systems".
Now, I can be open-minded about you expanding the definition of terms like "operating system", but when you say things like that, that make your definition of the term mutually exclusive with the understanding of millions of other technical people, that only hurts communication.
Millions of highly technical people understand the term "operating system" to include issues such as "what algorithm(s) to use to schedule tasks/processes", and that definition/understanding is not arbitrary: any system that has pre-emptive tasks/processes must have a scheduler that uses some kind of scheduling algorithm.
That is a matter of fact, not opinion, and I'm very sorry, but you lost credibility when you said that, because it implied that you did not understand standard operating system theory. It's fact, not opinion, because as a simple matter of logic, multiple threads/processes must be scheduled, somehow, whether you have 1 processor or N processors. It's a logical inevitability.
You may mean something different than that...but if so, that's the problem with usurping terminology. You lose credibility with 100% (not 50%, not 90%, not 99%...100%) of your technical audience when you say things like that. That's the danger of usurping terminology. We know that scheduling algorithms are an essential part of the traditional notion of "operating systems", and you can't just say that such things are beneath your concern. They have to be addressed, by scheduling algorithms, somewhere in the design of a system, never mind where. It's a logical necessity, and to imply otherwise merely comes off very badly.
There's also the issue that, if someone like, oh, say, DougMerritt has demonstrable expertise in designing and implementating "operating systems" under the traditional definition of the term, then if someone who has not done so comes along and says "I'm redefining the term "operating system", and as a result, you have no expertise in that subject", then guess what, people like DougMerritt are going to get really, really pissed that you claim that we have no expertise in a topic where we demonstrably have years of theory, practice, and pay.
How am I supposed to be open-minded to your definitions, when your definitions deny that I know anything at all? You are in no position to deny my expertise by traditional definitions, and there's no reason for me to be open-minded about new ways to redefine terms that might deny that I have any basis for making a living! Don't you understand that you make it personal when you redefine standard terminology in backward-incompatible ways???
Stick to expanding definitions of terms, and I will continue to be open-minded. But if you insist on completely redefining specialties, then, let's see, you will then deny that I know anything about 100% of the subjects that I absolutely busted ass, for many, many years in some cases, to learn and to apply in the field, and for which I have been paid, as employee and as contractor, for startups and for Fortune 500:
So damn it, I appreciate your creative genius, but stop pissing me and others off by denying that we know anything, when we damn well know that we do know something. We paid for it in blood sweat and tears. Haven't you ever experienced that same toll yourself???? -- DougMerritt
I'm putting this here because 99% of it by now doesn't belong on TechnologyDisappointments, and because there's way too much formatting.
Okay, correct me if I'm wrong but,
Now turning to OSes,
any system that has pre-emptive tasks/processes must have a scheduler that uses some kind of scheduling algorithm.
Yup, every OS has a scheduler. So what? Every AI is made of matter in this universe. Why? Because you can't do computation without matter. That doesn't make matter (let alone atoms or ions in particular) an intrinsic part of an artificial intelligence. The same thing with life-forms. Do you see the word 'matter' anywhere in the DefinitionOfLife? It isn't there because matter has nothing to do with what life is, even though every form of life in our universe must exist over some kind of matter-based substrate.
An OS is going to have a scheduler, the same way it's going to run over a CPU. That doesn't mean that the particular characteristics of that scheduler have anything to do with the characteristics of the OS. What kind of scheduler to use is partly a societal and partly an engineering decision, it certainly has nothing to do with design. When Costin accused me of never having created a scheduling algorithm, I was perfectly within my rights to cut the entire subject out of the discussion. The particular characteristics of the OS's main schedulers have just about nothing to do with macro-characteristics of the system, and the characteristics of the user-level schedulers are much more diverse and open for experimentation. Further, since it's MY role to cater to as wide a spectrum of users as feasible, I don't see any particular reason to cast economic policy in stone. If some fascist wants to create a fascist scheduler, I haven't any problem with that. Economic policy is not my responsibility.
it implied that you did not understand standard operating system theory
I understand perfectly well what the technical view of an OS is, I just don't share it. The technical view is aimed for an engineering mindset. With an engineering mindset, it matters what kind of scheduling algorithm you have because it's the engineer's job to create it. Well, it's just not my job.
You may mean something different than that...but if so, that's the problem with usurping terminology.
If I recall correctly, I made sure to define precisely what an OS was. An OS is a complete programmatic base. That means, whatever some programmer is going to see and use, that's the OS. And the innards of the OS are not the OS because the programmer doesn't see them. To prove that a particular scheduling algorithm is part of the OS, you need to demonstrate that the particular behaviour it engenders is not only perceptible but significant to programmers who use the OS. Something isn't part of an OS by the mere fact of being contained within it anymore than the undigested food I just ate is part of my body (or viruses, or bacteria).
Not everything that "comes on the CD" is part of the OS. Games are not part of the OS. Like I already explained, there is a core that's the OS and beyond that core there is a halo and beyond the halo there's orbiting systems which create their own micro-environments. The really tricky thing is that just like there's a fuzzy upper boundary to the OS, so there is a fuzzy lower boundary to it. So for example, Unix is an OS, but Mach may or may not be, and Mach is never a part of Unix even in a Unix over Mach system. The same way that Unix is never a part of the Smalltalk OS.
Look, the concept of OS is very fuzzy, extremely fuzzy, but this fuzzy concept is at least useful. The other definitions of OS I've seen are not at all useful. You claim that a scheduler is an intrinsic part of an OS? Well, prove it. It would be entirely possible to write a Smalltalk that turned over all scheduling to the native OS. In that case, technically, the Smalltalk OS wouldn't even have a scheduler, it would just be using someone else's scheduler. There are real consequences to not having a scheduler as part of the OS, bad ones, but it's entirely feasible. And note that what determines whether a scheduler is or is not part of the OS has nothing to do with what kind of algorithm it uses, but entirely secondary stuff like whether it's accessible in the same way as everything else in the OS (whether you can reflect on it if your OS is reflexive, whether the scheduler is OO if your OS is OO, and so on). It's this secondary stuff that's of import to an OS designer, the particular algorithm is up to the technician / writer / engineer, to whom I'll say 'make the best decision you know how because I wash my hands of it'.
You want to fight about which definition is right? Fine by me. But I'd prefer you actually do it, actually fight for the definition rather than just complain that I'm not respecting your definition. The key criterion that differentiates different OSes is this; ease of porting. If you only need to recompile your code in order to run it on a different platform, then this different platform is the same OS. If you need to actually port it, then it starts to be a different OS. If you have to work hard at porting it, because the concepts of the OS are entirely different, then it's a different OS family. It's the same as species in biology; conceptual descent and ease of DNA sharing. So the different Smalltalk dialects are much the same language, but as operating systems they are substantially different though they all fall within the same family.
How am I supposed to be open-minded to your definitions, when your definitions deny that I know anything at all?
That's not what it's all about.
First of all, even if you hew to the traditional definition of OS, it doesn't mean you don't know anything about the subject defined by my definition. It just means that not everything you know and not everything you did falls in the category. There's a whole bunch of overlap between the two and I doubt if you fall in the category of OS writer, it's just that much of the stuff you did as an OS writer had nothing to do with design per se, only some of it was design. I'm not denying your expertise, I'm just not acknowledging the relevance of all of your expertise.
Second, definitions are a technical matter and this particular definition is entirely technical. Given that Smalltalk is an OS, and this is widely recognized, and given that the Smalltalk OS development model is superior to the traditional OS development model, it follows that certain concerns of traditional OS developers are revealed as entirely parochial. If you can reuse a native scheduler and not write one of your own, then the scheduler simply isn't part of the OS.
Do I lose credibility by saying this? What does it matter? I'm sure I lose credibility by saying that Roger Penrose is not a scientist, but this is a matter of fact not opinion. -- RK
Wow! Thanks for running my attempts at Fortrash and Pascal. I'm glad they worked. -- ElizabethWiethoff
I'm impressed that you have Fortran, Pascal, and Basic on hand. Eeks! What a geek! -- Eliz
Yes, I am, but not based on that evidence. Fortran and Pascal are just part of the usual development environment on Linux.
"What about Basic?" I'm a compiler guy. I have, looks like, 3 implementations of Basic, 5 to 7 of Lisp (not counting several I did myself), 3 of Scheme, one of Haskell, etc, etc, etc...The languages area of my disk currently is soaking up...lessee...2.3 gigabytes.
Snobol, Icon, Forth, Prolog, many others, including of course, a tiny Cobol.
So "I'm a geek" follows from "I'm a compiler guy", not from having obsolete compilers for no good reason. I have an excuse. :-) -- Doug
Doug, I've seen Aleksey's stuff. I exercised restraint. It's the simpler course. -- Anon
Thank you, Anon. You are of course correct. But note that I was still being patient right up to the point where he started being needlesssly offensive the broader topic of wiki etc.; being vulgar and rude is, of course, merely a reflection on my personal failings, but I would hardly describe it as uncalled for, given the circumstances. Nonetheless, thank you for reminding me; I will work harder on my personal failings in such circumstances. British dry wit might have done spectacularly better, as one example. -- Doug
Sorry, that I accused you of rudeness without knowing the context. I will pay more attention to the discussion or keep still in the future. -- GunnarZarncke
Thank you, I appreciate your good will on that. -- DougMerritt
There's a number of factors that have made backyards very popular in American culture. The first of these are ever longer working hours leading to less quality time with children, or hell any time with children. The second is a car dominated culture which has made streets massively unsafe for kids. I wouldn't be surprised if cars outweigh all other causes of childhood death combined. And the third is a pernicious atomizing of society into its component individuals which has destroyed the social fabric. That same fabric which extended the functional range of parents (eg, shared supervision) and renewed their trust in human beings. This doesn't even touch on instances specifically aimed at screwing with children (eg, causing fear of "the pedophile in our midst") or combinations of the above (eg, bedroom communities -> car-based atomization of individuals). With these fucked up factors, it's not surprising that parents cast favourable glances on fenced-in prisons for children. In a fear-based culture such as the USA, being "safe" is more important than being free. -- RK
Definitely good points.
In general I think I often agree with your points when you mention them as important factors, but may disagree if you cast them as absolutes, because I think that absolutes are rare and notoriously difficult to identify reliably.
On the other hand, I sympathize with the desire to find true absolutes, and I can't help but notice that treating things as absolutes almost always simplifies analysis. Nonetheless... -- DougMerritt
Of course, this is assuming Europeans aren't as obsessed with backyards as Americans. For all I know, they could be just as bourgeois. Damn, the more I think about it, the more I miss the streets, trees and parks of Paris. -- RK
Yes, Paris is nice. -- Doug
Doug, I was the one who originally deleted BluetailAb. I don't really see any value in the page (especially the company doesn't exist anymore, and the only content was three broken links). I still don't think it has much value, but I don't see any point in EditWar'ring with (I think) Luke over it. --TimLesher
You mean, where I said "I do not have any interest in EditWar'ing this page...would you kindly answer those kinds of questions, and we can make your answer part of the page, and then there's no reason to delete the page, and then everyone's happy."?
It took a couple days but I've come up with a couple insights regarding parabarbarians. Enjoy. :) -- RK
Thanks for your note. Seen the conversation. I'm not intending to do any more now, or soon, but I thought the edit I made was worth making regardless.
Doug -- looks like the squeaky wheel gets greased. I brought up your website "observations" once again, and apparently they have greater effect when they come from an outsider. The web designer is being ReEducated?. -- TimLesher
Hurray! Congratulations! -- Doug
Doug to DonaldNoyes:
I think you view my interactions with you largely as an AntiPattern, but 'tis not so, I am typically aiming at being constructive, whether it seems so or not. I was trying to be constructive in the last interaction I wrote (which you simply deleted). It appears to me that you think I am not trying to be helpful, but from my point of view, at least, that is not the case. I may be critical, but criticism can be intended to be helpful, and that was the case with what I wrote to you most recently. -- Doug
DonaldNoyes to Doug:
Not my view at all. Continued interaction of this type is encouraged by me and especially coming from one who seems to be extremely intelligent and well-informed. I read with interest your posts and interactions with others with the result of becoming more informed in areas in which I am but a neophyte and a novice. You should find in my writings evidence that I welcome helpful interaction and especially criticism. I agree and disagree with widely divergent personalities with an approach which assumes that malice is not intended. It would be foolish of me not to learn from interactions with people of difference who I encounter here. I read what you wrote before I deleted it, and since it was directed at me, and I had absorbed its meaning I felt it was a DeleteWhenRead segment which if left would detract from rather than reinforce the message of the page. I agree with Costin that CriticsAreYourBestFriends, so I not only welcome, but also encourage helpful criticism.
It was a joke, motivated by the fact that you're a little over-eager to apply that tag to pages, as with any edit that obscures ongoing conversation by overwriting the last change diff. -- Doug
Hey, Doug... I saw your reference to LispInSmallPieces on top's page. I finally decided to check it out, and read the sample (chapter 9) on the author's home page. I'm intrigued by the sample's "Socratic" style - is the whole book written that way? -- TimLesher
URL please? I see no sample whatsoever, although I do see a summary (not sample) of chapter 8 -- and it is not Socratic. -- Doug
Doug, sorry for taking so long to reply to your question about receptor mutations -- my answer's on my home page. --KeithMann
Thanks for your answer; that's kind of what I was afraid of. -- Doug
I don't know why you're surprised, you know much, much more biology than I do and functional redundancy is a basic idea. From http://www.talkorigins.org/faqs/comdesc/section4.html#DNA_redundancy
Cytochrome c is an extremely functionally redundant protein, because many dissimilar sequences all form cytochrome c electron transport proteins. Functional redundancy need not be exact in terms of performance; some functional cytochrome c sequences may be slightly better at electron transport than others.
Decades of biochemical evidence have shown that many amino acid mutations, especially of surface residues, have only small effects on protein function and on protein structure (Branden and Tooze 1999, Ch. 3; Harris et al. 1956; Lesk 2001, Chs. 5 and 6, pp. 165-228; Li 1997, p. 2; Matthews 1996). A striking example is that of the c-type cytochromes from various bacteria, which have virtually no sequence similarity. Nevertheless, they all fold into the same three-dimensional structure, and they all perform the same biological role (Moore and Pettigrew 1990, pp. 161-223; Ptitsyn 1998).
Even within species, most amino acid mutations are functionally silent. For example, there are at least 250 different amino acid mutations known in human hemoglobin, carried by more than 3% of the world's population, that have no clinical manifestation in either heterozygotic or homozygotic individuals (Bunn and Forget 1986; Voet and Voet 1995, p. 235). The phenomenon of protein functional redundancy is very general, and is observed in all known proteins and genes.
[Now if you ever figure out how > 750% (250 * > 3%) makes sense ....]
With this in mind, consider again the molecular sequences of cytochrome c. Cytochrome c is absolutely essential for life - organisms that lack it cannot live. It has been shown that the human cytochrome c protein works in yeast (a unicellular organism) that has had its own native cytochrome c gene deleted, even though yeast cytochrome c differs from human cytochrome c over 40% of the protein (Tanaka et. al 1988a; Tanaka et al. 1988b; Wallace and Tanaka 1994). In fact, the cytochrome c genes from tuna (fish), pigeon (bird), horse (mammal), Drosophila fly (insect), and rat (mammal) all function in yeast that lack their own native yeast cytochrome c (Clements et al. 1989; Hickey et al. 1991; Koshy et al. 1992; Scarpulla and Nye 1986). Furthermore, extensive genetic analysis of cytochrome c has demonstrated that the majority of the protein sequence is unnecessary for its function in vivo (Hampsey et al. 1986; Hampsey et al. 1988). Only about a third of the 100 amino acids in cytochrome c are necessary to specify its function. Most of the amino acids in cytochrome c are hypervariable (i.e. they can be replaced by a large number of functionally similar amino acids) (Dickerson and Timkovich 1975). Importantly, Hubert Yockey has done a careful study in which he calculated that there are a minimum of 2.3 x 10^93 possible functional cytochrome c protein sequences, based on these genetic mutational analyses (Hampsey et al. 1986; Hampsey et al. 1988; Yockey 1992, Ch. 6, p. 254).
Brilliant, brilliant example, thanks for quoting that. My interpretation is that, precisely because cytochrome c is so essential, that is why there are so very many viable forms of its genetic encoding, and/or, even more likely, it became essential to all living things very early because it was so viably "protean"; in the earliest history of life, brittle/fragile sequences that easily became non-viable from a SNP (Single Nucleotide Polymorphism) would have been selected against. I would in fact expect that the very earliest, pre-Kingdom-differentiation proteins (and their genetic encodings) would tend to have this kind of resiliency against transcription error.
Important functionality that evolved billions of years later, however, in some cases is demonstrably susceptible to SNPs; many human diseases have been found to be the result of SNPs.
Back to the original topic, cellular receptors for external (let's say, for now) messenger molecules existed far, far, earlier than the origin of multicellular life, so some of them are presumably robust against transcription errors. Others, however, became specialized very recently, evolutionarily, and those would be less robust.
We know, even from popular headlines, that neuronal cell receptors for moderately old messengers such as serotonin, turn out to have many, many different receptor types, preferentially clustering one way or another on different kinds of neurons (and indeed, non-neurons), in different parts of the brain, primarily, but very importantly, in the gut, as well, and tertiarily, in other cells, including skin cells, throughout the body -- and we know very little about how many kinds of serotonin receptors there are, or why some of each kind cluster on one kind of neuron (or other cell) in one part of the brain (or elsewhere in body), but less so or not at all elsewhere in brain (or elsewhere in body)...and that's just one messenger, out of hundreds of identified messengers (of which neurotransmitters are a rough subset, but essentially all neurotransmitters are messengers for non-neurones as well), with certainty that there are at least thousands, and possibly vastly more than that....
The subject is inconceivably complex, and makes our current McCullough? & Pitts artificial neural network model look like roman numerals compared with modern abstract math (which, btw, M&P understood, although their current day neural net fans nearly universally do not).
<pant, pant>, I'll stop there, out of too much typing for now.... -- Doug
...STOP THE PRESSES, I forgot the important point -- it's not just about redundant backup of functionality, not at all! Consider Prozac (and skip the controversial issues, for the moment), and let's pretend that it does nothing more nor less than what it seems to promise: SSRI, Selective Serotonin Reuptake Inhibitor. If Prozac inhibited reuptake of serotonin in every synapse/cell receptor in the body that produced or sensed serotonin, it would certainly kill 100% of people who took it.
The key point is that it is "selective"; it only affects certain kinds of serotonin receptors, and the kind that it affects, appear only in certain kinds of cells (including but not limited to neurons) in certain parts of the brain and body, and for whatever reason, the receptors it affects on the cells that have those receptors, happen to be such that the overall effect sometimes has an effect on depression -- but also affects receptors on cells in e.g. the gut and related areas, which is why Prozac and similar drugs can cause digestive and sexual issues, too.
Different cells have differing types and numbers of receptors for the same messenger for the purpose of fine-tuning the response of different cell types in different anatomical areas; this kind of fine tuning has been on-going throughout evolution of all species, and some things, in some species (e.g. human neurons) are more fine-tuned than others...and/or have a wider variety of fine-tuning experiments on-going in the gene pool. Thus the idiosyncratic reaction of individuals to Prozac and many other drugs that are intended to be finely-targeted. They are still only grossly-targeted, given the individual variations in the gene pool. This tends to be less true for the oldest areas of functionality, e.g. the globins, including haemoglobin, which were fine tuned (e.g. for infant globin versus adult globin) a comparatively long time ago, evolutionarily.
So it's very, very, very important to understand that it's not just about redundancy; the genes and proteins and receptors for things that are more newly evolved tend to be far more subtle in fine effect, not purely redundant in a different form, whereas the very oldest genes/proteins/enzymes/receptors tend to be more robust against tiny changes.
I can't offer the URL right now (due to sad system problems), but there is in fact a collaborative database collecting information from research world-wide, as to which receptor variants appear on which kinds of cells in which gross areas of the brain. It's an important start, but we still know comparatively little. -- Doug
Doug, I very much appreciate your comments about John, which I think refer to me, on RubyInsteadOfSmalltalk. On this occasion there is some confusion, as I had edited the page, but only to provide some extra links at the bottom of the page. I have been relucant to get into arguments on wiki, and contributed AlternativeNotExclusive only to try to calm things down. In this I did not succeed at first. If you look at that page that you can see the outcome. If you did mean me, thanks as it means a lot. -- JohnFletcher
Here's a thornbush of a question for you. I googled my name after EH suggested it and found a couple of cites to "stuff I had written" on WhyWikiWorksNot. I can't find a single word on that page that's mine. On the other hand, that page got refactored by moi into HowWikiWorks and WikiAsAnarchy?. And I'm 90% certain that everything in HowWikiWorks up to "Some observations" is actually by me. I consider "the idea is so stupid as to be reprehensible" and the mention of wikipedia's sharply defined cliques which I got burned with to be giveaways. But the way it's written it actually looks like it's by Andy. How would you resolve this? I'm kinda disappointed that the one time someone bothers to cite me in a semi-serious paper, I can't even find what I wrote that they're citing. -- RK
Doug, Thank you for your comments. I am glad you enjoyed the History. I think that someone needs to write the sequel. My copy of GeometricalVectors has now arrived. Very interesting. -- John
Doug, Greetings. I have just seen a comment of yours on the TransposeFunction, I think from a couple of years back. Are you aware of the work FunctionalPatternSystemForObjectOrientedDesign? In my usual way, I am getting to understand it by implementing the examples, currently in EiffelLanguage, see ObjectFunctionalImplementation. As you might guess, more tools for mathematics. -- John
ThankYou. Um, there's been some interesting activity in the past couple weeks on CapabilitiesManagement, ComplexEventProcessing, EnterpriseServiceBus, PortalSoftware, ComplexityManagement, StuCharlton, CulturalChange, ManagementRoadMap, LeaderShip, ChangeYourOrganizationTactics, StrategicPlanning, ChangeManagement, BusinessProcessManagement, DoesItMatter, TheFifthDiscipline, GettingToYes, ConflictingRequirements, WikiMindWipeRealityCheck, SlowDownToSpeedUp, WhenIsXpNotAppropriate, PrisonersDilemma, CultureIsTheManifestationOfLeadership. Any advice? -- Eliz (DeleteWhenCooked. Don't mind me; I'm just cooking a bit: 19-10-2006)
Hi there. Well, the appropriate gnoming could be confusing to, and misunderstood by, bystanders. How about what I just tried with CapabilitiesManagement? Move it to his home page, let time pass, then remove from home page. I had the thought that referring to it as his school notes should help in explaining the motivation without long explanation, and is more or less accurate figuratively whether he is literally in school or not. -- Doug
Thanks for the advice. I diffed each page and moved the green stuff to DavidLiu. That way I could be certain I was moving post-ban material and not pre-ban material. My concern has been enforcing the darn bans around here, not whether DL's material is actually interesting & useful to others. Let's let this sit a few more days before I consider it cooked. -- Eliz