Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #29543 > unrolled thread
| Started by | bit-naughty@hotmail.com |
|---|---|
| First post | 2016-02-05 06:55 -0800 |
| Last post | 2016-02-06 11:56 -0200 |
| Articles | 20 on this page of 46 — 14 participants |
Back to article view | Back to comp.lang.javascript
Newbie trying to understand object oriented programming bit-naughty@hotmail.com - 2016-02-05 06:55 -0800
Re: Newbie trying to understand object oriented programming 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-05 18:56 +0000
Re: Newbie trying to understand object oriented programming Tim Slattery <tim@risingdove.com> - 2016-02-05 14:07 -0500
Re: Newbie trying to understand object oriented programming Aleksandro <aleksandro@gmx.com> - 2016-02-05 17:34 -0300
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-05 19:10 -0800
Re: Newbie trying to understand object oriented programming 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-06 08:33 +0000
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-06 08:24 -0800
Re: Newbie trying to understand object oriented programming 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-06 18:48 +0000
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-06 12:28 -0800
Re: Newbie trying to understand object oriented programming 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-06 21:01 +0000
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-07 15:23 -0800
Re: Newbie trying to understand object oriented programming Aleksandro <aleksandro@gmx.com> - 2016-02-08 11:45 -0300
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-02-08 13:39 -0800
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-11 08:09 -0800
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-02-11 12:22 -0800
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-02-12 11:09 +0000
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-02-12 13:34 -0800
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-02-13 14:40 +0000
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-02-14 10:18 -0800
Re: Newbie trying to understand object oriented programming Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-02-14 21:27 +0100
Re: Newbie trying to understand object oriented programming "J. Clarke" <j.clarke.873638@gmail.com> - 2016-05-14 10:13 -0400
Re: Newbie trying to understand object oriented programming Tim Streater <timstreater@greenbee.net> - 2016-05-14 16:47 +0100
Re: Newbie trying to understand object oriented programming "J. Clarke" <j.clarke.873638@gmail.com> - 2016-05-15 07:05 -0400
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-05-14 10:08 -0700
Re: Newbie trying to understand object oriented programming "J. Clarke" <j.clarke.873638@gmail.com> - 2016-05-15 07:02 -0400
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-05-15 13:11 -0700
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-05-15 17:03 +0100
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-05-15 13:20 -0700
Re: Newbie trying to understand object oriented programming Gene Wirchenko <genew@telus.net> - 2016-05-16 11:55 -0700
Re: Newbie trying to understand object oriented programming Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-05-16 21:39 +0200
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-05-17 07:30 -0700
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-05-17 15:34 +0100
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-13 17:50 -0800
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-02-14 11:15 +0000
Re: Newbie trying to understand object oriented programming "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2016-02-14 11:03 -0800
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-02-15 20:18 +0000
Re: Newbie trying to understand object oriented programming Scott Sauyet <scott.sauyet@gmail.com> - 2016-02-13 16:54 -0800
Re: Newbie trying to understand object oriented programming Danny <dann90038@gmail.com> - 2016-02-05 15:00 -0800
Re: Newbie trying to understand object oriented programming RobG <rgqld@iinet.net.au> - 2016-02-06 17:18 +1000
Re: Newbie trying to understand object oriented programming Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-02-06 16:01 +0100
Re: Newbie trying to understand object oriented programming bit-naughty@hotmail.com - 2016-02-07 04:47 -0800
Re: Newbie trying to understand object oriented programming Tim Streater <timstreater@greenbee.net> - 2016-02-07 13:16 +0000
Re: Newbie trying to understand object oriented programming John Harris <niam@jghnorth.org.uk.invalid> - 2016-02-07 17:29 +0000
Re: Newbie trying to understand object oriented programming bit-naughty@hotmail.com - 2016-02-08 08:53 -0800
Re: Newbie trying to understand object oriented programming Tim Streater <timstreater@greenbee.net> - 2016-02-08 17:33 +0000
Re: Newbie trying to understand object oriented programming Joao Rodrigues <jr@none.com> - 2016-02-06 11:56 -0200
Page 2 of 3 — ← Prev page 1 [2] 3 Next page →
| From | "J. Clarke" <j.clarke.873638@gmail.com> |
|---|---|
| Date | 2016-05-14 10:13 -0400 |
| Message-ID | <MPG.31a0fc8329bb357898a194@news.eternal-september.org> |
| In reply to | #29599 |
In article <d2ed95f3-8320-42cb-baf2-50a9f7e80ee2@googlegroups.com>, tno@thenewobjective.com says... > > On Saturday, February 13, 2016 at 8:40:30 AM UTC-6, John Harris wrote: > > > Make things that *work* includes choosing a suitable language [...] > > Indeed. Optimally one should program against the Problem Domain in a language that suits it otherwise you're programming against some other Problem Domain which as a side effect, you hope, solves the original problem you were worried about. [1] > > > as well as the OO style. > > I'm not sure there are "style[s]" of OO. > > > I'm not advocating the use of Basic or equivalent for > > banking systems. > > I wasn't suggesting you were. Though given that COBOL is the legacy implementation of most financial institutions in the USA at least, I don't think it would necessarily be a step backwards if it was. A bit of structured programming would be nice. "If it ain't broke don't fix it" is the name of the game there though. My main point on this though is to remind people that some languages are better than others. > > Michael Haufe (TNO) wrote: > > > [...] > > >PLT matters. > > > Photonic Laser Thruster ? (See Wikipedia) > > Given the context of the conversation, there were four possibilities I think you could have chosen from in the Wikipedia disambiguation page, excluding the one you chose. I was referring to Programming Language Theory [2] > > > Some software guru whose name I've forgotten said that he would never > > fly in a plane that used Fortran for its control software. > > > > And NASA lost a mission to Venus because Fortran isn't upset by > > certain simple and difficult to spot typing errors. What typing errors would those be? Fortran gets upset by just about anything. The accounts of a "missing hyphen" don't make any sense-- there is no "hyphen" in Fortran that has any significance other than as a character in comment statements and text output. The Wiki article says that it was an error in the spec--the spec didn't say to average something that was supposed to be averaged. > > So, yes, some languages aren't the best choice, so not Fortran. Unless > > you can't do the work without a Maths package that's in Fortran. > > A valid concern. Numerous versions of FORTRAN let you redefine the meaning of numbers, Which versions are these? > among many other flaws. [3] Defensive programming is a must-have to > successfully develop at scale in this language, otherwise you have to > have a very in depth code review stage in your development lifecyle + > unit/integration tests. > > Luckily for your Software Guru acquaintance, Ada is used instead in many cases [4] Anybody who has anything really critical on the line implements the same algorithm in two languages with two teams and then tests the results against each other. > > I'm pointing out that C++ will let you write > > Complex a,b,c; ... a = b + c; > > Polynomial d,e,f; ... d = e + f; > > Quaternion g,h,i; ... g = h + i; > > not > > a = addComplex(b, c); > > d = addPoly(d, f); > > g = addQuaternion(h, i); > > It's easier to write, and easier to proof-read, which is what matters. > > If it's simply a preference of notation, fine; but semantically equivalent. It has been said that syntax is the last refuge of linguistic Luddites, and some part of me agrees. I suspect this is a priority to you because among the variety of languages you've learned/used, the only main difference between them has been a choice of syntax and library offerings. In comparison to other aspects of what goes into the design of a programming language though, this aspect (while important in its own right), is quite low on the totem pole. Admittedly, some people know how to utterly screw up even the simplest things [5] > > > [1] Alan Perlis Epigram #8 > "A programming language is low level when its programs require attention to the irrelevant." > <http://www.cs.yale.edu/homes/perlis-alan/quotes.html> > [2] <https://en.wikipedia.org/wiki/Programming_language_theory> > [3] <http://everything2.com/title/Changing+the+value+of+5+in+FORTRAN> > [4] <http://archive.adaic.com/projects/atwork/boeing.html> > [5] <http://homepages.inf.ed.ac.uk/wadler/language.pdf>
[toc] | [prev] | [next] | [standalone]
| From | Tim Streater <timstreater@greenbee.net> |
|---|---|
| Date | 2016-05-14 16:47 +0100 |
| Message-ID | <140520161647184345%timstreater@greenbee.net> |
| In reply to | #30430 |
In article <MPG.31a0fc8329bb357898a194@news.eternal-september.org>, J. Clarke <j.clarke.873638@gmail.com> wrote: >In article <d2ed95f3-8320-42cb-baf2-50a9f7e80ee2@googlegroups.com>, >tno@thenewobjective.com says... >> > And NASA lost a mission to Venus because Fortran isn't upset by >> > certain simple and difficult to spot typing errors. > >What typing errors would those be? Fortran gets upset by just about >anything. The accounts of a "missing hyphen" don't make any sense-- >there is no "hyphen" in Fortran that has any significance other than as >a character in comment statements and text output. I haven't used fortran since 1978, but back then you could use variables without declaring them - implicit types based on the initial letter. Easy enough to misspell a variable. For hyphen, possibly read "minus sign". -- "The idea that Bill Gates has appeared like a knight in shining armour to lead all customers out of a mire of technological chaos neatly ignores the fact that it was he who, by peddling second-rate technology, led them into it in the first place." - Douglas Adams
[toc] | [prev] | [next] | [standalone]
| From | "J. Clarke" <j.clarke.873638@gmail.com> |
|---|---|
| Date | 2016-05-15 07:05 -0400 |
| Message-ID | <MPG.31a221e969b73b7898a196@news.eternal-september.org> |
| In reply to | #30431 |
In article <140520161647184345%timstreater@greenbee.net>, timstreater@greenbee.net says... > > In article <MPG.31a0fc8329bb357898a194@news.eternal-september.org>, J. > Clarke <j.clarke.873638@gmail.com> wrote: > > >In article <d2ed95f3-8320-42cb-baf2-50a9f7e80ee2@googlegroups.com>, > >tno@thenewobjective.com says... > > >> > And NASA lost a mission to Venus because Fortran isn't upset by > >> > certain simple and difficult to spot typing errors. > > > >What typing errors would those be? Fortran gets upset by just about > >anything. The accounts of a "missing hyphen" don't make any sense-- > >there is no "hyphen" in Fortran that has any significance other than as > >a character in comment statements and text output. > > I haven't used fortran since 1978, but back then you could use > variables without declaring them - implicit types based on the initial > letter. Easy enough to misspell a variable. > > For hyphen, possibly read "minus sign". Could be but if the operation is subtraction and the operator is left out the compiler is not going to be happy. If it is negation, I really want to know how any compiler is supposed to determine that the programmer intended to use a negative number and instead used a positive one.
[toc] | [prev] | [next] | [standalone]
| From | "Michael Haufe (TNO)" <tno@thenewobjective.com> |
|---|---|
| Date | 2016-05-14 10:08 -0700 |
| Message-ID | <2e659657-38ff-4008-8100-502e0ce4a1be@googlegroups.com> |
| In reply to | #30430 |
On Saturday, May 14, 2016 at 9:13:23 AM UTC-5, J. Clarke wrote: > What typing errors would those be? Fortran gets upset by just about > anything. The accounts of a "missing hyphen" don't make any sense-- > there is no "hyphen" in Fortran that has any significance other than as > a character in comment statements and text output. Typing as in Type System: <https://en.wikipedia.org/wiki/Type_system>. Semantically legal, not merely syntactically legal. > The Wiki article says that it was an error in the spec--the spec didn't > say to average something that was supposed to be averaged. I wonder if John was thinking of a Mars mission and not a Venus one. I am not seeing this specific case (and you didn't provide a concrete reference either): <http://nssdc.gsfc.nasa.gov/planetary/chronology_venus.html> The mission that was in my mind as I wrote my original response was the Mars Climate Orbiter mission which failed due to an ambiguous encoding of Newtons vs Pounds. But if your argument is that "if a specification is illogical the implementation must and therefore be illogical", I don't necessarily agree. My counter-argument would be that using a better programming language would have forced the programmers to be more explicit about their assumptions and a number of spec flaws could have come to light. For example: If your language supported Units of Measurement as well as a basic Hindley-Milner type system, (such as say, F#) you would be better off than with C++/Fortran on the first day: <http://stevenpemberton.net/blog/2015/03/11/FSharp-Units-Of-Measure/> Your mental energy and efforts can be moved elsewhere (such as having a compilation target that isn't the .NET runtime) not that I'm advocating F# for this specifically, but merely using it as an example of a language that can work more closely with the desired problem domain and the safety guarantees that go with it > > A valid concern. Numerous versions of FORTRAN let you redefine the meaning of numbers, > > Which versions are these? More details with context: <http://everything2.com/title/Changing+the+value+of+5+in+FORTRAN> <http://computer-programming-forum.com/49-fortran/c1e8b7d194d9f46a.htm> <http://programmers.stackexchange.com/questions/254799/ever-change-the-value-of-4-how-did-this-come-into-hayes-thomas-quiz> > > Luckily for your Software Guru acquaintance, Ada is used instead in many cases [4] > > Anybody who has anything really critical on the line implements the same > algorithm in two languages with two teams and then tests the results > against each other. To get the average algorithm? What nonsense. Two language compilers + x numbers of human compilers for something that could be formally proved in a language with a sound type system. If something is at that level of critical, then I want to see a formal machine checked proof, otherwise consider it broken: <https://en.wikipedia.org/wiki/Proof_assistant> <https://en.wikipedia.org/wiki/Automated_theorem_proving> I've written my fair share of these, and it is god-awful painful to do, but these are certified correct and reusable.
[toc] | [prev] | [next] | [standalone]
| From | "J. Clarke" <j.clarke.873638@gmail.com> |
|---|---|
| Date | 2016-05-15 07:02 -0400 |
| Message-ID | <MPG.31a22169703a9c7598a195@news.eternal-september.org> |
| In reply to | #30432 |
In article <2e659657-38ff-4008-8100-502e0ce4a1be@googlegroups.com>, tno@thenewobjective.com says... > > On Saturday, May 14, 2016 at 9:13:23 AM UTC-5, J. Clarke wrote: > > > What typing errors would those be? Fortran gets upset by just about > > anything. The accounts of a "missing hyphen" don't make any sense-- > > there is no "hyphen" in Fortran that has any significance other than as > > a character in comment statements and text output. > > Typing as in Type System: <https://en.wikipedia.org/wiki/Type_system>. Semantically legal, not merely syntactically legal. So why does Fortran constantly complain about type mismatches? > > The Wiki article says that it was an error in the spec--the spec didn't > > say to average something that was supposed to be averaged. > > I wonder if John was thinking of a Mars mission and not a Venus one. Google "Venus Fortran". > I am not seeing this specific case (and you didn't provide a concrete reference either): > > <http://nssdc.gsfc.nasa.gov/planetary/chronology_venus.html> > > The mission that was in my mind as I wrote my original response was the Mars Climate Orbiter mission which failed due to an ambiguous encoding of Newtons vs Pounds. If you're expecting a programming language to read the programmer's mind to determine what units he intended to use, you're asking for magic. > But if your argument is that "if a specification is illogical the implementation must and therefore be illogical", I don't necessarily agree. If the specification says "use the instantaneous value of this changing quantity" when the specifier intended "average this changing quantity over some period of time and use the result", that's not a matter of being "logical" or "illogical". > My counter-argument would be that using a better programming language would have forced the programmers to be more explicit about their assumptions and a number of spec flaws could have come to light. The programmers were plenty explicit about their assumptions. It was the engineer who made the mistake. > For example: If your language supported Units of Measurement as well as a basic Hindley-Milner type system, (such as say, F#) you would be better off than with C++/Fortran on the first day: > > <http://stevenpemberton.net/blog/2015/03/11/FSharp-Units-Of-Measure/> > > Your mental energy and efforts can be moved elsewhere (such as having a compilation target that isn't the .NET runtime) > > not that I'm advocating F# for this specifically, but merely using it as an example of a language that can work more closely with the desired problem domain and the safety guarantees that go with it So for what hardware is F# available? > > > A valid concern. Numerous versions of FORTRAN let you redefine the meaning of numbers, > > > > Which versions are these? > > More details with context: > > <http://everything2.com/title/Changing+the+value+of+5+in+FORTRAN> > <http://computer-programming-forum.com/49-fortran/c1e8b7d194d9f46a.htm> > <http://programmers.stackexchange.com/questions/254799/ever-change-the-value-of-4-how-did-this-come-into-hayes-thomas-quiz> That's a flawed implementation of call-by-reference, aka a "bug". > > > Luckily for your Software Guru acquaintance, Ada is used instead in many cases [4] > > > > Anybody who has anything really critical on the line implements the same > > algorithm in two languages with two teams and then tests the results > > against each other. > > To get the average algorithm? What part of "the same algorithm" are you having trouble with. No "average" is determined. If both implementations match then it is assumed that both are correct. If they do not match it is assumed that one or the other is broken. > What nonsense. Two language compilers + x numbers of human compilers > for something that could be formally proved in a language with a sound > type system. ROF,L. You REALLY don't program. I keep hearing about this business of "formally proving correctness". I've never seen it. > If something is at that level of critical, then I want to see a formal machine checked proof, otherwise consider it broken: > > <https://en.wikipedia.org/wiki/Proof_assistant> > <https://en.wikipedia.org/wiki/Automated_theorem_proving> I'm sorry, but a computer program is not a theorem. > I've written my fair share of these, and it is god-awful painful to do, but these are certified correct and reusable. So how long would it take you to prove that Windows is correct?
[toc] | [prev] | [next] | [standalone]
| From | "Michael Haufe (TNO)" <tno@thenewobjective.com> |
|---|---|
| Date | 2016-05-15 13:11 -0700 |
| Message-ID | <02222a36-b243-4047-a2b5-711a427928bd@googlegroups.com> |
| In reply to | #30434 |
J. Clarke wrote: > Michael Haufe wrote: > > > > Typing as in Type System: <https://en.wikipedia.org/wiki/Type_system>. Semantically legal, not merely syntactically legal. > > So why does Fortran constantly complain about type mismatches? Because it has a type system, though it's unsound and not as expressive as those found in many other languages. I'm not sure what your bigger question is here. Michael Haufe wrote: > I wonder if John was thinking of a Mars mission and not a Venus one. J. Clarke wrote: > Google "Venus Fortran". Or maybe point to the specific mission from the NASA listing I referred you to. Michael Haufe wrote: > The mission that was in my mind as I wrote my original response was the Mars Climate Orbiter mission which failed due to an ambiguous encoding of Newtons vs Pounds. J. Clarke wrote: > If you're expecting a programming language to read the programmer's mind > to determine what units he intended to use, you're asking for magic. It doesn't have to read your mind. It can enforce consistency and check your assumptions though. Michael Haufe wrote: > But if your argument is that "if a specification is illogical the implementation must and therefore be illogical", I don't necessarily agree. J. Clarke wrote: > If the specification says "use the instantaneous value of this changing > quantity" when the specifier intended "average this changing quantity > over some period of time and use the result", that's not a matter of > being "logical" or "illogical". A specification is not a simple collection of unrelated propositions though, it exists as a system. It is this relationship that could be checked and enforced for consistency. An abstract example of this: var foo : String = "Hello World" var bar : Number = 12 ... var quux : Number = foo - bar at the level of "foo" or "bar" you're right that it's "not a matter of being 'logical' or 'illogical'", but once you combine these smaller assumptions you create more and at these points they can be verified and enforced. In JavaScript, code like the above (sans type annotations of course) is no problem and just becomes NaN (which was not what was probably intended), but in a slightly better language such as TypeScript it wouldn't compile and would complain about the inconsistency J. Clarke wrote: > The programmers were plenty explicit about their assumptions. It was > the engineer who made the mistake. I wouldn't know as you've yet to produce this specific case. Michael Haufe wrote: > Your mental energy and efforts can be moved elsewhere (such as having a compilation target that isn't the .NET runtime) > > > > not that I'm advocating F# for this specifically, but merely using it as an example of a language that can work more closely with the desired problem domain and the safety guarantees that go with it J. Clarke wrote: > So for what hardware is F# available? Any hardware that runs CIL, or any for which you have a compiler from CIL to. There is even a WebAssembly one now: <https://github.com/WebAssembly/ilwasm> But as I already said, I wasn't advocating F# specifically for this. It has brethren in the language family which may be more suitable for this. Michael Haufe wrote: > A valid concern. Numerous versions of FORTRAN let you redefine the meaning of numbers [...] J. Clarke wrote: > Which versions are these? Michael Haufe wrote: > More details with context: > <http://everything2.com/title/Changing+the+value+of+5+in+FORTRAN> > <http://computer-programming-forum.com/49-fortran/c1e8b7d194d9f46a.htm> > <http://programmers.stackexchange.com/questions/254799/ever-change-the-value-of-4-how-did-this-come-into-hayes-thomas-quiz> J. Clarke wrote: > That's a flawed implementation of call-by-reference, aka a "bug". To quote from the second link: "All Fortran standards have required that actual arguments be definable if they are associated with dummy arguments that change during the execution of the procedure. It is not, however, a violation that's required to be detected or reported by compliant implementations." So Fortan was not well a designed language, and the implementations even worse. Is that not what I've been saying for awhile now? J. Clarke wrote: > Anybody who has anything really critical on the line implements the same > algorithm in two languages with two teams and then tests the results against each other. Michael Haufe wrote: > To get the average algorithm? What nonsense. [...] J. Clarke wrote: > What part of "the same algorithm" are you having trouble with. No > "average" is determined. If both implementations match then it is > assumed that both are correct. If they do not match it is assumed that > one or the other is broken. Assume assume assume... Since the nuance of the argument seems to be lost. I'm going to apply your process for a simple contrived example, as it may become obvious to you why this is not a good idea. I'm going to show you the 99-bottles program in two languages: HQ9+, and Perl 5.x <code lang="HQ9+"> 9 </code> Perl: <http://www.99-bottles-of-beer.net/language-perl-737.html> Now following your argument, since both produce the same output they must both be correct and therefore the algorithm correct (whatever that is). But what if they both produce the wrong output? Do you still assume the algorithm is correct as it is the same output? If only one is incorrect, do you automatically assume it is the 2nd one because you don't understand it or can't read it? Are you betting your life or the mission on it? Perhaps you now add a 3rd language? If so, why not crowd-source it then if more implementations of the same algorithm are better, right? Perhaps through a new site we can call: <NASA-programming.stackoverflow.com>, and the top voted one or the accepted answer there will win. Hence I'll repeat my earlier comment: > What nonsense. Two language compilers + x numbers of human compilers > for something that could be formally proved in a language with a sound > type system. J. Clarke wrote: > ROF,L. You REALLY don't program. Yes, that must be it, there is no other possible explanation... J. Clarke wrote: > I keep hearing about this business of > "formally proving correctness". I've never seen it. So it must not exist? Quite a bit of hubris there as well as ignorance. An introduction for you: <https://en.wikipedia.org/wiki/Propositional_calculus> Michael Haufe wrote: > If something is at that level of critical, then I want to see a formal machine checked proof, otherwise consider it broken J. Clarke wrote: > I'm sorry, but a computer program is not a theorem. A program is a proof of a theorem. The type system is the theorem. See: <https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence> and more friendly: <http://programmers.stackexchange.com/questions/81266/a-proof-is-a-program-the-formula-it-proves-is-a-type-for-the-program> Michael Haufe wrote: > I've written my fair share of these, and it is god-awful painful to do, but these are certified correct and reusable. J. Clarke wrote: > So how long would it take you to prove that Windows is correct? Me personally? 10 years or more. I would have to be on Microsoft's payroll to bother. How would it take people in general? Microsoft has actually been trying to do so for a number of years for different aspects of the operating system. They created the Z3 theorem-rrover as one outcropping of the effort : <https://github.com/Z3Prover/z3/wiki> and there was an attempt to make the problem easier by writing the entirety of the windows platform on top of C# first: <http://research.microsoft.com/en-us/projects/singularity/> We'll see how it goes, but I'm not holding my breath.
[toc] | [prev] | [next] | [standalone]
| From | John Harris <niam@jghnorth.org.uk.invalid> |
|---|---|
| Date | 2016-05-15 17:03 +0100 |
| Message-ID | <ld7hjblm7o66sjh3cit2q2h437l1sbv08m@4ax.com> |
| In reply to | #30430 |
On Sat, 14 May 2016 10:13:10 -0400, "J. Clarke" <j.clarke.873638@gmail.com> wrote: <snip> >Anybody who has anything really critical on the line implements the same >algorithm in two languages with two teams and then tests the results >against each other. <snip> This has problems of its own. You have to be absolutely certain that . No-one in either team has talked to the other team, even if managers were screaming about delays and threatening the sack for delivering it late. . Neither compiler uses the output of the other compiler. . Neither compiler includes any part of the other compiler. . The design and development processes of the two compilers used different design tools. And these tools were independent of each other. . The tests of the results were reliable. Also, 'Anybody' is over the top. There's at least one respectable supplier of jet engine control software that uses (or used) certified chunks of software produced in earlier products. John
[toc] | [prev] | [next] | [standalone]
| From | "Michael Haufe (TNO)" <tno@thenewobjective.com> |
|---|---|
| Date | 2016-05-15 13:20 -0700 |
| Message-ID | <19ed6293-d037-4984-9759-906c1f804dca@googlegroups.com> |
| In reply to | #30436 |
On Sunday, May 15, 2016 at 11:03:12 AM UTC-5, John Harris wrote: > There's at least one respectable > supplier of jet engine control software that uses (or used) certified > chunks of software produced in earlier products. An interesting discussion on that aspect as well: <http://lambda-the-ultimate.org/node/5277#comment-90756>
[toc] | [prev] | [next] | [standalone]
| From | Gene Wirchenko <genew@telus.net> |
|---|---|
| Date | 2016-05-16 11:55 -0700 |
| Message-ID | <es5kjbhksuior2arrn6j8phavta4bt0j5r@4ax.com> |
| In reply to | #30436 |
On Sun, 15 May 2016 17:03:06 +0100, John Harris
<niam@jghnorth.org.uk.invalid> wrote:
>On Sat, 14 May 2016 10:13:10 -0400, "J. Clarke"
><j.clarke.873638@gmail.com> wrote:
>
> <snip>
>>Anybody who has anything really critical on the line implements the same
>>algorithm in two languages with two teams and then tests the results
>>against each other.
> <snip>
>
>This has problems of its own. You have to be absolutely certain that
>. No-one in either team has talked to the other team, even if managers
>were screaming about delays and threatening the sack for delivering it
>late.
>. Neither compiler uses the output of the other compiler.
>. Neither compiler includes any part of the other compiler.
>. The design and development processes of the two compilers used
>different design tools. And these tools were independent of each
>other.
>. The tests of the results were reliable.
>
>Also, 'Anybody' is over the top. There's at least one respectable
>supplier of jet engine control software that uses (or used) certified
>chunks of software produced in earlier products.
The Ariane 5 fiasco?
Sincerely,
Gene Wirchenko
[toc] | [prev] | [next] | [standalone]
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Date | 2016-05-16 21:39 +0200 |
| Message-ID | <1556545.vah8PNoZeM@PointedEars.de> |
| In reply to | #29599 |
Michael Haufe (TNO) wrote:
> On Saturday, February 13, 2016 at 8:40:30 AM UTC-6, John Harris wrote:
>> I'm pointing out that C++ will let you write
>> Complex a,b,c; ... a = b + c;
>> Polynomial d,e,f; ... d = e + f;
>> Quaternion g,h,i; ... g = h + i;
>> not
>> a = addComplex(b, c);
>> d = addPoly(d, f);
>> g = addQuaternion(h, i);
>> It's easier to write, and easier to proof-read, which is what matters.
>
> If it's simply a preference of notation, fine; but semantically
> equivalent. […]
JFTR, after loading JSX:math/complex.js [1], you can do
var
/* Import into local namespace, shortens the effective scope chain */
Complex = jsx.math.complex.Complex,
/* “new” is optional; the constructor can be called as a function */
a = Complex(1, 2),
/* Do you think that “Complex("3 + 4j")” should work, too? */
b = Complex.parse("3 + 4j"),
c = a.add(b);
/* jsx_math_complex_Complex {re: 4, im: 6}, "4+6j" */
console.log(c, c.toString());
which is how this should be done in OOP instead of several add*() functions
with different names.
The same could be done with polynomials and quarternions. So it is just
calling an add() method on an object instead of using the “+” operator;
(subtype) polymorphism instead of operator overloading (which in C++ really
is nothing else than ad-hoc polymorphism: you have to declare an operator as
a function that takes arguments of specific types).
<https://en.wikipedia.org/wiki/Polymorphism_(computer_science)>
[As a side effect of Complex.prototype.valueOf() currently calling
Complex.prototype.abs(), “a + b” yields the sum, and “a - b” the difference,
of the absolutes of the two complex numbers, for example allowing them to be
sorted ascending by their distance from the origin with
[…, …].sort(function (a, b) { return a - b; })
If the imaginary parts are zero, the aforementioned expressions yield the
correct real sum and differences of the two complex numbers without
explicitly calling a method.]
It would be nice if ECMAScript introduced general operator overloading (not
just for unary “+”, and “-”, and concatenating “+”) with __*() methods as
does Python, but we are not there yet. Maybe in ECMAScript 2017 ;-)
_________
[1] <http://PointedEars.de/wsvn/JSX/trunk/math/complex.js>
(the more up-to-date Git repository is not publicly available yet,
but this is currently the latest revision of this module)
--
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.
[toc] | [prev] | [next] | [standalone]
| From | "Michael Haufe (TNO)" <tno@thenewobjective.com> |
|---|---|
| Date | 2016-05-17 07:30 -0700 |
| Message-ID | <e805dcb6-3f71-45e5-8591-2bdbc2f340a9@googlegroups.com> |
| In reply to | #30447 |
On Monday, May 16, 2016 at 2:39:49 PM UTC-5, Thomas 'PointedEars' Lahn wrote:
> Michael Haufe (TNO) wrote:
>
> > On Saturday, February 13, 2016 at 8:40:30 AM UTC-6, John Harris wrote:
> >> I'm pointing out that C++ will let you write
> >> Complex a,b,c; ... a = b + c;
> >> Polynomial d,e,f; ... d = e + f;
> >> Quaternion g,h,i; ... g = h + i;
> >> not
> >> a = addComplex(b, c);
> >> d = addPoly(d, f);
> >> g = addQuaternion(h, i);
> >> It's easier to write, and easier to proof-read, which is what matters.
> >
> > If it's simply a preference of notation, fine; but semantically
> > equivalent. […]
>
> JFTR, after loading JSX:math/complex.js [1], you can do
>
> var
> /* Import into local namespace, shortens the effective scope chain */
> Complex = jsx.math.complex.Complex,
>
> /* “new” is optional; the constructor can be called as a function */
> a = Complex(1, 2),
>
> /* Do you think that “Complex("3 + 4j")” should work, too? */
> b = Complex.parse("3 + 4j"),
I'd say why bother? The form Complex(1,2) is plenty. Let some other code manage getting it into the proper form. (Single Responsibility principle)
> [...]
> It would be nice if ECMAScript introduced general operator overloading (not
> just for unary “+”, and “-”, and concatenating “+”) with __*() methods as
> does Python, but we are not there yet. Maybe in ECMAScript 2017 ;-)
From the looks of the discussions I've seen thus far in es-discuss and conference presentations ... I'm not sure I like the direction. I hope it gets hashed out better as it matures
[toc] | [prev] | [next] | [standalone]
| From | John Harris <niam@jghnorth.org.uk.invalid> |
|---|---|
| Date | 2016-05-17 15:34 +0100 |
| Message-ID | <9qamjb5hoq4q40mdhfq960nciqfpoih41p@4ax.com> |
| In reply to | #30447 |
On Mon, 16 May 2016 21:39:41 +0200, Thomas 'PointedEars' Lahn <PointedEars@web.de> wrote: <snip> >The same could be done with polynomials and quarternions. So it is just >calling an add() method on an object instead of using the “+” operator; >(subtype) polymorphism instead of operator overloading (which in C++ really >is nothing else than ad-hoc polymorphism: you have to declare an operator as >a function that takes arguments of specific types). <snip> An operator *is* a function. It is a function that uses different syntax when calling it to make the code easier to read. Therefore overloading is a legitimate description. John
[toc] | [prev] | [next] | [standalone]
| From | Scott Sauyet <scott.sauyet@gmail.com> |
|---|---|
| Date | 2016-02-13 17:50 -0800 |
| Message-ID | <2c0325b2-299c-4182-86b0-7f3e0564eae8@googlegroups.com> |
| In reply to | #29594 |
Michael Haufe (TNO) wrote:
> John Harris wrote:
>
>> To say it another way, the purpose of OO design and OO languages is to
>> help us make things that work. There are several approaches to this.
>> Which you prefer depends on circumstances and personal choice. It's
>> not something to argue about too fiercely.
>
> "To each their own" and "just another tool in the toolbox" are simply
> cop-outs. PLT matters.
PLT?
> It matters significantly as lives + billions of
> dollars are lost due to bad language design, that includes the subtle
> differences in so-called "OOP" languages.
I assume everyone knows the story of the spacecraft lost to a language
issue, but I wouldn't let that loom too large. Another one was lost to
the inability of the engineers to convince management that it was too
cold to launch, and still another because of an absolutely ridiculous
mismatch between metric and imperial units.
I feel as though bad language design is rife, and that there is little
individual programmers can do about it besides choosing, when they can,
to work with better-designed languages (and of course, writing their
own.)
> Would you feel comfortable
> flying in a plane where the software was written in a mixture of assembly
> and (god-forbid) Coffee-script? I suspect not, and that you would much
> rather have another language with OO support such as Ada.
Honestly, I'd rather know it was written in Haskell or LISP, because
it seems to me that the smartest programmers I know -- and the smartest
ones I know of -- work often in those languages. I'm much more interested
in the strengths of the developers than of the languages they use.
Besides, as I understand it, Ada was merely a successful public works
project designed to keep several thousand roving defense contractors out
of gangs. [1]
>> Myself, I prefer C++. For instance, you can make complex numbers,
>> which are unknown to the compiler, look like ordinary numbers, as in
>> complex x, y, z; ... z = 2*x + 3/y; [ ... ]
That feature, though, is essentially independent of the OO design of
the language.
> This is a trivial extension in the Lisp family of languages. Yet even
> ignoring the syntactic aspect of it, you can add the semantics of
> complex numbers to JavaScript as well by treating the components as
> well... components of an object:
>
> var myNumber = new Complex(a,b)
That is not nearly as convenient, though. There is a big difference
in ease of understanding between John's
z = 2*x + 3/y
and
z = complexAdd(complexMultiply(2, x), complexDivide(3, y))
or
z = x.times(2).add(y.divideInto(3))
or some such.
>> PS It's not so much the C++ family, it's more the Simula family.
Is that true? I have not spent any time with Simula, but I know that
Smalltalk cites it as a significant influence. And I was trying to
distinguish in the C++-family a group of fairly related languages
quite different from Smalltalk.
[1]: <http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html>
-- Scott
[toc] | [prev] | [next] | [standalone]
| From | John Harris <niam@jghnorth.org.uk.invalid> |
|---|---|
| Date | 2016-02-14 11:15 +0000 |
| Message-ID | <gbo0cb9h5d3iq75ovsjqe99bv7pkmavkd3@4ax.com> |
| In reply to | #29597 |
On Sat, 13 Feb 2016 17:50:33 -0800 (PST), Scott Sauyet <scott.sauyet@gmail.com> wrote: >Michael Haufe (TNO) wrote: >> John Harris wrote: <snip> >>> Myself, I prefer C++. For instance, you can make complex numbers, >>> which are unknown to the compiler, look like ordinary numbers, as in >>> complex x, y, z; ... z = 2*x + 3/y; [ ... ] > >That feature, though, is essentially independent of the OO design of >the language. <snip> It's a feature of one of the languages that implements one of the styles of OO. It's relevant when choosing a language given a chosen style. The feature works because operator+ can be, and is, one of the methods of complex objects. Instead of x + y you can write x.operator+(y), but you wouldn't often want to. >>> PS It's not so much the C++ family, it's more the Simula family. > >Is that true? I have not spent any time with Simula, but I know that >Smalltalk cites it as a significant influence. And I was trying to >distinguish in the C++-family a group of fairly related languages >quite different from Smalltalk. <snip> Simula has class declarations that list the objects' data and method items, just like C++ and Java. The relevant textbook is by R J Pooley, but according to Amazon purported new copies cost £1000! John
[toc] | [prev] | [next] | [standalone]
| From | "Michael Haufe (TNO)" <tno@thenewobjective.com> |
|---|---|
| Date | 2016-02-14 11:03 -0800 |
| Message-ID | <3acf3e5d-9955-485b-82da-9d27f1a16393@googlegroups.com> |
| In reply to | #29597 |
On Saturday, February 13, 2016 at 7:50:45 PM UTC-6, Scott Sauyet wrote: > PLT? Programming Language Theory [1] > I assume everyone knows the story of the spacecraft lost to a language > issue, but I wouldn't let that loom too large. Another one was lost to > the inability of the engineers to convince management that it was too > cold to launch, and still another because of an absolutely ridiculous > mismatch between metric and imperial units. I can't find the article at the moment, but you might also recall the case of (AT&T's ?) phone switching system failing due to a missing break statement. Also the notorious Therac-25 [2] > I feel as though bad language design is rife, and that there is little > individual programmers can do about it besides choosing, when they can, > to work with better-designed languages (and of course, writing their > own.) Industry inertia is a bitch, yes. > Honestly, I'd rather know it was written in Haskell or LISP, because > it seems to me that the smartest programmers I know -- and the smartest > ones I know of -- work often in those languages. I'm much more interested > in the strengths of the developers than of the languages they use. The problem though is that regardless of how intelligent they are, or think they are, there is a point where the problem domain is too large and no amount of personal talent and cleverness will help [3]. That's where having a proper language comes into play: A way to delegate, offload, and verify your thoughts as you move on to the next problem, (and not trying to show off by keeping more in your head about a program than the next guy or being a Language Lawyer [4]) I've noticed that there is a tendency among a number of talented developers to try and be too clever and show off in what they develop, then fall flat on their face when they have to go back and look at it a couple months later. > Besides, as I understand it, Ada was merely a successful public works > project designed to keep several thousand roving defense contractors out > of gangs. [1] Politically motivated yes, Legacy yes. Overly complex yes, but it is still a very competent language with a proven track record due to its (excessive?) strict type system + contracts. (See the Wikipedia page as a starter if you haven't already) > > Michael haufe (TNO) wrote: > > This is a trivial extension in the Lisp family of languages. Yet even > > ignoring the syntactic aspect of it, you can add the semantics of > > complex numbers to JavaScript as well by treating the components as > > well... components of an object: > > > >var myNumber = new Complex(a,b) > That is not nearly as convenient, though. There is a big difference > in ease of understanding between John's > > z = 2*x + 3/y > > and > > z = complexAdd(complexMultiply(2, x), complexDivide(3, y)) > > or > > z = x.times(2).add(y.divideInto(3)) > > or some such. See my reply to John on this. Semantics > Syntax, and I was pointing out that using an argument based on Syntax is the wrong place to start. Besides, this will be an irrelevant point in the not too distant future if/when JavaScript gets Value Types [5] > Is that true? I have not spent any time with Simula, but I know that > Smalltalk cites it as a significant influence. And I was trying to > distinguish in the C++-family a group of fairly related languages > quite different from Smalltalk. You can check Genealogical Diagrams [6], also listen to some of Alan Kay's talks on the history. They're on YouTube. [1] <https://en.wikipedia.org/wiki/Programming_language_theory> [2] <https://en.wikipedia.org/wiki/Therac-25> [3] <https://old.lwn.net/2000/0824/a/esr-sharing.php3> [4] <http://c2.com/cgi/wiki?LanguageLawyer> [5] <http://wiki.ecmascript.org/doku.php?id=strawman:value_types> [6] <http://www.levenez.com/lang/lang.pdf>
[toc] | [prev] | [next] | [standalone]
| From | John Harris <niam@jghnorth.org.uk.invalid> |
|---|---|
| Date | 2016-02-15 20:18 +0000 |
| Message-ID | <vhc4cbhfnlgnfh6302qidfgca7pa9mkdmh@4ax.com> |
| In reply to | #29601 |
On Sun, 14 Feb 2016 11:03:28 -0800 (PST), "Michael Haufe (TNO)" <tno@thenewobjective.com> wrote: <snip> >Semantics > Syntax, <snip> Probably, but both < the availability and cost of a compiler, and both > than any other consideration. (No compiler for a language or too expensive means can't choose it.) On the other hand, senior manager says use that one can trump all. (E.g He says competitors use it : Not Invented There can be as powerful as Not Invented Here.) To answer your question, by OO style I mean class-based vs prototypal, message passing vs function call, garbage collection vs object destructors, etc. John
[toc] | [prev] | [next] | [standalone]
| From | Scott Sauyet <scott.sauyet@gmail.com> |
|---|---|
| Date | 2016-02-13 16:54 -0800 |
| Message-ID | <34f34112-ac8f-442a-b7bb-7a749ca5865c@googlegroups.com> |
| In reply to | #29590 |
Michael Haufe (TNO) wrote: > Have you seen the Treaty of Orlando? [1] > > [1] <http://web.media.mit.edu/~lieber/Publications/Treaty-of-Orlando-Treaty-Text.pdf> No, I hadn't. Quite _a propos_, and very interesting. Thanks. -- Scott
[toc] | [prev] | [next] | [standalone]
| From | Danny <dann90038@gmail.com> |
|---|---|
| Date | 2016-02-05 15:00 -0800 |
| Message-ID | <5ef45a41-8837-4f8f-8944-8206280b04db@googlegroups.com> |
| In reply to | #29543 |
To bit-n...@hotmail.com
well, if you need to make a Class for the vegetables
and differentiate them while inheriting, it'd be along
the lines of
function vegetable(colour, family, season, farm_name, sellerID){
this.colour = colour;
this.family = family;
this.season = season;
this.farm_name = farm_name;
this.seller = seller;
this.onHarvest = function(s){
return (this.season.indexOf(s) > 0) ? 1 : 0;
}
}
var potatoes = new vegetable("yellow", "tuberous delicious", "spring", "two guys from italy", 1W2ER589U);
potatoes.onHarvest("autumn") // will return 0 or false
var tomatoes = new vegetable("red", "tomatosum succulentus", "spring-summer", "cow's barn", 4TEY89P);
tomatoes.onHarvest("spring") // will return 1 or true
[toc] | [prev] | [next] | [standalone]
| From | RobG <rgqld@iinet.net.au> |
|---|---|
| Date | 2016-02-06 17:18 +1000 |
| Message-ID | <9cydnYY0F6n_AyjLnZ2dnUU7-fOdnZ2d@westnet.com.au> |
| In reply to | #29543 |
On 6/02/2016 00:55, bit-naughty@hotmail.com wrote:
> Hi,
> OK, I've read about and tried to understand OOP for a long time now, but I don't think I really get it.
Have you tried the MDN article on *this*?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
> This question just popped into my head while mulling the whole thing over:
>
> "this" means *that one*, right? Like, it's a cookie cutter.....?
No. Within a function, *this* is assigned the value of an object (in
non-strict mode), see the article referenced above. It is not a "cookie
cutter".
>
> Then what about this?:
>
> if I have:
>
> function vegetables() {
> this.colour="brown";
> }
>
> and I do both a
> var potatoes = new vegetables() ;
>
> AND a
> var tomatoes = new vegetables();
>
>
> Then BOTH potatoes.colour will be "brown" *AND* tomatoes.colour will be "brown", right.....??!!!
>
> This doesn't sound right......?
When a function is called with the *new* keyword (i.e. as a constructor)
then a new instance of the constructor (or class in other languages) is
created and assigned to its *this* parameter. So *this* references an
object that is a new instance of *vegetables*.
You then create a *colour* property of this new instance and assign it
the value "brown".
The constructor then returns the instance with a brown property.
> Where is my reasoning flawed? Where am I screwing up? This doesn't sound like "this" means *that one*.....?
I don't see any reasoning at all, you expressed a feeling, so maybe your
emotions are flawed? ;-)
--
Rob
[toc] | [prev] | [next] | [standalone]
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Date | 2016-02-06 16:01 +0100 |
| Message-ID | <2195610.4cT6EPdiQK@PointedEars.de> |
| In reply to | #29556 |
Stefan Ram wrote:
> RobG <rgqld@iinet.net.au> writes:
>> Within a function, *this* is assigned the value of an object
>
> That seems to be true.
But it is only true in non-strict mode:
| > typeof (function () { "use strict"; return this; }).call(2)
| < "number"
> It can be exploited to wrap a value into an object!
What you are doing below is conversion, not “wrapping”. It is far simpler
to call the function for a built-in type with the value to be converted as
argument:
> |< function toObject(){ return this; }
> |> undefined
>
> |< typeof 2
> |> "number"
>
> |< typeof toObject.call( 2 )
> |> "object"
new Number(2)
does the same, but also works in strict mode. Still, creating such objects
is unnecessary and recommended against as they cannot be modified and
comparing against references to them tend to yield counter-intuitive
results:
var zeroValue = 0;
var zeroObjectRef = new Number(0);
if (zeroValue)
{
/* code here is not executed as 0 is converted to false */
}
if (zeroObjectRef)
{
/* code here is executed as an object reference is converted to true */
}
Therefore, JSHint issues a warning about that by default.
>> You then create a *colour* property of this new instance and assign it
>> the value "brown".
>
> BTW, ECMAScript uses the spelling »color« IIRC.
There is no built-in “color” or “colour” property in ECMAScript. You are
confusing the DOM (CSS) API with one family of programming languages that it
can be used with (ECMAScript implementations). The OP is *not* using the
DOM (CSS) API; they are creating a user-defined object, so they are free to
use any property name in any language in any spelling that they want
(“colour” is the spelling in British English), it should only refer to what
they are storing as value (and it helps to choose an English name so that
many people can understand your code easily, and you are less likely to have
to use the bracket property accessor syntax).
--
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.
[toc] | [prev] | [next] | [standalone]
Page 2 of 3 — ← Prev page 1 [2] 3 Next page →
Back to top | Article view | comp.lang.javascript
csiph-web