Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk - <AUTHOR> https://blog.metaobject.com/2019/03/lisp-macros-delayed-evaluation-and.html <comment><USER2> That's a common misconception that Lisp macros are mostly used to 'delay' evaluation.

What Smalltalk calls 'blocks' are just (anonymous) functions in Lisp. Books like SICP explain in detail how to use that for delayed evaluation in Lisp/Scheme:

[https://mitpress.mit.edu/sites/default/files/sicp/full- text/...](https://mitpress.mit.edu/sites/default/files/sicp/full- text/book/book-Z-H-24.html#%_sec_3.5)

<comment><USER3> What are lisp macros for if not to delay evaluation? I assume you're making a distinction between purpose and mechanism here?

I've always understood the semantics to be:

fn: (a b c) => (call a (eval b) (eval c))

mac: (a b c) => (eval (call a b c))

<comment><USER2> That might be more like what was called an FEXPR mechanism in some early Lisps or some niche Lisps, or even in languages like R.

[https://en.wikipedia.org/wiki/Fexpr](https://en.wikipedia.org/wiki/Fexpr)

When an FEXPR is called, it gets unevaluated args and can then at runtime decide what to do.

Macros OTOH are a different mechanism, where expressions get rewritten at macro expansion time, which can be for example at compile time. The macro then gets called with arbitrary expressions it encloses (those don't need to be valid code by themselves) and computes new source.

Thus macros are code generators from expressions. In a compiled implementation, macro expansion is done with compilation interleaved: each form gets expanded, even repeatedly until it no longer expands into a macro, and then the resulting non-macro form gets compiled.

Thus in a way a macro does not delay execution, it does the opposite: it actually shifts computation to compile time -> the computation of code from expressions and the computation of arbitrary side effects in the compile-time environment.

In an interpreter version of Lisp, the macro gets also expanded at runtime - but in its own macroexpansion during evaluation. There eval will call the macroexpander repeatedly until it gets a non-macro form.

Now, what can you do with arbitrary complex code generators at compile time? [https://stackoverflow.com/a/2563308/69545](https://stackoverflow.com/a/2563308/69545)

Actually Paul Graham wrote a classical Lisp book explaining a bunch of things around macros. Available here for download:

[http://www.paulgraham.com/onlisp.html](http://www.paulgraham.com/onlisp.html)

The classic Lisp article which motivated the move from FEXPRs to macros:

[https://www.nhplace.com/kent/Papers/Special- Forms.html](https://www.nhplace.com/kent/Papers/Special-Forms.html)

<comment><USER3> I don't think what I wrote is a FEXPR, which doesn't evaluate the result of the function call. I'm having a hard time parsing what you wrote or any of the sources you linked in such a way that says the semantics of macros differs from what I wrote (certainly the implementation gets a lot more complex and there are subtleties).

<comment><USER2> That's why I wrote 'more like'. Given that you haven't defined any semantics of your operators, it's more like a guess.

Not sure if this helps you. But let's define a macro A:

        CL-USER 32 > (defmacro a (b c)
                       (print (list :macro-expansion b c))
                       (list 'print (list 'quote (list :runtime :b b :c c))))
        A

This macro does two things: it prints something at macro expansion time and then generates some code it returns as a value.

Now we can use this macro in some code:

        CL-USER 33 > (defun test ()
                       (a 21 42))
        TEST

If we now compile the function, the macro gets executed and prints something:

        CL-USER 34 > (compile 'test)

        (:MACRO-EXPANSION 21 42)
        TEST
        NIL
        NIL

We can also call the macroexpander independent of the compiler. The we a) get the side effect of the print statement and we see the result:

        CL-USER 35 > (macroexpand '(a 20 30))

        (:MACRO-EXPANSION 20 30)
        (PRINT (QUOTE (:RUNTIME :B 20 :C 30)))
        T

At runtime we call the test function:

      CL-USER 36 > (test)

      (:RUNTIME :B 21 :C 42)  ; <- the printed output
      (:RUNTIME :B 21 :C 42)  ; print also returns its arg

Thus all the macro expansions have been done at compile time and we have generated some code there. No macro expansion at runtime.

Thus it has to do with code generation and code execution at macro expansion - nothing about 'delaying' something.

The example isn't useful, but imagine a macro INFIX

       (infix a * b + c)

which rewrites the expression to the Lisp expression:

       (+ (* a b) c)

There is nothing about 'delaying' -> it's just rewriting the form. Ideally at compile time. There are many other examples which do something different.

<comment><USER4> A normal function call evaluates the arguments and then calls the function.

Because macro expansion does something before evaluating the arguments, you can say that evaluating the arguments has been delayed.

I feel this is just looking at the same thing from two different directions.

Of course, macro expansion does _more_ than just delaying the evaluation of the arguments, and if people say that macros delay evaluating the arguments, you might think that's all they do.

<comment><USER2> > Because macro expansion does something before evaluating the arguments

It does something independent of evaluation. When the code gets compiled, the macroexpander already has transformed the code. The code might never be evaluated in this Lisp. It might be written to disk and later be loaded into another Lisp.

If something does not get evaluated, gets evaluated later, gets always evaluated or never -> that depends on the generated code.

Thus 'delaying' something is the wrong idea and it limits the imagination of what macros are used for. Think of 'general code transformation', often independent of execution in a compilation phase.

</comment></comment></comment></comment></comment></comment></comment><comment> j-pb Lambdas are about delayed evaluation. Macros are about disabling evaluation. Lisp code is just an abstract syntax tree notation format (s-exps) that comes with default evaluation semantics. Macros allow you to disable those evaluation semantics to reuse the AST for a different programming language.

So for example to add pattern matching facilities to the language, you come up with a syntax and its representation in s-exp AST and then write a macro that describes the unification operation using the default semantics.

Same for logic programming or any other paradigm not initially supportet.

Languages like clojure also bootstrap quite a bit of the language from a simpler to implement dialect. (look at all the functions with a * in clj source they're the base language)

<comment><USER2> lambdas are anonymous functions. Macros are code transformers. Lisp code is not an AST.

<comment> j-pb Different name for the same thing, whats your point? Lambdas/AF are used to delay evaluation but keep the default semantics.

Macros are more than simple code transformers, that wording somehow implies that they somehow retain the semantics of the data passed to them, which mighy be the case but is not required at all.

S-Expressions are just a serialisation format for the m-expression AST.

<comment><USER2> Lambdas are just functions. Delaying functionality is just one use of functions.

> that wording somehow implies that they somehow retain the semantics of the > data passed to them

Since they can do arbitrary transformations, retaining semantics is not in focus. Since the input may not have any semantics defined, the semantics is actually provided via the macro implementation.

> S-Expressions are just a serialisation format for the m-expression AST.

S-expressions know nothing about 'syntax'. Thus they can't be an 'abstract syntax tree'. (3 4 +) is a valid s-expression, but carries no information about any syntax (what is the + ? in an s-expression it's just a symbol) and is also an invalid Lisp expression.

An abstract syntax tree would be the result of parsing a program according to some grammar and it would represent the syntactic categories. The parsing stage would already eliminate invalid programs of that programming language.

[https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Ab...](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Abstract_syntax_tree_for_Euclidean_algorithm.svg/800px- Abstract_syntax_tree_for_Euclidean_algorithm.svg.png)

In Lisp it is important that the s-expression is NOT a syntax tree. Otherwise it would be difficult to write macros which violate Lisp syntax.

<comment><USER5> I know you're rigorous and mostly right, but you forget to admit that for most practical uses s-exps encode trees and are used as ad-hoc AST's. People just make implicit grammars based on spec like predicate patterns.

<comment> j-pb He's not even right. He's pseudo rigorous to support is CL zealot trolling.

He made it far enough into the wikipedia article to find a graphic that pseudo supports his claim, but not far enough to actually read the definition of an Abstract Syntax Tree (the thing we talk about) vs Concrete Syntax Tree (the thing he talks about).

> This distinguishes abstract syntax trees from concrete syntax trees, > traditionally designated parse trees, which are typically built by a parser > during the source code translation and compiling process.

<comment><USER2> You might want to reread the Wikipedia article and tone down a bit:

Check out the abstract syntax tree on the right:

      https://en.wikipedia.org/wiki/Abstract_syntax_tree

It has a node which is a BRANCH and which has three relations CONDITION, IF- BODY, ELSE-BODY.

In an s-expression this is just

      (if (> a b)
          (setq a (- a b))
          (setq b (- b a))

Thus there is no representation that IF is a branching expression, there is no representation that A and B are variables. There is no representation that > is a compare op. And so on.

The s-expressions are just nested lists of tokens without any idea what the tokens refers to or what language construct it stands for. All we know is what the tokens are and a hierarchy. A is a symbol, but what kind we don't know: it could be a data object, a variable name, a function name, a goto tag, a name of a class, a name of a type, ...). In the abstract syntax tree the > is identified as a compare op, IF is identified as a branch, A is identified as a variable identifier, ...

The Lisp reader also does not create that information. It just creates a data structure, which could be anything, any kind of data.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Algol 60 is wildly underappreciated, and pass by name[1] is a great example.

[1] [http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html](http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html)

Edit: An elementary error is to assume that call by name is equivalent to pass by reference. It's not.

<comment><AUTHOR> "Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors" \- Hoare

[http://www.computernostalgia.net/articles/algol60.htm](http://www.computernostalgia.net/articles/algol60.htm)

</comment></comment><comment><USER7> Macros work much better in homoiconic languages like Lisp than they do in other languages. Most of the code I write these days is in Elixir and I avoid macros unless absolutely necessary. The benefits generally don't outweigh the (long-term) costs.

<comment><USER2> One of the differences between macros in Lisp and some other languages which provide macros is that the expressions themselves don't need to be valid code in some programming language -> they don't get parsed by a language parser upfront.

Thus I can write a postfix macro and then write code like this:

      (postfix 2 3 + 3 *)

even though Lisp requires code to be nested prefix expressions.

Some other languages won't allow this, because the expression 2 3 + 3 * is not legal in their language. Thus it only may allow macro transformations from legal expressions to other legal expressions...

<comment><AUTHOR> > don't need to be valid code

Yes. One of the examples from the talk was a comment macro. Very cool (and the talk was about fun/cool stuff, not about practicalities).

The question is whether you want that sort of power in day-to-day programming. My guess is no. That's also what the PARC/LRG folks found out with Smalltalk-72. It's also something I hear from some very seasoned LISP hackers. It's also the sense I am getting from these very powerful DSL/LOP workbenches.

From TFA:

 _The reason the question is relevant is, of course, that although it is fun to play around with powerful mechanisms, we should always use the least powerful mechanism that will accomplish our goal, as it will be easier to program with, easier to understand, easier to analyse and build tools for, and easier to maintain._

It's also why I use the C pre-processor _very reluctantly_. Though I do use it. From time to time. And then try to get rid of that use if I can[1]

And no need to explain how much better LISP macros are :-) In a sense, like Smalltalk, LISP may be just too powerful, in the words of Alan Kay "Lisps frequently 'eat their children'" so that there's always an answer (use a macro) that will cut off an interesting question.

[1] [https://blog.metaobject.com/2018/11/refactoring-towards- lang...](https://blog.metaobject.com/2018/11/refactoring-towards- language.html)

<comment><USER8> "we should always use the least powerful mechanism that will accomplish our goal"

I like this when implementing something for non proficient users. But when it comes to providing tools for (supposedly) advanced users, like programmers... There's late-"socialism" joke in Bulgaria: "thrift is mother of misery". A designer doesn't know ahead of time what problems "creative" users will face long term. Providing a set of simplest mechanisms for today's challenges would possibly constrain them in the future - combination of multiple mechanisms in ways not foreseen may add large incidental complexity (like OO design patterns). Which could be avoided if less by count but more powerful mechanisms were used in first place. Macros have main role in keeping Common Lisp relevant to the latest paradigm hypes despite the standard being set in stone. Opposite to this, for example, C++ must keep introducing piles of new least-powerful mechanisms to keep pace.

<comment><AUTHOR> >> ... _use_ the least powerful mechanism ...

> ... _providing_ tools ...

Use ≠ provide. :-)

See:

 _The Rule of Least Power_ , Tim Berners-Lee

[https://www.w3.org/2001/tag/doc/leastPower.html](https://www.w3.org/2001/tag/doc/leastPower.html)

See also:

 _Rule of least expressiveness_

When programming a component, the right computation model for the component is the least expressive model that results in a natural program.

From _Concepts, Techniques, and Models of Computer Programming_ , Peter van Roy, [https://www.info.ucl.ac.be/~pvr/book.html](https://www.info.ucl.ac.be/~pvr/book.html)

<comment><USER8> I was more after

> The question is whether you want that sort of power in day-to-day > programming

It's good to use the least powerful mechanism, no doubt. But it seems you are trying to sneak the usual "macros are too powerful for everyday use" so better be left out of a language altogether? I think when the storm comes - you'd better be equipped. Having varied ways to tackle problems (and macros are sort of linguistic abstraction orthogonal to lambda calculus/Turing machine derived toolboxes) allows for less complex solutions.

<comment><AUTHOR> > sneak the usual "macros are too powerful for everyday use"

Not trying to "sneak" anything, I openly say that language design, which is what macro usage is, is not something you should have to engage in everyday. In fact, I would turn it around: if you have to (repeatedly) resort to language design in your everyday programming, your programming language is (woefully) inadequate. Most are.

Which is why the reasons for hitting that boundary interest me: where do I have to resort to metaprogramming, why, and what can I do about it? What non- metaprongramming facilities are missing here so that I don't have to resort to metaprogramming? And if I don't want to just add those facilities to the base, which I don't, what mechanisms can I add to the language so that users of the language can use plain, non-meta mechanisms to provide those facilities themselves?

This is a bit tricky, but I am making good progress using a software architectural approach[1], with frequent surprises as to how much simpler things can be.

> left out of a language altogether?

Quite the contrary. I think "escape hatches" (metaprogramming) are fundamental and your everyday language(s) should be built 100% on top of those mechanisms. Heck, I named my company "metaobject"[2] 20 years ago, after _The Art of Metaobject Protocol_.

[1] [http://objective.st/](http://objective.st/)

[2] [http://www.metaobject.com/](http://www.metaobject.com/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Scala has implemented support for async-await syntax using its experimental macros: [https://docs.scala-lang.org/sips/async.html](https://docs.scala- lang.org/sips/async.html)

Just an example of how powerful macros can be.

They also have an example in their docs about implementing printf using a macro so that formatting parameters are typechecked.

</comment><comment><USER10> There is whole set of "with-x" macros that aren't about delayed evaluation.

<comment><USER6> What's the with-x macro that isn't providing dynamic extent, that is, delaying execution of some cleanup logic?

<comment><USER11> Consider for example CL:WITH-SLOTS, or CL-WHO:WITH-HTML-OUTPUT... such macros establish context, and are not really about delaying evaluation. On Lisp has a section about uses of macros, which is not exhaustive, but shows there's more to them than "delayed evaluation".

</comment></comment></comment><comment><USER12> Lisp user here. I'll chime in with another example of using macros for more than just delaying evaluation.

I wrote a library called Chancery[1] for procedurally generating strings (and other data). It's inspired by Tracery[2] but takes advantage of macros to make it easier to read and feel more like part of the language. I use it to write stupid Twitter bots like [https://twitter.com/git_commands](https://twitter.com/git_commands) and [https://twitter.com/rpg_shopkeeper](https://twitter.com/rpg_shopkeeper) for fun.

As an example let's say we want to generate a message about the loot we receive from a monster in a fantasy, D&D-style story. Maybe we'll start with some random weapons:

        (chancery:define-string weapon-type
          "sword"
          "spear"
          "lance"
          "flail"
          "mace")

        (weapon-type) ; => "mace"
        (weapon-type) ; => "sword"

This expands like so:

        (macroexpand-1
          '(chancery:define-string weapon-type
            "sword"
            "spear"
            "lance"
            "flail"
            "mace"))
        ; =>
        (DEFUN WEAPON-TYPE ()
          (CASE (CHANCERY::CHANCERY-RANDOM 5)
            (0 "sword")
            (1 "spear")
            (2 "lance")
            (3 "flail")
            (4 "mace")))

This simple case actually _could_ be done just by delaying evaluation, as long as we get every body clause as a separate thunk. Now let's define a rule for generating the material of a weapon:

        (chancery:define-string (weapon-material :distribution :weighted)
          (100 "iron")
          (40 "steel")
          (5 "silver")
          (4 "gold")
          (1 "adamantine"))

This will generate the materials according to a weighted distribution, and macroexpands to:

        (DEFUN WEAPON-MATERIAL ()
          (CASE (CHANCERY::WEIGHTLIST-RANDOM #<CHANCERY::WEIGHTLIST ((100 0) (40 1) ...)>)
            (0 "iron")
            (1 "steel")
            (2 "silver")
            (3 "gold")
            (4 "adamantine")))

This case needs more than just delayed evaluation. If you receive `(100 "iron")` as an opaque thunk, where all you can do is evaluate it, there's no way to pull out the weight and body components.

If we add a few more rules, we can see more cases where we need to go beyond delayed evaluation:

        (defun currency-amount ()
          (+ 10 (random 100)))

        (chancery:define-string (currency-type :distribution :zipf)
          "copper"
          "silver"
          "gold"
          "platinum")

        (chancery:define-string loot
          #((weapon-material weapon-type) chancery:a)
          (currency-amount currency-type "coins"))

        (chancery:define-string discovery
          ("You open the chest and find" loot :. ".")
          ("You find" loot "in the monster's hidden stash.")
          ("You find nothing but dust and cobwebs."))

        (discovery) ; => "You find nothing but dust and cobwebs."
        (discovery) ; => "You find an iron sword in the monster's hidden stash."
        (discovery) ; => "You find 61 copper coins in the monster's hidden stash."
        (discovery) ; => "You open the chest and find a steel sword."

Macroexpanding the last one:

        (DEFUN DISCOVERY ()
          (CASE (CHANCERY::CHANCERY-RANDOM 3)
            (0 (CHANCERY::JOIN-STRING "You open the chest and find"
                                      (PRINC-TO-STRING #\ )
                                      (LOOT)
                                      "."))
            (1 (CHANCERY::JOIN-STRING "You find"
                                      (PRINC-TO-STRING #\ )
                                      (LOOT)
                                      (PRINC-TO-STRING #\ )
                                      "in the monster's hidden stash."))
            (2 (CHANCERY::JOIN-STRING "You find nothing but dust and cobwebs."))))

Here we can see the macro walking the lists and doing different things to each element: strings are included raw, symbols are turned into function calls, and the special keyword :. suppresses the usual joining space character inserted between everything. There's also some special handling of vectors, in the LOOT example, which I won't go into. This is more than just delayed evaluation — we're inspecting the actual structure of the code received by the macro at macroexpansion time. If all we had were an opaque thunk that we could evaluate later, we couldn't do this.

Delayed evaluation is enough for certain kinds of abstraction, like writing basic control structures, but isn't as powerful as full macros. Macros let you transform arbitrary code into other arbitrary code using the full power of the language.

[1]: [https://sjl.bitbucket.io/chancery/](https://sjl.bitbucket.io/chancery/) [2]: [http://tracery.io/](http://tracery.io/)</comment>


Non-Von Neumann Supercomputer in an FPGA - <AUTHOR> http://www.chrisfenton.com/non-von-1/

<comment><USER2> There are a few recreations of old supercomputers using FPGA, so it's nice to add this one to the list.

([http://www.chrisfenton.com/homebrew- cray-1a/](http://www.chrisfenton.com/homebrew-cray-1a/))

and here are a few more (mostly home computers)

([https://news.ycombinator.com/item?id=4931867](https://news.ycombinator.com/item?id=4931867))

</comment><comment><USER3> Dear lord, the comment spam!

Anyway, this architecture is actually quite similar to the design of modern GPUs.

</comment><comment><USER4> 31 small nodes arranged in a binary tree. Communication between parent and children.

</comment><comment><USER5> cached version: [http://web.archive.org/web/20130314085338/http://www.chrisfe...](http://web.archive.org/web/20130314085338/http://www.chrisfenton.com/non- von-1/)

</comment><comment><USER6> I'd like to hear more about how these kinds of architectures were programmed. I know about scalar kernels being applied in lockstep across data-parallel arrays. What other patterns were there?

</comment><comment><USER7> PIC 16F84 is also non-von neumann

<comment><USER8> Most microcontrollers are. Makes certain bits of design and coding a lot easier. The AVR, some ARM Cortex Ms, etc, share that.

<comment><USER9> As far as I know, all ARM CPUs are Von Neumann, in that they use the same memory space for instructions and data. The program is often stored in read- only memory (flash), but it's in the same space as SRAM and hardware registers.

AVR, on the other hand, is a Harvard architecture, as the program does not exist in the same address space as data. It is possible to read from program memory, but only using special-purpose instructions. I believe the same goes for PIC, but I'm not as familiar with it.

The description of this machine isn't quite detailed enough for me to say for sure, but I think it may be a Von Neumann architecture, if only because I don't see any labeled instruction memory. I may be misunderstanding how it's supposed to work, though.

<comment><USER8> The Cortex-M3 and M4 ARMs are Mostly Harvard; just pored through the datasheets to make sure. The first half a gig of address space has a separate bus for code and data, and then has yet another bus for all the memory space above that. They're weird little chips.

<comment><USER9> It's all the same data and the same address space, though. The first half-gig or so of memory is all flash ROM, so the separate bus just gives the CPU an extra load per cycle (so it can load data from ROM without a wait state). This doesn't make it a Harvard architecture, it just makes it faster.</comment></comment></comment></comment></comment>


A.I. (1981) - <AUTHOR> http://www.newyorker.com/magazine/1981/12/14/a-i <comment> david-given "This thing was going one day when a friend of mine named Edward Fredkin, who's a professor of computer science at M.I.T., came in, and he said, 'That sounds pretty good. How did you get it to make those sounds?' I showed him, and we spent the afternoon making more sounds. Fredkin formed a company to manufacture the machines as toys.""

I believe this is it:

[http://createdigitalmusic.com/2014/06/meet-strange- wonderful...](http://createdigitalmusic.com/2014/06/meet-strange- wonderful-70s-machine-used-ai-make-music/)

</comment><comment><USER2> "At one point the overhead lights dimmed, the orchestra began playing the theme of the film "Star Wars," and a spotlight focused on an opening in the stage curtain through which Gammonoid was supposed to propel itself onto the stage. To my dismay the robot got entangled in the curtain and its appearance was delayed for five minutes."

</comment><comment><USER3> It is a long article but a one well worthy of the time spent reading. It is not a "on my way home" type of read.

I specially enjoyed the last paragraphs where Minsky describes how he envisions A.I. development in the future. That he is not seeking a single unifying theory of human brain, but rather, several smaller theories that in the end will create a complete picture of how human brain functions.

</comment><comment><USER4> As in this article, there will be lots of whitewashing of the relationship between Minsky and Rosenblatt today, I'm afraid:

[https://en.wikipedia.org/wiki/Perceptrons_(book)](https://en.wikipedia.org/wiki/Perceptrons_\(book\))

<comment><USER5> Not sure I understand. This article is 35 years old. Its hard for it to white- wash anything. Did I mis-understand?

</comment></comment><comment><USER6> The bulk of this is various biographical anecdotes about Marvin Minsky; perhaps the HN submission title might reflect that?

</comment><comment><USER7> IMHO this article is terrible.

Aside from the atrocious size it both meanders along on screen-length paragraphs and then jumps between decades, characters, and quotes.

Who the hell can read something like this? Word count and editing matters even if we don't have physical pages to constrain the text anymore.

Sloppy sloppy journalism.

<comment><USER8> Having only read the first half, I find the article interesting and well- written, especially Minsky's quote on how belief in 'free will' is based on an incomplete understanding on human activity; and also how he wires up the circuits to use audio for debugging (That is such a cool idea).

Who the hell can read something like this and not enjoy it?

Gonna read last half now.

By the way, how is this to make sense?:

> Word count and editing matters even if we don't have physical pages to > constrain the text anymore.

It's written in 1981, it says on the top. With lines like these, it should be difficult to overlook:

"Several times while I was there, Minsky paused to read his "mail"—messages on the terminal's printout system."

<comment><USER9> Agreed...current attention spans, well, they're not what they used to be...

The New Yorker, through the years, has produced as much quality long-form content as any magazine in the history of North American journalism...this article is no exception...I'll leave it at that...

<comment><USER10> It's amazing how attention spans have been declining for the entire history of the human race. It beggars belief that we could have declined so far and still have the ability to bemoan the young.</comment></comment></comment></comment>


Bing Keeps Rising - <AUTHOR> http://bits.blogs.nytimes.com/2009/08/17/bing-keeps-rising/?ref=technology <comment><USER2> "For Microsoft, which is poised to take over search at Yahoo, a loss of share at Yahoo is hardly good news. ComScore is now reporting combined results for Yahoo and Bing: they inched up very modestly to 28.2 percent, up from 28 percent in June."

The article doesn't report serious encroachment on Google yet. I'm still trying out Bing any time Google doesn't please me (as most recently when I was mapping a driving trip to a place I had never been before), but so far Bing isn't pleasing me any better.

<comment><USER3> It's not fair to combine the two since there will be some cross searching and Yahoo users who will not use Bing but like Google, and all that. When the actual merger takes place, I'd bet the combined total actually goes down by a few points.

<comment><USER3> What I really wanted to say was this "news" of a 3/10 point increase is not relevent, much like Bing results.

<comment><USER4> The increase is not relevant to what?

Also, for what it's worth, I now use Bing as my primary search engine and find it produces highly relevant results. I attribute this to performing tightly targeted search queries. I feel that Google is still better for serendipitous (exploring type) searches.

<comment><USER5> "The increase is not relevant to what?"

I think he is saying it is statistically irrelevant. Such a small increase in such a small time period could be random "noise".

<comment><USER6> You know in this world 1% means 1 billion</comment></comment></comment></comment></comment></comment>


Parents coordinate trading of chicken pox-laced goods via Facebook - <AUTHOR> http://blog.sfgate.com/sfmoms/2011/11/04/parents-ordering-chicken-pox-lollipops-through-facebook/

<comment><USER2> The stupider the people get, the more regulations and laws need to be passed to regulate them.

These individuals need to be punished, and if they don't stop, children taken away from them. I don't see this any different than harsh physical abuse.

All those participating in it, should be guilty of child endangerment as well.

In general those refusing to vaccinate their child should be forced to sign a waver form that would make it very easy to fast-track their prosecution for abuse and child endangerment if it can be shown the child has been infected and their life is in danger or has infected others.

<comment><USER3> What do you say the relative of someone who had a vaccine and immediately became crippled and couldn't walk because the reaction damaged their inner- ear? Just co-incidence? No p-value with a sample of one? Would you make them take that vaccine? Or let 'em slide on this one? I'm not sure your government regulations would deal with this case.

The immune system is an organ like the muscles, brain and heart. Putting a little stress on these organs is actually good. Just because the autism/vaccine fiasco was fraud doesn't invalidate all concerns. For instance the school system forcing girls to get "anti-cancer" vaccines when there is an effect alternative (i.e. "dont' be a promiscuous"). The parents can make that choice ... or the kid when she becomes a teenager. If polio or small-pox are threats, certainly the good out weighs the bad. But chicken-pox? Not so clear cut. AIDS? Again, don't sleep around and dont jab things in your body and you won't get AIDS.

<comment><USER4> re no need for a hypothetical aids vaccine (or the cervical cancer one) if you don't "sleep around" or take drugs:

I assume that you've never heard about rape? Or for that matter coming into contact with HIV positive blood in an accident, or any other infection vector?

<comment><USER3> Yes. I have heard about "other infection vectors" with AIDS. I'm guessing the double entendre of "jab things into your body" escaped you.

<comment><USER4> "jab things into your body" is not the only such vector. There is also "having things jabbed into your body" (a subtle but important distinction).

Your post implies that if someone is infected with the HIV virus it's their own fault. This assumption is toxic, and makes people more hesitant to apply resources towards trying to treat and cure people with this disease. It's like telling a person with lung cancer that "It's your own damn fault for smoking" when it is perfectly possible to develop lung cancer without ever having a smoke.

</comment></comment></comment></comment></comment><comment><USER5> I don't really see the hate for these people. You get the chicken pox once. The earlier in life you get it, the less troublesome it is.

I'm not going to argue against vaccinations, but the reality is that we have much more long-term data about having kids play together than the chicken pox vaccine. Both options are probably equally good at this point, and most people have personal experience with the first one and not the second one. Therefore it's not particularly odd to want your kid to get chicken pox naturally.

(I don't buy the argument about "giving the immune system a workout", though.)

<comment><USER6> >You get the chicken pox once.

False.

<http://en.wikipedia.org/wiki/Shingles>

<comment><USER7> Strictly speaking, it's not the same as Chickenpox, especially in symptoms and effect.

</comment></comment></comment><comment><USER8> You can believe the unknowns associated with the new chicken pox vaccine aren't worth the well-known and manageable hassle of having the chicken pox, without _also_ believing crazy things about vaccines causing autism or sending infections through the mail.

<comment><USER9> Exactly.

Inviting around other local kids to interact with each other to overcome the much heavier risks of the adult version of this disease or to go on frequent field trips to farms and rural areas while young so that kids bodies are no strangers to naturally occurring organisms and strengthen their immune system is VERY different from sending around contagions in the mail!

Risking affecting others without them knowing is very much a red line most sensible people would never cross.

</comment></comment><comment><USER10> Mailing contagious items: Not cool.

Local "pox party": I have no problem with it.

My ex caught chicken pox from our children around the time he turned 32. Chicken pox in adults is much more serious than in children. I finally dragged him to a doctor against his will after watching his fever go up 0.8 degrees a day every single day until it was over 104F. Above 105 is dangerous. It was on track to hit that mark within the next 24 hours. Years later, he swore it was never really that bad (ie his life was never really in danger). I suspect he partly just didn't remember how bad it was. He wasn't lucid for much of the time. He was left with much worse scars than the kids. He had fantasies he would stay home from work and play computer games, like the kids. For at least a week, he laid on the couch, unable to sit up for long. I had to leave meds in a covered candy dish to get any sleep. His hands were swollen and his palms had spots on them, so he couldn't open his medication bottles.

<comment><USER11> s/Not cool/Illegal/

IIRC

And, that would be violation of Federal law. Documented on FB?... No thanks.

My father caught chicken pox as an adult, while travelling. It nearly killed him.

P.S. Looked at the story (duh). Says the same thing. Anyway, I'll leave my personal anecdote FWIW.

<comment><USER10> I imagine it is illegal (someone else already said that here). Law and morality are not the same thing and are fairly often at odds. Historically in the US, slavery was legal at one time in some states. After it was abolished, racism was embodied in the legal code. Plenty of morally high minded people disagreed with those laws.

Whether legal or not, I don't find it acceptable. Similarly, on CF lists, people routinely post announcements that they have leftover medical supplies of some sort and are willing to give it away for free (sometimes on the condition that the recipient cover postage, sometimes not). This is generally viewed as socially acceptable on most CF lists because medical expenses for CF are extremely high and people coping with CF are typically financially devastated by that fact. On the only CF list I own, I announced that this was not an acceptable practice because I think the price of exposure to the germs of another person with CF outweighs the value of the supplies. So I think that's Not Cool either, even in cases where it happens to be legal (and legality of it varies by jurisdiction in this case and probably also depends on exactly what is being offered).

<comment><USER11> Given the way entrenched interests warp and these days even write the laws, I try to keep an independent mindset.

In this case, I have two points:

\- If you're going to do something like this, coordinating it on FB is a stupid idea. (Mailing contagious materials without taking defined precautions is seriously frowned upon.)

\- Mail is sometimes inspected. Misdelivered. Undeliverable. Damaged. In this case, it is most likely not marked as hazardous. What might one be inflicting upon the unsuspecting handler of such an error condition?

<comment><USER10> _If you're going to do something like this, coordinating it on FB is a stupid idea._

Yes, I totally agree that coordinating something like this on FB (or many other websites) is pretty darn dumb. (Isn't there some Einstein quote about stupidity being infinite or something?)

As for your second point, I was an environmental studies major for a time. I really don't think most people think that far ahead. I hope, if nothing else, this does draw enough national attention to educate people as to how foolish and dangerous it is to mail contagious items. And, oh, breaking federal law by messing with the mail is very serious business. Much more so than many people might realize. Even if they don't get enlightened as to how dumb this is, perhaps they will at least get a clue that this detail is no small matter and can seriously impact their lives. I'm very okay with fear of the law being a deterrent to such activities in cases where "common sense" seems absent.</comment></comment></comment></comment></comment>


PC Drivers for the Xbox One Controller - <AUTHOR> http://majornelson.com/2014/06/05/pc-drivers-for-the-xbox-one-controller-available-now/?linkId=8424381 <comment><USER2> No offense against the Xbox One controller (which I do enjoy using), but I think for my casual on-the-road or in my room gaming on my laptop I'll just keep on using my PS4 Controller (I didn't get a PS4, but the $60 on the controller was well spent :-).

Instructions for PC setup can be found here: [http://forums.pcsx2.net/Thread- DS4-To-XInput-Wrapper](http://forums.pcsx2.net/Thread-DS4-To-XInput-Wrapper)

It's really nice not to have to worry about extra wires :-).

It makes me wonder why there aren't more Bluetooth PC controllers out there (I really haven't seen too many, maybe like one from Logitech, but none of them are as good as the console ones anyway so it's a moot point for me).

<comment><USER3> Most gaming PCs don't have inbuilt bluetooth.

Everyone has USB.

<comment><USER4> A bluetooth module costs a dollar and is the size of a USB plug. The aversion to bluetooth is _weird_.

<comment><USER5> PC gaming culture is defined by one guy in front of his box/laptop. Wireless controllers for console make sense because its usually multiple people many feet away from a TV.

I don't want a wireless controller for my PC. Its just more needless complexity. I don't want to worry about batteries for something that I use 2 feet from my PC.

</comment></comment></comment></comment><comment><USER6> I've been waiting for this for a long time. The Xbox One controller has many small improvements that build up to a noticeable difference over the Xbox 360 controller I've been using to play games like Watch Dogs on the PC. It's vastly more comfortable for extended sessions.

</comment><comment><USER7> I'm more interesting in the fact that he is showing Halo 2 running on (what I'm guessing) is the microsoft surface. It seems like a strange choice to choose a game that is almost 10 years old unless he is hinting that Halo 2 Anniversary is also coming to PC?

<comment><USER8> Halo 2 was also the very first game to officially support the XInput API of the X360 controller on Windows, so he might be paying homage to it by showing that the first game running with the Xbox One controller is nothing else but Halo 2.

</comment></comment><comment><USER9> Once the wireless dongle gets released then I will jump in. Not a big fan of having to plug it in. For now I'll stick with the 360 controller I have.

</comment><comment><USER10> What are the new features of the Xbox One controller as compared to those of the Xbox 360 one ?

<comment><USER5> I'm not much of a console gamer but I own both systems and occasionally play the newest hyped game on them, finish it, and don't touch it for months, but in imho they new one feels a lot better in my hands. I think it has a lower profile, is somewhat smaller, and is definitely lighter.

The 360 controller just feels like a brick in my hands now.

</comment></comment><comment><USER11> What about wireless support?

<comment><USER12> For the Xbox 360, the wireless controllers communicate wirelessly _even while plugged in_. There's a dongle you can purchase to make it work, though I believe it's discontinued. I wouldn't expect one for the Xbox One controller.

<comment><USER13> You can still buy it as part of a controller bundle for now: [http://www.amazon.com/Microsoft-Xbox-Wireless-Controller- Win...](http://www.amazon.com/Microsoft-Xbox-Wireless-Controller- Windows/dp/B004QRKWKQ)

Not sure if Amazon is just working through the remainder of their stock though if it is discontinued (they're listed as a seller on the right since some third part one is like a dime cheaper). I never was able to find the Microsoft dongle alone without the controller though so perhaps they did discontinue it.

Not a bad price for both the dongle and a controller though and always nice to have another one for when friends stop by for some Sonic Racing.

</comment></comment></comment><comment><USER14> The text

> We're planning to release the drivers as part of a Windows update in the > near future; however, today, I am happy to offer early access to our > dedicated PC gamers on MajorNelson.com.

screamed "trojan" to me when I read it. It sounded like a random site was claiming to be affiliated with Microsoft, and was trying to get me to download and install a malicious driver. (The comments say the driver has a signature that Windows does not recognize.)

However, the site does seem legitimate. [http://majornelson.com/general-blog- faq/](http://majornelson.com/general-blog-faq/) explains who the site owner is: [https://en.wikipedia.org/wiki/Larry_Hryb](https://en.wikipedia.org/wiki/Larry_Hryb), the Director of Programming for Xbox Live. And the site has many real commenters who seem to treat the site owner as an authority.

<comment><USER15> Yes, MajorNelson is fairly well-known in the Xbox-using community (actually better known by the pseudonym than as Larry Hryb). He really is Microsoft's Xbox Live director.

<comment><USER16> But this is about a software release for the PC gaming community, not the Xbox community. Handling things this way shows that somebody's got an embarrassing (though mostly harmless) PR blind spot. It's fine for Microsoft to have it as a goal that everyone who plays PC games is also part of their Xbox ecosystem, but pretending in any way that it's already that way is off-putting and not helping.

<comment><USER15> At the moment, this release is targeting the Xbox community, because that's who owns Xbox One controllers. I'm sure Microsoft will do a proper page on a more Microsofty domain in due time when they actually release the drivers with Windows.

<comment><USER16> > _" I am happy to offer early access to our dedicated PC gamers on > MajorNelson.com_"

There's a definite conflict between the statement that they're targeting "dedicated PC gamers" and the action that they're doing it through the Xbox community. Come to think of it, does Microsoft even _have_ an established gaming-oriented channel through which to release something like this apart from their console-oriented Xbox branded stuff?

</comment></comment></comment></comment></comment><comment><USER17> Am I missing something, or did they just break backwards compatibility _again?_ Bad enough the first time around, when they conned a bunch of lazy- ass devs into only supporting 360 pads and our standard USB gamepads stopped working.

I try to avoid knee-jerk Microsoft bashing, but they're really making it hard.

<comment><USER17> I genuinely have no idea why this is getting downvotes. Was I not clear? I thought we were all on the same page here re: "standards are good, pointlessly breaking compatibility is bad."

There's an established standard for USB gamepads, and Microsoft (a) ignored it in favor of their own proprietary standard Xinput and (b) convinced quite a lot of devs to only support Xinput. This means that a perfectly functional Logitech or Saitek gamepad from the late 2000s is useless with modern games, and a 360 pad is useless with older games, unless you jump through hoops with drivers. It also means that it's difficult to get a 360 pad working correctly on non-Windows platforms.

It makes no sense that the Xbone controller, which has the same controls in the same places as the 360 controller, wasn't backwards-compatible out of the box; and I'm suspicious that they'll push devs to support the Xbone pad exclusively to force 360-pad owners to upgrade, because they've already done that once.

<comment><USER18> What were they doing to "convince a lot of devs to only support XInput"?

[http://msdn.microsoft.com/en- us/library/windows/desktop/ee41...](http://msdn.microsoft.com/en- us/library/windows/desktop/ee417014\(v=vs.85\).aspx)

<comment><USER17> For starters, as your link says, the analog trigger buttons don't work properly in DirectInput. Instead of registering as two independent axes, they show up as Left and Right on the same axis, so pressing both triggers at once looks the same as no-input. The triggers are generally the preferred control for primary buttons, so for all practical purposes XInput is required if you want to support the 360 pad.

(Their explanation is "the Xbox 360 controller was designed to register minimum value, not center, when the triggers are not being held." Seems like the obvious solution would be "don't do that.")</comment></comment></comment></comment>


Advanced prototyping - <AUTHOR> http://chrishecker.com/Advanced_Prototyping

<comment><AUTHOR> It's focused in games, but I think most lessons apply to all software prototyping.

Be sure not to miss the .mp3 to listen to while you browse through the slides.</comment>


Christopher Hitchens on the Oklahoma bombing and the Republican big tent (1995) - <AUTHOR> https://www.lrb.co.uk/the-paper/v17/n10/christopher-hitchens/look-over-your-shoulder <comment><USER2> A quarter-century later, it's hard not to look back on folks like Newt Gingrich and not see clear and present signs of proto-fascism. His talk of anti-liberalism has not wavered and still supports these domestic militias and terrorist groups.

Curiously, a quarter-century later, with fascists in the White House, we have not yet discovered the temerity to call out any but the worst of this conduct as it really is. To this day, we are unable to confront the costs to human life of our detention centers, our world policing actions, our arms deals, our political interference, our assassinations. We seem to have internalized the idea that, on occasion, folks will be bombed, including us.</comment>


Ask HN: Gift Giving Suggestions - <AUTHOR> Curious what gifts you're giving this year. Whether to your employees, investors, friends, or family, I'm curious what's on the top of your list. I've been buying a bunch of Amazon Echos and occasionally pairing with Philips Hue bulbs. Share yours below. Thanks! <comment><USER2> Code inspired clothing on the lower end of price points.

I like the "OR 1=1" hoodie.

[https://codegear.io](https://codegear.io)

</comment><comment><AUTHOR> Echo Dot (2nd gen) -- currently $39.99 [https://www.amazon.com/All-New-Echo- Dot-2nd-Generation/dp/B0...](https://www.amazon.com/All-New-Echo-Dot-2nd- Generation/dp/B015TJD0Y4)</comment>


The Permission We Already Have - <AUTHOR> http://bldgblog.blogspot.com/2010/09/permission-we-already-have.html <comment><USER2> Fun fact about the permission Canadians have: on federal owned land that is at least a certain distance of owned land, and isn't a park or plot for a federal structure, you can just build a small shack without permits or anything. Just live in nature for free. If loggers come, you get 60 days to relocate your shack. And yes, some guys have built a series of shacks. Of course you don't get easy (legal) hydro access.

<comment><USER3> Simply reducing and using solar or a small wind turbine would be adequate. I know when I'm out in the country, I prefer reading than ever even looking at a TV.

Honestly Kindle + Laptop + LED Lighting would be the bare minimum I could get away with. Get a good spot and you could get 3G-wireless for your shack, especially if you're 'shacking' in an elevated area.

I would be interested in the definition of 'small shack', because IIRC the Iroquois frequently built longhouses out of poles and woven bark that could stretch hundreds of meters long and a good dozen wide. If not length, does height count? Does a hunting hide count as a shack? If a 20+ft hunting hide counts as a shack, does a multi-story shack count as a 'small shack' by the ground space it occupies?

Furthermore, is there any legal restriction on how many shacks can be put on a small location. IE would a shantytown be fully legal here in Canada?

Finally, I wonder if Canada still has the common-law practice that prolonged use of a property means its ownership will default to you and does this apply to just unused private land or federal too.

<comment><USER4> you are forgetting that most of canada is quite 'north' and therefore cold.

i like being inside a real building, with heating. YMMV.

<comment><USER3> Heating /= electricity. Most houses are heated via propane or oil, you could take a small propane or oil heater and bring the largest portable propane tank you can muster, or bring your own oil supply. Finally, living surrounded by forest would provide a great supply of firewood for a wood stove.

I work in siding, we use expanded polystyrene foam as insulation. 1" provides an R-value of 5.0 (fiberglass, which is in the majority of homes is only between 3.1 to 4.3) add a silvered side over an air gap (IE place it over a stud wall) adds R1 and if you take your time you can get an air gap in front and behind of the insulation making it an R6. Which is a considerable R-value boost with very little material.

You could literally flat-pack build your house. Plywood, baton, insulation, baton, plywood. This would get you about an R-11 wall within 4-5". The 4 walls, ceiling and floor made this way would get you a 6" cube that you could easily fit it in a truck bed. You wouldn't have to abandon your shack should loggers come by.

Given that I've worked on houses that were literally drywall onto stud with drywall + aluminum siding exterior. You'd do better in winter in my shack than that house lol.

<comment><USER2> That is pretty awesome, I took a building science course while studying structural engineering and I learned a ton about R values. There are these crazy building blocks with just astronomical levels to the point where it is silly. They don't even consider the numbers comparable because the ratio of heat that you lose when you open and close the door more than makes up the marginal difference.

As for the original point (free land!) I plan to build a very small cabin up north, but I really would prefer easy road access and electricity so I've ruled out the federal land route, at least for now.

</comment></comment></comment></comment></comment><comment><USER5> When this is good: when the bounds of permission are set by an entity which has no legitimate right to restrict an action. See: Rosa Parks sitting at the front of the bus.

When this is bad: when the bounds of permission are set by an entity that has all legitimate rights to restrict an action. See: Police officer tasering someone in a case where it's not necessary.

Bringing down the level of seriousness a few notches, it's interesting to think of what these brightlines are and how wide the gray area is between them. For instance, was Google's launch of Buzz an abuse of the permissions users had granted it for email? What about Facebook's feature rollout earlier this summer? When does a service provider cross the line when it provides new functionality that its users may not have explicitly asked for or agreed to when they signed up?

</comment><comment><USER6> Sure, in most places you can build anything that isn't outlawed. Scott Adams' column about green building speaks to how the building and construction trades are geared toward building to permits. In most places I'd bet a person would have a hard time finding a builder to make "storage chimneys."

[http://online.wsj.com/article/SB1000142405274870486860457543...](http://online.wsj.com/article/SB10001424052748704868604575433620189923744.html)

<comment><USER7> It's not just finding someone to build them, it's getting permission.

The first question the bulding department is going to ask, is, "what are you going to be burning that requires a chimney?"

And fire marshalls are generally not predisposed toward cumbustible storage in chimneys.

The example is based on a misunderstnding that when a term like "chimney" isn't explicitly defined in a code, it doesn't have a legal meaning.

However, most codes have a default reference for any undefined term (such as a specific dictionary), and ultimate interpretation lies with the code official not the applicant anyway.</comment></comment>


How Not to Recruit - <AUTHOR> http://seanmccann.ca/2011/06/17/how-not-to-recruit-badgeville-kain-management-group-robin-gustavson/

<comment><AUTHOR> My favorite quote:

"People have been struggling through this economy … I would have thought you were more sympathetic to that aspect of our efforts to find talent in a markedly bruised professional arena and struggling economy."</comment>


The Use of Drones During the Vietnam War - <AUTHOR> http://peteralanlloyd.com/general-news/the-use-of-drones-during-the-vietnam-war/ <comment><USER2> Interesting topic. I recall the first drone (or I suppose more accurately remote-controlled) aircraft crossed the Atlantic in the early 1920's. This is all off a poor recollection, but I seem to recall there were only a few simple commands. There was a copper drum with contacts (like the cylinder from an old phonograph) connected to a motor. It would receive radio signals and spin X degrees to activate various flight controls.

</comment><comment><USER3> Yeah I'm always surprised to hear the stuff they had during WW2. There was radio controlled boats loaded with bombs, radio controlled planes used in nuclear bomb testing, and even anti-personal remote controlled (via a tether) mini-tanks!

</comment><comment><USER4> But how was it controlled? Satellite or VHF?

<comment><USER2> There were no GPS satellites in orbit in 1968. They don't appear to be remote controlled.

<comment><USER5> GPS satellites do not control things.

<comment><USER2> Yes of course not. I never suggested they did. The OP asked whether they were controlled via satellite which I inferred to mean whether they were using GPS (or similar tech like NAVSAT) for navigation. VHF telemetry would be a good guess.</comment></comment></comment></comment>


Software engineering recruitment: you're doing it all wrong - <AUTHOR> https://medium.com/@CadetAdrien/software-engineering-recruitment-you-re-doing-it-all-wrong-c289110d1d06#.7auky6ohp <comment><USER2> The truth of the matter is that most recruiters _don 't_ know what they're talking about. They don't know the difference between Java and Javascript, and neither do the HR people who generate those job descriptions. Furthermore, most recruiters only care about filling the position -- not whether it's the right job for you. They want to get paid, and they can't do that if you're being picky.

My strategy: cultivate a relationship with a good recruiter and ignore the rest.

</comment><comment><USER3> I agree with most of this, but the comment about emailing with a recruiter who was asking about his weekend seems almost as annoying, unless this is somebody I know personally.

The real issue is that tech companies are using recruiters to fill positions. The company has to know how annoying it is as an engineer to be hounded by recruiters, and if they can't find another way to attract talent, I probably don't want to work for them.</comment>


How Anti-Vaccine Sentiment Took Hold in the United States - <AUTHOR> https://www.nytimes.com/2019/09/23/health/anti-vaccination-movement-us.html <comment><USER2> To understand this perspective better, step back and ask yourself how much do you trust the US healthcare system and pharmaceutical industry to have your best interests as it's top priority?

Given everyone's various degrees of lack of trust in a highly corrupt and inefficient system, it's perhaps easier to see how people "throw the baby out with the bathwater" when it comes to understanding science & medicine relative to the industries that profit from their corrupt establishment. If you don't trust the messenger, how can you trust the message?

<comment><USER3> I think you're giving them too much credit.

I don't think it's based in science, or distrust of a "corrupt" or untrustworthy system. It seems to be a combination of cult-like group-think, misplaced parental emotions, and social media-driven fear-mongering, all brought together by a determinedly anti-intellectual anti-science stance.

<comment><USER4> Who are you referring to when you say "them?"

<comment><USER5> Based on the two previous messages I am inferring they meant "people who hold an anti-vaccine sentiment".

<comment><USER4> What qualifies a sentiment as "anti-vaccine?"

Not sure why this is downvoted. I'm genuinely curious. The perspective that having a sentiment puts someone into a group is one I haven't considered and I would like to understand it more.

</comment></comment></comment></comment></comment><comment><USER6> _"We ask parents in the first two years of their child's life to protect them against 14 diseases, that most people don't see, using fluids they don't understand," Dr. Offit said. "It's time for us to stand back and explain ourselves better."_

The last paragraph is the whole article.

<comment><USER7> The whole anti-vax thing started in the UK. I went to school in the UK and we spent a lot of time talking about how horrible some of these diseases were and how we can be thankful for vaccination and antibiotics.

It's more of a media thing IMHO: the media love scandals because it generates a lot of viewers. What better than a scandal involving your defenseless babies to drive those $$$?

<comment><USER8> In fairness, that initial _fraudulent_ study was all over the media, and it did appear to show a real link between MMR and autism. Of course it did, he was faking the figures with intent to deceive.

The media and public reaction was, initially, entirely understandable. Particularly where few remember how bad measles and the rest can affect the unvaccinated. It necessarily took time to disprove and strike-off Andrew Wakefield.

What I fail to comprehend is that now he's no longer allowed to call himself Dr, he is permitted to spread his lies in the US. Somehow he has managed to become and remain something of a personality doing so.

<comment><USER7> Good point, he was a doctor who had release a groundbreaking study so it was pretty rational to get worried about it.

On a tangent: what has your post been down-voted? It's a good well reasoned reply to my comment. It should be getting up-votes.

<comment><USER8> _shrug_ Someone didn't like my opening sentence I guess. The first down landed in a second or two - far too fast for someone to have read all. :D

</comment></comment></comment></comment></comment><comment><USER9> I have observed a case here in Poland - the parents refused a vitamin K shot to their baby because they found something in the leaflet. Later it turned out that this particular vitamin K was not approved in Poland for normal use, only for urgent cases - but still was used routinely on newborns by the hospitals because there was no other. Of course the parents were called crazy anti- vaxxers - but who is there to read the leaflets and check the doctors if not the parents?

Parents can be ignorant - but they are more reliable to have their children interest as their main objective then any institution. In communism times, and probably generally in the past, the institutions like hospitals were much more authoritarian, and in my family there is a personal story about how horrific it sometimes was.

Of course doctors don't like being checked.

Now vaxination is a kind of shibboleth - something you need to agree with, and agree quickly and automatically, to be admitted to the 'enlightened' society.

I think the hysteria around anti-vaxxers is the worst thing.

<comment><USER10> I'm not sure what you mean by "particular vitamin K was not approved in Poland for normal use". Was it the dosage? Because Vitamin K is Vitamin K, so I'm not sure I follow why this would be bad. In the US, the FDA allows doctors to prescribe any approved drug for any need. So called "off label" use of drugs is common. The only issue is sometimes insurance will not cover the costs.

As for the mistrust of medical professionals, I cannot fathom what it was like to live in a society that blindly followed the State without data to support the position--that must be horrible. Fortunately in the developed, modern world, the data is free for everyone to look at and decide for themselves. Here is a nice review with references showing just how amazing vaccines are: [https://medium.com/@visualvaccines/graphic-proof-that- vaccin...](https://medium.com/@visualvaccines/graphic-proof-that-vaccines- work-with-sources-61c199429c8c)

I think part of the reason 'enlightened' society requires everyone to be vaccinated is herd immunity. Not everyone can take a vaccine and be protected, so it's up to the majority of society to protect them. Granted, this is another discussion of who's responsible for taking care of whom, but in modern developed societies we have agreed as a majority to help the less fortunate. An example here are small children, people undergoing chemotherapy, the elderly, and people with compromised immune systems. These are the people that vaccine herd protection protects.

I'm sorry you feel the hysteria around anti-vaxxers to be the worst thing. I can imagine how difficult it must be to feel better informed than the masses and everyone to think you're the fool. Numerous people throughout history have been murdered for speaking truth to the masses because what they were saying was not convenient.

<comment><USER9> Citing wikipedia: "Vitamin K is a group of structurally similar, fat-soluble vitamins found in foods and in dietary supplements", but of course drugs always contains also other substances - so different label drugs do differ and can have different side effects.

Herd immunity is indeed the part that makes the whole thing political and difficult, because it is a common good. But in a healthy debate there should be a place for people sceptical about something - they should not be automatically demonized.

I don't quite understand what you write about my feelings - because I don't identify as antivaxxer, I vaccinated my children and I trust the scientific data in general. I just feel better thinking that there are people who read the leaflets and double check the doctors and I don't think they should be vilified even if in the most part these people are not reasonable in their distrust. I also believe that it is better if we don't mandate trust in vaccination - but let people make their minds individually, even if we sometimes lose herd immunity, because the alternative authoritarian system leads to worse things.

</comment></comment></comment><comment><USER11> It's the grouping, amount, frequency, and unsolved health issues around early childhood issues such as SIDS and autism that freaked parents out.

The fact that the only answers to the questions and concerns is to employ shaming tactics is not compelling or rational enough to push parents with major concerns into doing it.

The medical communities modus operandi of "we have a drug or pill for that", especially around opioids for instance, has created distrust amongst a lot of people also that had recent interactions with doctors.

It is kind of a perfect storm of issues in my opinion.

</comment><comment><USER12> When our kids were born our pediatrician who was from Germany mentioned that the US vaccine schedule was accelerated compared to Europe. The reason was that parents here are more likely to just stop bringing their kids in for scheduled checkups at some point and the accelerated schedule somewhat compensated for that. In addition pharmaceutical companies don't or won't coordinate so there are fewer combo vaccines and more shots than necessary.

So take a new parent who's surging with oxytocin and vasopressin; give the parents only one choice (vaccinate or don't); and then stick a needle in their kid. Then repeat that the next visit but with multiple shots.

Hmmmm... yep it is the internet...

How about this:

\- Create two vaccination schedules to provide parents choice

\- Force vaccine providers to package vaccines to reduce the number of shots

\- Eliminate vaccines at birth when parents hormones are surging

\- Centralize tracking of vaccinations to reduce the burden on parents who move between health care providers because of changes in insurance

\- Offer in-home checkups and vaccines for at-risk groups that you wouldn't be able to reach otherwise

<comment><USER13> So what you're proposing is to increase the period in which unprotected infants may be exposed to dangerous diseases, just to pander to a bunch of noisy know-nothing narcissists?

The CDC et al already tried placating those malevolent turds by removing a perfectly safe preservative from vials (increasing the cost and risk of those vaccines to everyone), and the only thing that happened was those messianic loons and malignant grifters took that "goodwill gesture" as a validation of all their egomaniacal bullshit, and so doubled-down on their screeching and lies in return.

[https://sciencebasedmedicine.org/vaccines-still-dont- cause-a...](https://sciencebasedmedicine.org/vaccines-still-dont-cause- autism/)

Here's a much better idea: how about taking each one of those new parents for a good long walk around every nineteenth-century graveyard in town, and count up all the gravestones under which little kids lie, from a time when even in a "first-world" society endemic diseases killed one in ever two or three before adulthood, and tell all thpse blessedly ignorant modern-day parents of yours to _grow the fuck up_.

</comment></comment><comment><USER14> Part of the problem with trust in the medical community is how inconsistent doctors themselves can seem.

I'm on my 6th doctor (2nd urologist) and finally I think I have a diagnosis for a long standing issue. Every doctor has a different opinion or way to treat what I have. Some of it is because the science is actively evolving. But a lot of it is because doctors themselves have their own opinions about the science based on their own anecdotal experiences treating patients.

Eventually I have to go with the doctors opinion that "feels right" to me.

I know vaccines fall in a seemingly "obvious" category, but when my experience is fairly typical, I can understand the frustration with being told to take the doctors opinion as gospel.

</comment><comment><USER15> We almost don't have these anti-vaxer folks here, but it seems to me that people who spread hate towards them are incomparably more worse. It's like a hate cult. People buy whatever the media sell them and start to harass any group they were told to hate and fear, actually giving these groups growth.

</comment><comment><USER16> This article hints at, but doesn't fully articulate, the irony of two apparently very different disciplines applied upon each other.

Vaccine-resistance, as a mental-state looks akin to the immune system, which normally confers disease immunity but, when running amok can trigger allergies.

It is implied that some medical sociologists now consider vaccine-resistant thinking as a kind of allergy to benign societal forces and are planning a social vaccination program to eradicate such wrong-headedness.

As an aside, the word _meme_ was used near to its original sense - as Dawkins defined it - in the last chapter of his classic "The Selfish Gene".

</comment><comment><USER17> If these people fear Big Pharma shouldn't they believe that vaccines are a blow against the "man" because every prevented disease prevents Big Pharma from selling medication?

</comment><comment><USER18> Anti-vaccers always make me think of things like these: [https://en.wikipedia.org/wiki/Toxoplasmosis](https://en.wikipedia.org/wiki/Toxoplasmosis)

I'm by no means a biologist, so I have no idea how much substance the idea has, but it seems to me like the existence of anti-vaccine mindsets in general should provide an evolutionary advantage for many strands of germs.

</comment><comment><USER19> Why are people so _STUPID_? Why would you A) not protect your child from harmful disease by vaccination. B) Put other people at risk by reducing herd immunity. Why? Fuck, I hate humanity.

<comment><USER20> This is the simply the result of the US education system. You reap what you sow as a country, but it's a tragedy that defenseless children will be the ones who bare the brunt of it.

<comment><USER21> Not necessarily, this is the result of many things combined. Social media made it super easy to spread lies and misinformation. You could have a broken education before, but without the means to distribute your lies, your impact on society was small. Also Hollywood celebrities are the biggest contributors to anti-vaccination sentiment.

[https://jezebel.com/heres-a-fairly-comprehensive-list-of- ant...](https://jezebel.com/heres-a-fairly-comprehensive-list-of-anti- vaccination-c-1714760128)

<comment><USER20> No. Social media is an extension of ourselves. Better education stops lies, not censorship - which is the only viable alternative to fake news and come with all the obvious pitfalls.

</comment></comment></comment></comment><comment><USER22> Easy to solve. Just bill antivaxers for the moral and economical consequences of every outbreak. That will teach them a lesson.

<comment><USER23> Some antivaxers are doing it because they'd can't afford medical care...

<comment><USER24> Getting measles is cheaper than getting a shot? Even uninsured, I'm sure you could call the doctor and work out a low or no cost solution.

<comment><USER23> That's not the context the decision is being made within, I'm afraid.

</comment></comment></comment></comment><comment><USER25> The government can't even protect us from a known carcinogen - RoundUp. And we're suppose to just trust them when it comes to vaccines and their side effects? Most anti-vaccine people I know don't doubt it protects from a specific virus. They question the side effects and secondary impacts vaccines can cause to the body. Just like there's no doubt that RoundUp is an effective pesticide — but that's not the issue, is it?

<comment><USER25> Sorry, my comment must not conform to the hackernews groupthink. If you think some vaccines don't have significant side effects, you're also not very smart (as so many comments are stating anti vacciners are).

</comment></comment><comment><USER26> This article is mainly pro-pharma propaganda. Not because its "pro-vaccine", since vaccines themselves are very useful medical tools. It's that it frames the issue that "any questioning of the 25 vaccine schedule orthodoxy means you are an anti-science religious whack job" It's fine to be both pro-vaccine, without feeling the need to purchase the whole Merk lifetime subscription catalog.</comment>


Show HN: We Built an AppStore for TestFlight Apps - <AUTHOR> https://testflight.live/ <comment><USER2> Note that these apps won't have gone through the App Store review process which verifies they're not malicious or are accessing things they shouldn't be accessing.

</comment><comment><USER3> Submit Your Apps here [https://shashwat988522.typeform.com/to/vUK59PFC](https://shashwat988522.typeform.com/to/vUK59PFC)</comment>


Ways to get motivated when you don't feel like working - <AUTHOR> http://plan.io/blog/post/146892730063/4-ways-to-get-motivated-when-you-dont-feel-like <comment><USER2> There is one more point that can really get you motivated. I call it the cliff-hanger approach. I use it mostly for programming but you can use it for other aspects too.

Anyway, it goes like this. Whenever you're leaving work, make sure to leave at least one thing _nearly_ done.

Like one failing test which you know how to fix, a function that you've just started writing but haven't completed.

This way you have a starting point the next day and it really helps to get the ball rolling.

On a related note, another approach is to make things easier for yourself. I think it's all about getting over the static friction (time before you get the ball rolling). This approach is to prepare for the next day in advance. Like have your running shoes and socks ready by your bed, have a glass of water and a lemon (+knife) on your kitchen cabinet before going off to sleep.

<comment><USER3> I have a similar approach: don't sit down at the computer until you know what you're going to do. It works well because sitting at the computer "feels like work" and is also a source of distractions. A lot of times I end up pacing back and forth until I figure it out (which may be a social issue for those of you who are employed).

<comment><USER4> Not a social issue at my company - I often go out for a walk to get some inspiration and don't even need to pretend to be going to a meeting :)

EDIT: phrasing.

<comment><USER5> There's a difference between going outside for a walk and pacing back and forth up an open office. We have a guy that does the latter and it's definitely a huge social issue.

<comment><USER6> I do it all the time, no social issues. Good coworkers?

</comment></comment></comment></comment></comment><comment><USER7> Personally, I break things down into the tiniest possible steps and then feel guilty for being too lazy to do that and usually end up doing it.

Example with doing the dishes: \- Stand up. \- Walk towards sink. \- etc...

I usually cannot justify being too lazy to stand up... or walk towards a sink... etc... if I leave it as one "large" task, I have a hundred excuses.

<comment><USER8> This works for me in some kinds of tasks. Sometimes when I don't feel like changing the plastic bags in the bathroom tray [1], thinking "ok, let me just remove this bag. I can put a new one (2nd half of the task) later." puts me in motion and I usually do the complete (rather stupid) task easily.

[1] Its a brazilian thing, we can't throw our shit paper in the toilet.

<comment><USER9> > [1] Its a brazilian thing, we can't throw our shit paper in the toilet.

Why ? Is it cultural or technical ?

<comment><USER10> I've found it in quite a few countries. AFAIK it's a technical thing, the toilet paper can cause problems with pipes and/or water processing.

</comment></comment></comment></comment><comment><USER11> For me it's one of the following:

1\. Good sleep. Note I didn't say "enough" sleep but good sleep. To wake up fresh in the morning you have to sleep well and you do that by going to bed early. Also, eating in the morning will teach your body that the morning is the period with lots of energy available so it will wake up in the morning.

2\. Exercise. Periodic, daily exercise helps to clean your brain. Literally. Caveats: biking does not count plus cold air can give you a slight brain inflammation which leads to "don't feel like working". Every time you brain is not in top shape, you will feel like not working. I recommend moderate weight lifting.

3\. Eat properly. Plenty of advice on internet. Your brain works with the food you eat, so if you eat garbage your brain will run on garbage.

4\. Daily rest. Plan each day a proper rest. For your brain. I.e. when you do physical work, you rest by staying still. When you use your brain to work, you rest by going in the park and not thinking at all if possible :). Caveats: documentaries, games and other things that make you think do not count. Sorry :)

I include here plans to do things that you really would like to do a.k.a "live your life". This change of scenery helps a lot when you go back to work. You will feel very motivated.

Each time I don't feel like working I just think about what I did in the last days or week and see which one I skipped.

Usually people recommend 1-3 but I was doing that and still no results. Once I implemented 4 I was really productive.

<comment><USER12> Curious as to why "biking does not count" ?

<comment><USER11> For me, it will give me a slight inflammation to my head, which translates into procrastination.

Also a bike is a really eficient way to travel, so if you are like me you either will not do much effort or you get an inflammation. I've noticed that walking to do some shopping is better. Plus you kill two birds with one stone.

Sometimes I do bike slowly to a park but I don't count it as physical effort. It's just travel.

Edit: It might count for you. The takeaway should be: listen to your body. When you procrastinate something is not good with your brain. Look back in time and see what you did that might be the cause. When you are in "the zone" do the same: look back in time and see what you did and do more of that :).

</comment></comment></comment><comment><USER13> I am not a big fan of chopping up the huge and complex problem of human existence into pieces and dealing with them individually. We have been conditioned socially and biologically to see everything in problem/solution format. We can't seem to make sense of anything unless it fits into that format.

categorizing motivation into 'external'/internal' is just silly at best. The problem of fulfillment needs to be understood as a whole. There is no escape from fulfillment, you can only escape one form of fulfillment into another but you can never rid yourself of it. And once you are seeking fulfillment of any sort you are setting yourself up for internal conflict, disappointment and all of human suffering that has been going on for thousands of years. The problem has to be understood as a whole not chopped up into pieces that you can free yourself from. Freedom from something is no freedom at all.Freedom can only be achieved through love, not ambition. Ambition is always ugly. Always!!.

</comment><comment><USER14> I read something once that had a real effect on me in these situations. It was "who says you have to feel like doing something to do it?"

(Is it magic? Of course not. Will it work for everyone? Of course not.)

<comment><USER8> This kinda works. But again only for starting..

<comment><USER15> Starting is the hard part. Once I get started, it's actually easier to keep going than to stop. Inertia works both ways.

</comment></comment></comment><comment><USER16> The "pregame routine" is why I find it so much easier to work _at work_ than at home.

The pregame routine is simply getting up, showering, dressing, driving to the office. It's not anything I even deliberately created, but by the time I get to the office I'm generally in the frame of mind to begin the work day.

When I work from home I might not shower right away, I might putter around doing other chores, etc. and generally I have a hard time getting in the frame of mind to work.

</comment><comment><USER17> This is why I have a photo of my wife and kids at work, they're the source of a lot of my motivation.

Like Homer and his photos of Maggie, DO IT FOR HER.

</comment><comment><USER18> Key takeaway: Don't obsess about getting motivated. If you're not, let it go. But prepare a routine for next time.

</comment><comment><USER19> I wonder to what extent motivation is the culprit. I, for one, have experienced intense motivation and intense procrastination at the same time.

I have every reason, internal and external, to get the thing done, but I sometimes have trouble starting. This is particularly true of tasks where premature optimisation is possible, as I quite enjoy the analytical/planning part of the work. It's just that it takes on a life of it's own and the actual/quali-mechanical act of starting keeps getting pushed further back.

Surely I'm not alone...

<comment><USER10> On the "intense motivation and intense procrastination at the same time" thing, I've found it's possible to turn that to your own advantage, especially when you're not working towards tight deadlines.

What I find is there's often something "I know" I have to do, as well as other things that interest me at the time. So long as the thing you know you have to do doesn't have an imminent deadline, you can find other things to "distract" yourself with that end up working out for the best in the long run. For example, I've had times when I was finding it hard to concentrate on a piece of work, but found something technical (like a programming language) that I wanted to explore. By going with it, you end up improving your skills, and if you can chip away at the "must do" task on the side, you find that when you're ready to look at it again you've already laid the ground work.

That's one of the approaches that works for me. Have you experienced something similar?

</comment></comment><comment><USER20> Just finished reading "The Power of Habit" [1], which was eye-opening. It makes a strong case that we're really a collection of habits. We can't eliminate habits from our brains, but we _can_ override them with new ones over time. There are also Keystone Habits which tend to positively impact all areas of peoples' lives – exercise tends to be one, for example. In the corporate setting, he uses the example of Alcoa focusing on worker safety, and how that became a keystone habit that completely transformed all aspects of the business.

Also, say you have a habit of opening Facebook (or Hacker News :) when you're at your computer instead of opening up your IDE. By figuring out what reward you get out of those diversions, and being able to identify the trigger, you may be able over time to replace that 'bad' habit with a 'good' one – perhaps stretching, or talking a 5 min walk. The result might be a less fragmented day.

I really buy into this theory, in part because anecdotally it seems to align with examples of successful people; they have good work habits. Great writers, for instance, talk about simply sitting down at the typewriter every day. Same with comedians, painters, etc. Procrastination is a hard thing to crack, because so often we're fighting against deeply ingrained habits – by becoming mindful of them, we can potentially reshape them into habits that make us feel accomplished.

1: [http://www.goodreads.com/book/show/12609433-the-power-of- hab...](http://www.goodreads.com/book/show/12609433-the-power-of-habit)

</comment><comment><USER21> I'm never motivated to work. All these "tricks" work once or twice and then I go back to zero motivation.

<comment><USER22> Thought exercise. What will you do if you are financially independent ? i.e not have to work for money.

<comment><USER19> A certain quote from Office Space comes readily to mind...

[https://youtu.be/4lmW2tZP2kU](https://youtu.be/4lmW2tZP2kU)

</comment></comment></comment><comment><USER23> I've found my best chance at tricking myself into working is using my procrastination as a tool. Whenever I feel like not coding I go and write some documentation, work on some design or groom tickets. This is my equivalent of students cleaning their dorms instead of learning for exams.

I've seen this technique somewhere exploited even further, by tricking yourself into working in "forced mode" on something completely secondary, while resting when working on the important stuff.

</comment><comment><USER24> I have sometimes used a method where I start working in the morning and when I find myself losing focus I have a rule to stop and go home. It keeps me constantly underachieving and wasting time. After a while I actually just really want to get stuff done and the runs get longer. Obviously this does not work very well when working in teams or for someone else.

</comment><comment><USER25> Motivation comes from having (personal) goals.

The rest is confronting your fear, boredom, and anxiety; managing your time and energy; developing good habits and process; and knowing when to ask for help or study up. You have to be an expert at getting unstuck.

</comment><comment><USER26> Give yourself a goal to accomplish within a specific amount of time. It's easy to procrastinate when you have all the time in the world. It's hard when there's a due date.

<comment><USER27> I think many people need an external factor beyond the calendar. You need a what if and a force to apply it.

What if I miss this date? Have I setup an auto pay to a political group I don't like? Is there some public mockery coming my way? Will a significant person tell me how ashamed they are by my complete lack of determination?

<comment><USER26> Yes external factors will definitely get you off your butt or whatever.

</comment></comment></comment><comment><USER28> 1\. Work on something you really like.</comment>