Permalink
Browse files

kill reddit links

  • Loading branch information...
raganwald committed Jul 12, 2015
1 parent bbc0072 commit 7189fb3b7cf9c6a776e0f0eecd45ee157cbc2c87
@@ -173,4 +173,4 @@ What they *really mean* is that JavaScript has metaobjects, not classes.
[C++]: https://en.wikipedia.org/wiki/C%2B%2B
-(discussions on [hacker news](https://news.ycombinator.com/item?id=7084794) and [reddit](http://www.reddit.com/r/javascript/comments/1vlm6f/prototypes_are_not_classes/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=7084794))
@@ -163,7 +163,7 @@ From there, you can go to places like flavouring methods with before- and after-
All this is certainly not *necessary* for writing good JavaScript programs. But if we do buy the proposition that OO is a good idea for our domain, shouldn't we ask ourselves why we aren't using it for our classes?
-(discuss on [hacker news](https://news.ycombinator.com/item?id=7377250) and [reddit](http://www.reddit.com/r/programming/comments/203rlw/writing_oop_using_oop_javascript/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=7377250))
p.s. A few people have pointed out that if you want a subset of classes to share functionality, alternatives such as mixing in traits are superior to subclassing `Class`. This is an **excellent** observation, and it's the kind of thinking this post is trying to provoke: If you start thinking of metaobjects (call them classes if you like) as first-class objects, you start thinking of programming them using the tools and techniques you find most appropriate for programming domain objects.
@@ -655,4 +655,4 @@ We've also seen how to implement "later binding" delegation by delegating or for
We deliberately haven't discussed prototypes or the things you can build with prototypes (like classes). Instead, we take our understanding gleaned from these prototype-less techniques to help us understand what prototypes offer and what tradeoffs they make.
-(discuss on [hacker news](https://news.ycombinator.com/item?id=7566879) and [reddit](http://www.reddit.com/r/javascript/comments/22p3ex/mixins_forwarding_and_delegation_in_javascript/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=7566879))
@@ -368,7 +368,7 @@ This applies to transforming and composing functions, and it also applies to tra
![Harpo Marx and three of his children](/assets/images/harpo.jpg)
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/2478ck/javascript_values_algebra/))
+
---
@@ -60,4 +60,4 @@ Which leaves me offering some free advice: There's plenty of room for new progra
![Harpo Marx and three of his children](/assets/images/harpo.jpg)
-(discuss on [reddit](http://www.reddit.com/r/programming/comments/261cu6/how_to_trick_the_gullible_into_learning_a_new/))
+
@@ -398,7 +398,7 @@ Funny we should mention that. The Clojure and ClojureScript people have systemat
Have a look at Mori. Then consider whether immutable structs could be useful in your code.
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/28gycg/structs_and_immutablestructs/) and [hacker news](https://news.ycombinator.com/item?id=7911134))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=7911134))
---
@@ -253,4 +253,3 @@ var arrayOfSevereProblems = problems.filter(Fubar.is);
There you have it: Constructors that fail when called without `new` are a potential problem, and three solutions we can use are, respectively, auto-instantiation, overloading the constructor, or killing such calls with fire.
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/2acr9f/a_javascript_constructor_problem_and_three/))
@@ -48,6 +48,6 @@ I laugh at the joke about spending 600 months becoming incredibly productive in
Hmmm.
-(discuss on [reddit](http://www.reddit.com/r/programming/comments/2hu3z2/the_600month_learning_curve/))
+
---
@@ -429,7 +429,7 @@ For these and other reasons, almost all languages today make it possible to use
Although we showed how to use tail calls to map and fold over arrays with `[first, ...rest]`, in reality this is not how it ought to be done. But it is an extremely simple illustration of how recursion works when you have a self-similar means of constructing a data structure.
-[hacker news](https://news.ycombinator.com/item?id=9019554) | [reddit](http://www.reddit.com/r/javascript/comments/2v4moc/tail_calls_default_arguments_and_excessive/) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-07-tail-calls-defult-arguments-recycling.md)
+[hacker news](https://news.ycombinator.com/item?id=9019554) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-07-tail-calls-defult-arguments-recycling.md)
---
@@ -271,10 +271,10 @@ The Carpenter smiled. "I forgot about them, it's been a while. So, do They Live?
---
-[hacker news](https://news.ycombinator.com/item?id=9087398) | [reddit](http://www.reddit.com/r/javascript/comments/2wpkm7/interviewing_for_a_javascript_job/) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-21-interviewing-for-a-front-end-job.md)
+[hacker news](https://news.ycombinator.com/item?id=9087398) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-21-interviewing-for-a-front-end-job.md)
---
p.s. [(unlikely to be) The Last Word on Interviewing for a JavaScript Job](http://raganwald.com/2015/02/23/the-last-word-on-interviewing.html)
-p.p.s. The Carpenter probably cribbed the solution from [The "Drunken Walk" Programming Problem](http://raganwald.com/2013/02/17/a-drunken-walk.html), and [Solving the "Drunken Walk" problem with iterators](http://raganwald.com/2013/02/18/drunken-walk-solution.html).
+p.p.s. The Carpenter probably cribbed the solution from [The "Drunken Walk" Programming Problem](http://raganwald.com/2013/02/17/a-drunken-walk.html), and [Solving the "Drunken Walk" problem with iterators](http://raganwald.com/2013/02/18/drunken-walk-solution.html).
@@ -405,4 +405,4 @@ It's just a story, no big deal. But FWIW, I tried to make this about three reaso
---
-[hacker news](https://news.ycombinator.com/item?id=9097297) | [reddit](http://www.reddit.com/r/javascript/comments/2wwdi7/unlikely_to_be_the_last_word_on_interviewing_for/) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-23-the-last-word-on-interviewing.md)
+[hacker news](https://news.ycombinator.com/item?id=9097297) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-02-23-the-last-word-on-interviewing.md)
@@ -616,7 +616,7 @@ p.p.s. Some of this material was originally published in [Reusable Abstractions
---
-| [reddit](http://www.reddit.com/r/javascript/comments/2ytcu1/symmetry_and_decorators_in_es6/) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-03-12-symmetry.md) |
+| [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-03-12-symmetry.md) |
---
@@ -298,7 +298,7 @@ So there's good reason to have left-, right-, and arbitrary partial application
---
-| [reddit](http://www.reddit.com/r/javascript/comments/312kvs/partial_application_in_ecmascript_2015/) | [hacker news](https://news.ycombinator.com/item?id=9307444) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-01-partial-application.md) |
+| [hacker news](https://news.ycombinator.com/item?id=9307444) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-01-partial-application.md) |
---
@@ -208,7 +208,7 @@ ECMAScript 2015 makes it easy to gather parameters or array elements from the ri
---
-| [reddit](http://www.reddit.com/r/javascript/comments/31qsme/leftvariadic_functions_in_javascript/) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-03-left-variadic.md) |
+| [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-03-left-variadic.md) |
---
@@ -309,6 +309,6 @@ He imagines some kind of crazy infinite series of ever-greater cosmological cont
---
-| [reddit](http://www.reddit.com/r/javascript/comments/33vcbq/hilberts_grand_javascript_school_2015_edition/) | [hacker news](https://news.ycombinator.com/item?id=9439479) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-24-hilberts-school.md) |
+| [hacker news](https://news.ycombinator.com/item?id=9439479) | [edit this page](https://github.com/raganwald/raganwald.github.com/edit/master/_posts/2015-04-24-hilberts-school.md) |
---
@@ -217,7 +217,7 @@ So if you are interviewing programmers, here's your homework: Go through all of
I think you'll find that eliminating Carnac the Magnificent from your interviewing process will make it better.
-(discuss on [reddit](http://www.reddit.com/r/programming/comments/35afm0/carnac_the_magnificent/) and [hacker news](https://news.ycombinator.com/item?id=9511700))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9511700))
---
@@ -83,7 +83,7 @@ In sum, JavaScript is not exactly like any other object-oriented programming lan
---
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/35mg2g/oop_javascript_and_socalled_classes/))
+
---
@@ -427,7 +427,7 @@ Whereas, `const` does not make functions simpler than `let`, but does provide a
---
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/382dd6/de_stijl_how_necessary_are_var_let_and_const/) and [hacker news](https://news.ycombinator.com/item?id=9637871))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9637871))
---
@@ -329,7 +329,7 @@ This pattern of creating a class that has private variables emerged from combini
There's no need to have special keywords or magic namespaces. That keeps the "surface area" of the language small, and provides a surprising amount of flexibility. If we want to, we can build mixins, traits, eigenclasses, and all sorts of other constructs that have to be baked into other languages.
-(discuss on [hacker news](https://news.ycombinator.com/item?id=9660658) and [reddit](http://www.reddit.com/r/javascript/comments/38joif/classes_are_expressions_and_why_that_matters/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9660658))
---
@@ -230,7 +230,7 @@ In Ruby, for example, mixins are easy because a special feature, *modules* was b
JavaScript's choice to build OOP out of simple parts--objects, functions, and properties--makes the development of new ideas possible.
-(discuss on [hacker news](https://news.ycombinator.com/item?id=9713076) and [reddit](http://www.reddit.com/r/javascript/comments/39bgl9/prototypes_are_objects_and_why_that_matters/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9713076))
---
@@ -211,7 +211,7 @@ const ColouredTodo = ComposeWithClass(Todo, Coloured);
A "purely functional" approach to composing functionality is appropriate when we wish to compose behaviour with classes, but do not wish to mutate a class that is used elsewhere. One approach is to extend the class into a subclass, and mix behaviour into the newly created subclass.
-(discuss on [hacker news](https://news.ycombinator.com/item?id=9762055) and [reddit](http://www.reddit.com/r/javascript/comments/3aj1t5/purely_functional_composition/))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9762055))
---
@@ -333,6 +333,6 @@ Decorators have not been formally approved, however there are various implementa
If you prefer syntactic sugar that gives the appearance of a declarative construct, combining a `mixin` function with ES7's class decorators does the trick.
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/3b7urd/using_es7_decorators_as_mixins/) and [hacker news](https://news.ycombinator.com/item?id=9786706))
+(discuss on [hacker news](https://news.ycombinator.com/item?id=9786706))
---
@@ -266,7 +266,7 @@ In the end, we can either write specialized decorators designed specifically for
Function decorators can be used as method decorators, provided that we take care to handle `this` properly, and manage state carefully when required. The patterns for creating and using method decorators in JavaScript are straightforward, in large part because underneath the syntactic sugar for classes, we are still working with functions, objects, and delegation through prototypes.
-(discuss on [reddit](http://www.reddit.com/r/javascript/comments/3bj2ti/method_decorators_in_ecmascript_2015_and_beyond/))
+
---
@@ -202,7 +202,7 @@ This maps the array, getting the name if there is a value.
In [Part II], we'll look at a more complex recipe, "partial," and some combinators that are specifically tuned for working with instance methods: "bound," "send," and "fluent." (*cough*). The recipes in this post are from the book [JavaScript Allongé](http://leanpub.com/javascriptallongesix), a book focused on working with functions in JavaScript, including combinators, constructors, methods, and decorators. You can download a [free sample PDF](http://samples.leanpub.com/javascriptallongesix-sample.pdf).
-[Feedback welcome](mailto:reg@braythwayt.com), or discuss these ideas on [reddit](http://www.reddit.com/r/javascript/comments/14we7r/combinator_recipes_for_working_with_objects_in/) and [hacker news](http://news.ycombinator.com/item?id=4925658).
+[Feedback welcome](mailto:reg@braythwayt.com), or discuss these ideas on [hacker news](http://news.ycombinator.com/item?id=4925658).
---

0 comments on commit 7189fb3

Please sign in to comment.