Racket – Lisp beyond Clojure - <AUTHOR> http://slides.com/ronie/racket-beyond-clojure#/ <comment><USER3> I find DSLs to be extraordinarily powerful for writing and working with my own programs. I find them painful when I'm trying to work with other people's programs.

Making a DSL lets me construct a language to express my program that meshes with the way I think. Unfortunately, we all think differently, and what is intuitive and friendly for me is hostile and awkward for others.

While reading someone else's program that uses a DSL may be superficially easy, but the minute you try to get under the surface, you're left scrambling to understand what a given term or idea meant to the author. There is no language definition to rely on for common understanding.

There are exceptions naturally.

I know a lot of people will disagree, and that's fine of course. It's opinions all the way down.

<comment><USER4> _While reading someone else 's program that uses a DSL may be superficially easy, but the minute you try to get under the surface, you're left scrambling to understand what a given term or idea meant to the author. There is no language definition to rely on for common understanding._

I have generally found that this is the same problem as with user-defined functions, and it has the same solution: programmers need to document their code.

<comment><USER5> Agreed. I have two follow up thoughts:

1\. Badly designed functions can do less design damage per-function than badly designed languages per construct, but user-defined functions tend to have much higher volume than both language constructs and their usages.

2\. Powerful techniques, including DSLs, lead to denser code. Denser code takes more time to read per unit of code. Total reading time may be either more or less, but the cold start ramp is always much steeper.

Combined, this means that people are less sensitive to suffering the complexity caused by user-defined functions vs DSLs/etc because that complexity has lower intensity spread out over a greater area. I'll refrain from any further value judgement on this state of affairs; just wanted to share some more insights in to the tradeoffs.

<comment><USER6> > Badly designed functions can do less design damage per-function than badly > designed languages per construct

Really? When was the last time you successfully used a C library without reading the documentation?

<comment><USER5> Straw man. When was the last time you had to check the documentation for the parameter evaluation strategy of a C function call?

I don't think it is a controversial statement than a badly designed macro can do more damage than a badly designed function. I believe that this is true, even normalizing for bad macro systems. This is not a statement against macros, so much as it is a statement to consider when making tradeoffs.

<comment><USER6> It is controversial. The GETS function is probably responsible for a huge number of security breaches with a cost possibly ranging into the billions of dollars (there's no way to really know). What would you cite as a comparable example of a badly designed macro?

<comment><USER7> Part of the reason gets() has been such a disaster is that people use it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Unhappy with the current state of functional programming. I know I should't be. I have a lot of options.

I went to school at UC Berkeley. My first language was Scheme. Then Elisp. CLOS was in the first few too. I really didn't learn C or C++ until second semester.

A few months ago I had to pick up enough Scala to figure out what some code did in a project and I wasn't really happy with the language. I realize it is multi-paradigm, but the functional part just seems a little bolted on at times. The notation was clunky. Maybe it is because I prefer Lisp-ish and APL- ish languages. And the Scala docs aren't very friendly. I actually find it easier to write imperative code in Scala than functional code.

Clojure seems nice, but lacks a lot of things that you kind of want in a LISP (proper tail rec). Racket has very little market pen.

Maybe I'm just picky, but I don't see anything I really want to put time into.

<comment><USER3> I guess I don't understand what the big deal is with tail call optimization. Could someone give an example where it really shines and clojure's loop/recur just doesn't?

If you are looking to put time into a programming language that is interesting in and of itself, I'd suggest Haskell.

<comment><USER8> Looping is fine for imperative languages. It should be the norm for performance sensitive things since that is how the CPU works. It is just easier than trying to make a smart compiler turn your recursion into looping constructions.

However, for functional languages you really want TCO to work properly so you can write your algorithms in a properly functional way. And you don't just want self-calls to work, but full mutual recursion (A calls B that calls A etc) to be properly optimized too.

<comment><USER9> the CPU is just doing a jump to an instruction at the end of each iteration.

When you do tail call recursion you are doing just that. The assembly jumps to a tag and in recursion you jump to a function name, which is also effectively a tag.

So it's not really about mapping better to the CPU instructions or anything like that

The added benefit is that with tail call recursion you can have mutually recursive function (function A calls function B at the end and function B calls function A at the end), which isn't possible with a simple iterative loop, so the functional style is actually more powerful than an iterative approach and still maps directly to "the way the CPU works"

<comment><USER8> You are forgetting about the function prologue, epilogue, and the maintenance of the various pointers. It certainly isn't as simple as a jump as you imply. To do proper TCO most implementation resort to function trampolines and other self-modifying trickery to get similar to loop-like performance. Within the confines of the JVM, without doing extensive source analysis, I doubt there is even a way to do it.

<comment><USER9> this is outside my field of expertise. Can you give an example of a tail call that needs "trickery"?

I'm not 100% on this, but when you have a tail call I don't think you have to remember the state of the stack frame. "function prologue, epilogue, and the maintenance of the various pointers" aren't god given rules - they're things dictated by something like the C ABI so you can resume the caller. So if you're thinking in terms of C ABI then yes, it's a compiler optimization, but in principle I think it's a zero cost abstraction (though I'd argue that the iterative loop is the actual abstraction)

In tail call recursion you're ensured the caller will never resume!

When you enter a tail-recursive function you save (as you normally would) a return pointer for the program counter and allocate registers/memory for your function arguments. At the end of the function you've done all the computation that that frame will ever do, so you are free to overwrite the argument variables when calling the next iteration/recursive-step. The return pointer doesn't need to be touched at all. Where is the complexity you're talking about?

<comment><USER10> When TCO is "lexically scoped" like loop/recur, the compiler can handle it.

When HoF are involved, you may have a case where a procedure calls a procedure-parameter, which calls another, and another... Something about the runtime has to recognize this or else the compiler has to accept more constrains.

See, for example, how Gambit-C implements tail calls by compiling modules to single C functions and how there is a trade off for procedure calls across module boundaries versus Chicken Scheme's approach to essentially garbage- collecting the call stack.

<comment><USER9> Okay, but at that point you're talking about things that are way beyond the capabilities of an iterative loop. I think my point still stands - <USER2> implementing a tail recursion in place of a loop is not something you will have to pay for. Both structures will map to the same instructions.

<comment><USER11> The difficulty with tail recursion optimization is related to calling conventions. Some calling conventions expect the caller to do some cleanup after the callee returns, which effectively means that no function calls actually occur in tail position. For example, in the C calling convention the caller caller is responsible for allocating _and_ freeing the stack memory dedicated for the callee's function parameters. This system makes vararg functions like printf easy to implement but makes it hard to do TCO. Another example is Rust, where having destructors automatically run when a variable got out of scope prevented them from implementing TCO in a clean manner. I'm not familiar with the JVM internals but I think the limitations are going to be similar to the ones I mentioned here.

<comment><USER12> It's not just that, it's that last time there was serious talk of it, LLVM's musttail wasn't properly supported across important platforms for us. So it got put by the wayside, and there's always so much to do, nobody has worked through the semantics now that support is better.

We did reserve a "become" keyword for this purpose though. Instead of "return", you say "become", and TCO is guaranteed. That's the basic idea anyway, we'll see what happens.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is addressing a question I'm interested in, but on first read I'm struggling to see the value that's being presented here.

\- "parameterize" is great, but seems exactly the same as Clojure's "binding" on a dynamic variable. [Edit: modulo being "sticky" with regard to continuations... but Clojure doesn't have continuations, so it's a pretty subtle difference.]

\- Reader macros are an interesting feature, but do move away from the syntactic regularity of LISP -- and were, AFAIK, explicitly rejected in Clojure

\- Custodians _are_ kind-of interesting -- but I ended up having to do some Googling [1] to find out exactly what they do...

Is there anywhere else I should be looking for a more systematic Racket/Clojure comparison?

[1] - [https://docs.racket-lang.org/reference/eval- model.html#%28pa...](https://docs.racket-lang.org/reference/eval- model.html#%28part._custodian-model%29)

<comment><USER14> > \- Reader macros are an interesting feature, but do move away from the > syntactic regularity of LISP -- and were, AFAIK, explicitly rejected in > Clojure

That does not make sense to me since clojure introduced explicit irregular syntax for things like maps and vectors. In Common Lisp the "we-the-language- developers can introduce special typography but the users cannot" thing, in constrast, doesn't exist .

<comment><USER15> The majority of Clojure's special syntax is for data structures, and while Clojure doesn't have reader macros, it _does_ have data readers.

</comment></comment></comment><comment><USER16> I've recently started porting some bash scripts over to Racket, using [https://docs.racket-lang.org/shell-pipeline](https://docs.racket- lang.org/shell-pipeline) and it's been pretty straightforward and painless so far!

<comment><USER17> Are there (m)any advantages to doing this? I've seen a number of shell-interop modules for various languages but they all appear to add an extra layer that reduces portability or ease of maintenance.

<comment><USER18> > Are there (m)any advantages to doing this?

[trigger warning: cynicism distilled from 15+ years of bitter tears]

More fun and better job security for the current maintainer. The former because one hacks away in the preferred language, the latter because one cannot be replaced easily by some unix geek unless s/he happens to speak the same language fluently.

One can chose from various implementations in various languages (eg: psh and scsh) but hacking your own is easy:

* Just re-implement the basic unix tools and shell semantics and invent some nifty convenience syntax and features along the way.

* Either don't document at all or document everything with at least 2 pages aimed at people who have never used a computer before. Both ways will prevent the only ones who _could_ replace you from even looking at your "shell in X".

* Never ever do this in a typed language, write a ton of unit-, functional- and integration tests to make up for that - of course all of them completely undocumented.

* On top of your creation, invent a fragile "shell syntax like" layer to make adoption easier.

* Under no circumstances create some new abstraction layer that goes beyond shell semantics that brings something substantial to the table and is well documented.

* Enjoy the time saved because you don't have to "man $tool" anymore, it's all your code anway.

* Under no circumstances ever write in pure posix sh again - the realization that with all the stuff you've learned along the way posix sh covers 99% of the use-cases in a more expressive way will be crushing.

<comment><USER19> Remind me never to hire you for anything ever. You've truly internalized the Tao of the BOFH.

<comment><USER18> Thanks for the compliment. I'm usually hired for that attitude (and my ability to hide it except for the few meetings where it really counts) ;)

</comment></comment></comment></comment></comment><comment><USER20> I'd think Common Lisp is the Lisp beyond Clojure.

Also, I just see slides that have (googleable) terms, is there a recording of this presentation?

EDIT: see mkozlows' comment (THANKS!!!)

<comment><USER21> I have been trying to get into the whole Lisp paradigm for 1-2 years now. I own Realm of Racket, amongst a collection of Lisp books.

Racket is all the promise of developer-centric power tooling that puts Common Lisp to shame.

I recommend you watch one of the core devs, Matt Flath, build a a hygenic macro expander.

[https://www.youtube.com/watch?v=Or_yKiI3Ha4](https://www.youtube.com/watch?v=Or_yKiI3Ha4)

Notice how his talk, likely written in its own documentation language Scribble, shows demos of DrRacket. I am more of an emacs guy, but do you see the interactive colorized debugger pointing out variable binding and flow control? That is the only thing that I have seen in the Lisp world that takes SLIME and laughs at its dogged simplicity.

Also, as you watch this talk, observe how he takes the complexity of something I am still certain I cannot do, build a macro system (let alone understand macros others write), and boils it down to the essence with the color-coded schematic to match his environment and visualize his thought process. I dare say Rich Hickey et al would be impressed, tipping the hat to the Simple or Easy talk he is famous for.

If I have bored you at this point, you will probably not check out Rackjure. Someone basically implemented a language subset in Racket of Clojure. So it is safe to say you can subsume Clojure with Racket.

I know we are all smug Lisp weenies, but the whole Brown/NEU PLT group who works on Racket deserve serious praise. I listen to all the core devs and watch their talks, because they push the boundaries of what a good computer scientist is.

They just happened to choose Scheme/Lisp to make me feel dumb. Watch them ditch it and go for Haskell. We will all be sorry then.

<comment><USER22> > Racket is all the promise of developer-centric power tooling that puts > Common Lisp to shame.

Have you ever used a commercial Common Lisp like Allegro ?

<comment><USER23> We cant entirely blame them: those cost significant money while mainstream stuff usually has free IDE's that are good without limitations. Allegro even mentioned royalties last time I looked at them. Royalties!?

Only natural hobbyists overlook this. But, yes, LispWorks and Allegro are very powerful environments. Comparing AllegroCache to Hibernate might be fun for newcomers too. Haha.

<comment><USER22> I guess we were spoiled by being able to have seen such environments, back when it was common to pay for software tools.

Even Macintosh Common Lisp would already have been a good experience.

[http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...](http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/2/17_Macintosh_Common_Lisp.html)

<comment><USER23> That was pretty interesting. Especially that the Mac CL survived so long in about the same form. The one thing that confused me was Apple acquiring "Allegro" Common LISP. That's name of Franz's product. History of Franz says nothing about Apple. I'm assuming they're different products with the same name just to trip us archaeologists up?

<comment><USER24> Coral Common Lisp was once renamed 'Macintosh Allegro Common Lisp', because Coral went into a marketing agreement with Franz Inc. Apple later bought Coral and its products, and published MACL then as Macintosh Common Lisp (MCL).

MACL had technically nothing to do with Franz' Allegro CL.

<comment><USER23> Now that makes sense. I just couldnt see one not saying something about other with same name. Tks for the tip.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> I'm not a fan of Racket, as I've made clear elsewhere. Its insistance on using as many paradigms as possible frustrates me, and while I like "batteries included" in general, I wish some things like contracts, custodians, OO system, etc. had been moved out to other libraries to make core easier to wrap your head around. I am also not a fan of syntax-case: it violates the macro abstraction, and is overly complex for what it does, IMHO.

In essence, I wished that core had picked a paradigm and stuck with it, instead of like 10 of them.

Practical or no, I'd take a simpler Scheme over Racket any day. Usually Chicken, which is quite practical, and has a lighting fast call/cc implementation (non-delimited, with delimited implemented in terms of call/cc by an external library, if you want it).

But just because I don't like it doesn't mean you won't: objectively, it's powerful, technically competent, and fairly well designed. It's just not to my tastes, any more than CL is, and so it looks like I'll have to wait until R7RS Large before I get a large lisp I like.

And yes, I said lisp, not scheme, because Scheme _is_ a lisp, and also to annoy the people who say otherwise.

<comment><USER26> Can you elaborate on how syntax-case "violates the macro abstraction", and maybe what you think is important about the quality it breaks? Not a description I've heard before. I do agree it is complicated!

<comment><USER25> The macro abstraction is that the AST is exposed as a series of lists, which is what macros process. Instead, syntax-case exposes 'syntax' objects, which are entirely distinct from any other datatype, and kind of complicated.

This isn't a horrific sin (new macro abstractions pop up like rabbits, although they rarely change something so fundamental, at least in Lisp mavro systems), but if you're going to replace an abstraction everybody knows and understands with a more complex one, you better have a good reason, and I don't think the benefits outweigh the costs.

<comment><USER11> I thought that the syntax objects resulted in better error messages, due to keeping track of source code position, lexical bindings for variables and so on. Isn't that worth the complexity?

<comment><USER27> Talking about CL, all the things that are done with syntax objects are done with environments (`&environment`). Type declarations, lexical bindings, etc. You can even process the same code in two different environments if this is useful. Other bindings from symbols to values can be stored in the symbols themselves: things like original code source (as a string; I recovered deleted code thanks to that in the past), original location, custom properties, etc.

<comment><USER25> So like the sc macro system, but more featureful. In theory, the sc macros could record this sort of data (maybe), but I don't think they record as much as syntax objects.

</comment></comment></comment></comment></comment></comment><comment><USER28> A kind of nitpick, but the use of dynamic-wind with custodian in the slides bothers me. Dynamic-wind shouldn't _directly_ be used to ensure cleanup, since a continuation captured in the body may be invoked outside from dynamic-wind and the body restarts, even if resources are gone.

In the R5RS age, light users looked for try-catch construct in Scheme and could only find dynamic-wind and used it; but they're not the same. Dynamic- wind is a low-level construct that can be used to implement try-catch idiom and other stuff.

Now Scheme has guard, so it's better to use them to write cleanup stuff. It's a bit verbose, though (you have to write cleanup both in the handler and the end of body), so I personally wrote unwind-protect macro on top of it and am using it.

</comment><comment><USER29> I really don't get the title of this. Why is it "beyond Clojure"? Maybe if we can see the actual talk it will be more clear.

<comment><USER30> Clojure ideas are beyond Clojure.

</comment></comment><comment><USER31> I need types. But Racket has the world's greatest macro system and everybody should imitate it, Period.

<comment><USER32> Have you tried Typed Racket? [https://docs.racket-lang.org/ts- guide/](https://docs.racket-lang.org/ts-guide/)

<comment><USER31> Somebody always asks :).

1) I want my libraries to be typed all the way down.

2) Improving the implementation of typed racket is harder/less likely than fixing the macro systems of Rust and Haskell.

3) Network effects of those two languages.

</comment></comment></comment><comment><USER33> How I am supposed to read the slides? Top to bottom, left to right? It is not intuitive.

<comment><USER4> Top to bottom. The "top row" of slides are section headers. Go down from a section header to see the section. When you get to the bottom of a section, go right, and it will put you at the top of the next section.

</comment></comment><comment><USER34> I don't understand - is it just 8 slides? That's all?

<comment><USER35> I don't understand why this slide format is popular, but I believe you go down until the end of that column, then right, then down again, then right, and so on.

<comment><USER36> Or just press space to go to the next slide.

</comment></comment></comment><comment><USER27> Let's try with other languages:

        Rust - C beyond Go

See any problem?

<comment><USER37> Lisp is a family of languages that includes Racket and Clojure.

C is a language, not a family of languages that includes Rust and Go.

The Lisp family of languages also contains Common Lisp. In some contexts, it's reasonable to assume "Lisp" means "Common Lisp". This is not one of those contexts.

<comment><USER27> Newcomers are always confused by the distinction, this doesn't help at all to put them in the same big bag. This classification is not wrong, but mostly useless when you see how the different "dialects" evolved (they are grown-up languages, nowadays).

> C is a language, not a family of languages that includes Rust and Go.

But Rust and Go are constantly compared to C. We always talk about C-like languages. Maybe I should have said "Algol" instead, but there is a family of languages rooted at "C", and we don't call it the C family.

Go is "a compiled, statically typed language in the tradition of Algol and C". "The syntax of Rust is similar to C and C++", but "Rust is semantically very different from C and C++.[citation needed]" (wikipedia).

Likewise, Scheme is semantically very different from Common Lisp. And Racket is not considered as a Scheme, even though it is related to it. You can't copy-paste any Typed-Racket expression and run it with ChezScheme.

So, yes, they all belong to the same proto-language family, but constantly referring to them as a unique family is doing a disservice to each of them.

Take Clojure for example: the wikipedia page says that it is inspired by C++, C#, Common Lisp, Erlang, Haskell, Mathematica, ML, Prolog, Scheme, Java, Racket and Ruby. There are plenty of influences that goes into a language, why not talk about the other ones? parentheses?

<comment><USER37> > Newcomers are always confused by the distinction, this doesn't help at all > to put them in the same big bag. This classification is not wrong, but > mostly useless when you see how the different "dialects" evolved (they are > grown-up languages, nowadays).

Sadly, language is determined by usage, which only incidentally correlates to usefulness. And critically, there's a feedback loop here: a word is only useful as it's used, because otherwise people don't know what it means, and you've failed to communicate your intent. "Lisp" might _hypothetically_ be more useful if it meant "Common Lisp", but it's not useful for meaning "Common Lisp" (at least not on Hacker News) because when you say "Lisp" people assume you're talking about all the languages with the parentheses, and you've failed to communicate.

> But Rust and Go are constantly compared to C. We always talk about C-like > languages. Maybe I should have said "Algol" instead, but there is a family > of languages rooted at "C", and we don't call it the C family.

Right, the terminology commonly used for that is "C-family languages", not "C".

> Go is "a compiled, statically typed language in the tradition of Algol and > C".

Note how they don't say "Go is a C".

> Likewise, Scheme is semantically very different from Common Lisp. And Racket > is not considered as a Scheme, even though it is related to it. You can't > copy-paste any Typed-Racket expression and run it with ChezScheme.

Yes, but in a context not centered around Common Lisp, people use "Lisp" to refer to all these languages. You can argue whether that's good or bad, but you're not able to change it.

> Take Clojure for example: the wikipedia page says that it is inspired by > C++, C#, Common Lisp, Erlang, Haskell, Mathematica, ML, Prolog, Scheme, > Java, Racket and Ruby. There are plenty of influences that goes into a > language, why not talk about the other ones? parentheses?

Parentheses, macros, some functional programming constructs.

Look, I'm not saying the terminology is ideal. I'm saying that, in this context, "Lisp" doesn't mean what you and I want it to mean, and trying to change that will a) fail to communicate and b) fail to change the meaning of the word in this context.

<comment><USER38> I'll just leave two of my old comments here... [https://news.ycombinator.com/item?id=10207199](https://news.ycombinator.com/item?id=10207199) and [https://news.ycombinator.com/item?id=3423646](https://news.ycombinator.com/item?id=3423646)

Short summary: I do think on HN it's reasonable to assume "Lisp" without further qualification to refer to the lisp family. The usefulness of the lisp family idea (which afaict is having sexps and maybe something like defmacro) is questionable. Among Lisp and lisp-family practitioners outside of HN and maybe even on HN itself (it'd be interesting to see a poll result) Lisp means Common Lisp, as it has basically since Common Lisp was created, and the distinction with other lisps usually made by saying things like "Clojure is a Lisp", that article "a" being important here to say x is a member of the y family and would be nice to have in the slide title.

I agree with your argument about common usage but I'm not sure what the common usage on HN really is and what's a vocal minority using it incorrectly until it becomes common. But we've already lost several wars like that, in the wider culture ('literally' for one..) and in tech (a recent one that bugs me being 'isomorphic' JavaScript) so it's probably best to sigh in resignation and maybe think/complain about the lisp/lisp family stuff once every few years at most. ;)

<comment><USER37> > I agree with your argument about common usage but I'm not sure what the > common usage on HN really is and what's a vocal minority using it > incorrectly until it becomes common.

I just don't think "correctly" and "incorrectly" are words that have meaning when it comes to semantics. I care more about your goals. If your goal is to have "Lisp" mean "Common Lisp", then you can try to enforce that, but it's a strange goal to fight for, and probably not an achievable one.

Personally, my goal is to understand what people are saying and communicate my own ideas effectively. Toward that end, I just say "Common Lisp" or "CL" when I mean Common Lisp, and Lisp-family languages or Lisp-like languages when I'm talking about the larger group. And when reading, I use context clues to figure out which the person is talking about.

Certainly in the OP, it's clear that "Lisp" refers to the s-expression-y languages.

<comment><USER38> Here are some ways words can be incorrect: [http://lesswrong.com/lw/od/37_ways_that_words_can_be_wrong/](http://lesswrong.com/lw/od/37_ways_that_words_can_be_wrong/)

In the end it's not a very fulfilling battle even if won, to preserve the meaning of a word. I always liked the line "In the face of ambiguity, refuse the temptation to guess" as a guide to be more explicit and ask for clarification in general communication.

<comment><USER37> Yeah, 17-20 in that link do a better job of expressing what I wanted to express than I did. :)</comment></comment></comment></comment></comment></comment></comment></comment>


Why I'm considering giving to beggars. - <AUTHOR> http://www.jordanvisco.com/why-im-considering-giving-to-beggars

<comment><USER3> The fundamental assumption here is that:

1 - A beggar will use the proceeds from begging to improve his/her life in a semi-permanent way.

2 - The beggar is capable of "recovery" in the way most lay people perceive the homeless.

Given that, in North America at least, homelessness goes practically hand in hand with substance abuse, #1 is far from a safe assumption. More often than not the proceeds of begging go straight back into booze and drugs.

Now, there's a certain school of thought where that doesn't matter - <USER2> people have shite for lives, who are we to judge if they choose to numb themselves in their hopeless situation. If I was to be homeless for the rest of my life, with no hope of anything else, I probably _would_ start drinking. masterzora pretty succinctly summarized it elsewhere in the thread.

Which leads to point #2, which is something I don't think a lot of people really get. I don't claim to be an expert in this issue, but I've worked at shelters and kitchens in the past - and the way I see it, a lot of these people _really_ are hopeless.

The second factor that goes hand in hand with homelessness in America is _mental illness_. That's something some people don't seem to be aware of. Conservatives see the homeless as lazy good-for-nothings. Liberals see them as simply people down on their luck. Both are based on the presumption that becoming "normal" again is an option that is on the table. For a _large_ portion of the homeless population, this simply is not true. Even if you resolve the substance dependencies, you still have a litany of mental health issues that will prevent the bulk of these people from being "functioning" members of society - functioning in the way that society normally expects of its citizenry anyhow.

To circle back to the blog author's question:

> _"What if EVERYONE gave to beggars?"_

Then you will see an _explosion_ of begging, but _not_ a proportional reduction in homelessness. The ratio of genuinely homeless/needy folk on the street vs. profiteering "fake" beggars will become horrifically skewed. The extra noise will mean greater difficulty in necessary social services from reaching the people who need it. All in all, the genuinely poverty-stricken homeless folk will suffer more than they already are today.

</comment><comment><USER4> I really like the article because it frames the situation well and looks at both sides of the coin. There are a good deal of people that look on the unfortunate with disdain, as if a large majority of them choose to live a life of poverty. That they are just so lazy that they care more to fulfill their lazy desire than to feed their stomach.

Reality is never so cut and dry, from schizophrenia to getting on drugs as a child, to mentally escape the realities of their situation, few poor actually choose their lot in life. The problem with giving to beggar is not that it reinforces the behavior it is that it generally so insignificant that it does little to help them pull out of their situation. Let's face it $10, $20 even $300 bucks is not going to help change that persons life. They are so stuck in a pattern of habitual poverty that it takes more than money to help them correct their course. They have to unlearn being poor, because poor is not a marketable skill. Some are even too far gone for that, either through mental deficiencies, or habitual behavior some may never be able to be rehabilitated.

But one thing is certain, not given them a couple of bucks, is not doing them any favors. Even if 10 of them use it for booze and drugs, that 11th one that you give to and feeds her kids for the night is worth every penny that the others use to chemically escape their realities. I can't say that if I where in a similar situation that I would not drink and drug myself out of it. Which goes to show, that not even they want to be in their situation. Anybody that critically analyzes the situation would come to a similar conclusion.

Putting it all of the poor is just a way to walk away and feel good about ones choice of doing so. There really is more honor in just admitting that they can't be bothered to provide for the poor. They earned their money and have every right to use it how they see fit, but those that hide behind justification and villeinization are particularly contemptuous, because the attitude is infectious and poisons the mind of others that may have given.

<comment><USER5> _Even if 10 of them use it for booze and drugs, that 11th one that you give to and feeds her kids for the night is worth every penny that the others use to chemically escape their realities._

To be honest, I think it's worth those pennies for helping the first 10 as well. To steal a quote from _Sports Night_ :

Isaac: _Danny, every morning I leave an acre and a half of the most beautiful property in New Canaan, get on a train and come to work in a fifty-four story glass high rise. In between I step over bodies to get here - 20, 30, 50 of 'em a day. So, as I'm stepping over them I reach into my pocket and give them whatever I've got._

Dan: _You're not afraid they're gonna spend it on booze?_

Isaac: _I'm hoping they're going to spend it on booze. Look, Dan, these people, most of 'em, it's not like they're one hot meal away from turning it around. For most of 'em the clock's pretty much run out. You'll be home soon enough. What's wrong with giving them a little novacaine to get 'em through the night?_

<comment><USER6> In this day and age even if you are afraid they're going to spend the money on booze you can buy them a gift card to a nearby restaurant...

<comment><USER7> ...which promptly can be sold for cash money.

<comment><USER6> On the beggar black market? :) I guess so... Seems like most of them would probably just use it for food, though.

</comment></comment></comment></comment></comment><comment><USER8> There are many ways to give to the poor and giving to the poor on a regular, consistent schedule is in my humble opinion, a moral imperative.

However, giving handouts to beggars is a terrible idea. You are encouraging loitering and more importantly, depending on the location, they can pull in more cash than a menial job would. While that may leave a bad taste in your mouth, that's not the worst of it. Keep in mind that when it comes to begging, location is key. This invites competition and since the police nor the courts will step in to resolve disputes between beggars claiming a corner ... well, that will simply breed violence.

Please, just give money to a local organization that assists the poor, like a soup kitchen.

<comment><USER9> _Please, just give money to a local organization that assists the poor, like a soup kitchen._

Or even better, give money to a charitable organization that assists foreigners who are vastly poorer than every single person in the US.

</comment></comment><comment><USER10> Maybe it's not about the self and one's "philosophy". When I see a person begging (or otherwise doing something needy or disruptive), I ask the most practical question possible:

Has this person had a harder day/week/month than I have? In another phrasing, am I more privileged than this person, as a matter of luck?

The truth is, I know very little about the person except that they are (ostensibly) suffering. The idea that my "encouragement" is going to affect their behavior is terribly ignorant and self-centered.

They might be a wife-beater, or someone who's simply been dealt a terrible hand and can't take care of themselves. Or both.

The idea that _my_ giving money will have a substantial negative impact on this person is small and unknowable. It's outweighed by the likelihood of a positive impact.

This doesn't mean I give a lot, or often. But I consider that a shortcoming, not a philosophy.

<comment><AUTHOR> "The idea that my "encouragement" is going to affect their behavior is terribly ignorant and self-centered."

This is why it would be nice if we could all be consistent in our encouragement one way or the other. If we all did the same thing we might actually make a difference.

</comment></comment><comment><USER6> This related article in which the reporter gave out prepaid charge cards to beggars on the street helped change my ideas about the people who are panhandling.

[http://www.thestar.com/news/gta/article/854018--how- panhandl...](http://www.thestar.com/news/gta/article/854018--how-panhandlers- use-free-credit-cards)

</comment><comment><USER11> Lots of beggars use drugs to cope with the fact that they have no homes. Shelters are disgusting, in most cities, generally. If you don't believe that, watch the documentary Streets of Plenty, or visit a few. Sure, there are a couple nice ones here and there, but most are lurid.

With that said, I will give a beggar money and do not care if they use it to buy drugs and alcohol. The only reason I wouldn't give a beggar money is if they were the confrontational type that runs after you or ambushes you as you open your car door. That is an instant no.

Finally, a great reason to give a beggar money is that many times charities can't be trusted either. If you give the beggar money, you know you are going _direct_. Cut out the middle man. Comedian Steve Hughes said it best here <http://www.youtube.com/watch?v=TXpUwBJ2SS8>

</comment><comment><USER12> The truth of the matter is that witholding kindness is rarely going to cause that person to hit rock bottom because there will often be another person that will be kind. Given that fact, this tactic is appears ineffective. So what is the most beneficial action in the situation?

</comment><comment><USER13> An idea I'm going to start doing now that I have savings and an inclination to share my fortune:

1\. Donate to a local food bank / soup kitchen / church, etc which serves the homeless.

2\. Hand out cards to beggars with the street address of the locations you've donated to, and tell them you already bought them a meal.

Elsewhere in the thread, potatolicious points out that mental illness (anecdotally) is a big factor in homelessness. I am fortunate enough to not have any visible or debilitating illnesses and I had some great advantages in life (globally-speaking).

It's tough walking a fine line between condescension and genuine sympathy. But that's kind of a first world problem, isn't it?

</comment><comment><USER14> In the UK, especially in London the situation suggests I shouldn't give to beggars, I should give to the homeless charities.

There are reportedly more hostel places than homeless people and those hostel places are 'free at the point of delivery' to the homeless that use them.

There has been research done, supported I think by the homeless charities, that suggests that the money given direct to some homeless is used to fuel drink and drug addictions and may help cause a higher rate of death or serious disease.

The recommendation (According to Radio 4 at least) is to give to the homeless charities not to the homeless.

</comment><comment><USER15> "Would it be possible to be a beggar if everyone who passed you on the street did their utmost to help you out?"

Absolutely. It would become so lucrative to be a beggar that we'd see a veritable explosion of beggars in no time.

<comment><AUTHOR> You don't think you'd stop begging at some point and try to do something useful with your life if EVERYONE was nice to you and tried to help you out? I know I would but maybe I'm different. Maybe I have too much confidence in mankind and not enough respect for incentives.

<comment><USER15> Or maybe you just make the common mistake of assuming that everyone else thinks the same way you do.

I'll share a little story about a friend of mine. His son came crying to him one day because his homework wasn't done, so his wife did the child's homework (to ensure that his grades didn't drop as a result of his negligence). 3 months later, both parents were doing ALL of this child's homework, because he'd realized that if he didn't work, someone else would do the work for him. He could sit around playing video games all day (yes, that's exactly what he did) and anything unpleasant or difficult was handled by other people (his parents).

That is, until his teacher figured it out. While his homework was always done impeccably, his performance on tests were abysmal. The teacher rightfully berated the parents, and not a moment too soon.

A second example comes via an old co-worker of mine who spent a large part of his career under communist rule, but was absolutely disgusted at his co- workers. Everyone did the bare minimum because there was no incentive to perform or excel (everyone got paid the same regardless). And so naturally, anyone aspiring to greatness and having some ambition left for a country where performance was rewarded.

You see similar effects in well entrenched union jobs.

<comment><USER5> _Or maybe you just make the common mistake of assuming that everyone else thinks the same way you do._

And you're not doing the same?

<comment><USER15> I'm definitely not doing the same. I know that different people think differently, and responses to the same stimuli will be all over the map. This is why there's no such thing as Utopia, and why I take any one-size-fits-all solution with a mountain of salt.

<comment><USER5> Are you sure you're not? The thread pretty much looked like this when I posted that:

 _"This won't work because people will react the way I think."_

 _"No, it will work because people will react the way I think."_

 _"You can't just assume everyone will think the same way as you. Here's some anecdata to prove everyone thinks the same way I do."_

Please help me here, because I'm failing to see the difference. (Granted, I think in both cases it's not so much "everyone thinks the way I do" as it is "sufficiently many people think the same way I do", but all the same.)

<comment><USER15> Getting back to the original discussion, you were arguing in favor of the amount of beggars going down if everyone helped them out. Beggars are already a tiny minority in the population (around 3.5 million people will be homeless in a given year, and only around 25% of those turn to begging, out of a population of 300 million). In order for begging to quadruple, only 1% of people would have to think like those in the examples I gave before. So if 10% of people think like that (and I suspect it's much higher than 10%), you'd get a 40x increase in begging.

<comment><USER5> I think you should read the names of posters, but I am more than happy to take the position you stated so we'll call it good.

I think what you are leaving out of your analysis is that, in this scenario, there is no _compulsion_ to help the beggars. Thus, if everyone actually is helping they are doing for their own reasons: that it is good, that it is right, that they want to help. I find it hard to imagine that a significant number doing so would then take advantage of the same system in the manner that you describe.

 _"But_ ", you say _"it is ridiculous to even assume that everyone is going to willfully give as such in the first place."_ This much is obvious, so trying to comment on the above utopian ideal has its limits. I am inclined to believe, however, that if everyone who actually would be willing to help beggars of their own accord to make things better did help that it is likely that this would only be done in such numbers that the beggars could be helped but not such that it would become such a lucrative market as posters have described.

<comment><USER15> If you look at the top comment, I was originally responding to "Would it be possible to be a beggar if everyone who passed you on the street did their utmost to help you out?", and the answer is clearly "yes". Furthermore, if everyone who passed a beggar on the street did their utmost to help out, there would be an explosion of beggars, as I demonstrated in my previous comment.

Also, it does not require everyone to think the same way for this to happen; in fact, very few people have to think this way. Therefore, in response to your first post, I am not making the common mistake of assuming that everyone else thinks the same way I do.

I don't mind other people giving to beggars, but one thing I have noticed is that beggar-friendly cities tend to attract far more beggars (San Francisco and Vancouver are two that come to mind).

<comment><USER5> _If you look at the top comment, I was originally responding to "Would it be possible to be a beggar if everyone who passed you on the street did their utmost to help you out?", and the answer is clearly "yes". Furthermore, if everyone who passed a beggar on the street did their utmost to help out, there would be an explosion of beggars, as I demonstrated in my previous comment._

I still fail to see how you demonstrated that. You have failed to take into consideration important variables that I have attempted to address. In particular, you have applied a type of thinking that some people have today to a situation that would necessarily require them to have a different type of thinking. It doesn't make a whole lot of sense to simply transfer it over as such. Granted, we don't have a whole lot of experience with a society where everybody is individually motivated to help, but I think you'll find at the very least that the people who are altruistically inclined to help the homeless or what have you these days don't really decide to swindle everyone.

 _Also, it does not require everyone to think the same way for this to happen; in fact, very few people have to think this way._

I'm not sure I agree that 1 in 100 is "very few", but point taken.

 _I don't mind other people giving to beggars, but one thing I have noticed is that beggar-friendly cities tend to attract far more beggars (San Francisco and Vancouver are two that come to mind)._

This point is simply irrelevant unless you mean to suggest that the increase is due to people trying to take advantage of the lucrative beggar market rather than working.

<comment><USER15> "In particular, you have applied a type of thinking that some people have today to a situation that would necessarily require them to have a different type of thinking."

… Which would require everyone to think the same way, which doesn't happen in reality, which is why I've deliberately ignored the absolute extreme. The OP was referring at worst to a utopia, at best (and most likely) to a "near utopia" using imperfect language to communicate such, while I was bringing that utopia down to earth by showing that it only takes 0.25% of the population taking advantage of kindness in order for the problem to become worse than it already is. We already know that all people do NOT think exactly the same, and so arguing with absolutes is pointless.

"This point is simply irrelevant unless you mean to suggest that the increase is due to people trying to take advantage of the lucrative beggar market rather than working."

That is precisely what I suggest. Any time a power efficiency is discovered, people move in to take advantage of it. This has been happening since the dawn of life. In this case, it is an efficiency for acquiring money. The more people give to beggars, the easier it will be to live off the proceeds of begging, the more people will consider it a better use of their time compared to what they're doing now. Quite obviously, efficiency won't be the only factor in the decision (other factors, such as pride, come into play as well), but each factor will be weighted differently by different people. It is often said, every man has his price. And though that statement is technically absolute, I do not believe it absolutely, nor is it meant to be taken that way.

<comment><USER5> _which is why I've deliberately ignored the absolute extreme_

You are a confusing individual. I try to discuss moving away from the extreme and you insist you were commenting on the extreme. I try to meet you there and discuss the extreme and you insist you are avoiding the extreme. If you're going to keep pushing the goal posts back and forth like that I don't know why we're bothering to discuss anything at all.

 _That is precisely what I suggest._

I won't deny that a few people are likely taking advantage of the situation, but you need to drop the notion that anything resembling a significant fraction of beggars are doing so by choice. Said notion is disgusting, offensive, and untrue.

<comment><USER15> We're talking across each other now.

My discussions of the extreme have always revolved around the pointlessness of arguing that way. The OP MAY have been serious in taking the extreme, but it's far more likely that he was using a what-if line of thought to guide his thinking in a less perfect world. However, that what-if scenario lacks reality guards in that it requires that everyone think the same way, which does not happen.

My responses have been designed to push away from the extreme and inject some reality into the discussion. The reality is that some people DO take advantage of kindness. Some people really ARE lazy. Some people ARE con men. So the absolute is disproven by default, which means all that is left is to assume the other person really meant "what if if a lot more people thought this way...". Otherwise the conversation is over already.

"but you need to drop the notion that anything resembling a significant fraction of beggars are doing so by choice. Said notion is disgusting, offensive, and untrue."

No such notion was intended. As I said before, many different factors come into play when deciding whether to beg or not. My point is that making begging more lucrative will make the decision easier for more people. If the returns for begging were to surpass low wage jobs, for example, we'd see a critical tipping point emerge. The end result of more giving to beggars (on a larger scale) is more beggars. The current equilibrium exists as a result of the diversity of the population (both on the potential beggar side and the potential giver side).

My personal belief is that a significant increase in giving to beggars is likely to cause more harm than good. The current equilibrium seems adequate for taking care of most of the truly hopeless who aren't wards of the state.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I consider the social insurance in Germany the price for keeping beggars off the street (among other things).

Just saying that the suggestion in the article is already somewhat implemented in places.

<comment><USER17> On my last trip to Germany (1998, ~2 weeks in each of Nuremburg, Berlin, and Freiburg with a host family), there was no shortage of beggars on the street.

You're not getting your _Geld_ 's worth, if you know what I _meine_.

<comment><USER16> I know, it isn't really working :-) But I think most beggars are probably mentally deranged, so that they are incapable of receiving the benefits.

Also there are now proposals to pay a base income to everyone, without fuss, but it is doubtful if it will ever be implemented. And nobody knows what would be the effect.

<comment><USER18> Really? No one knows what the effect would be of paying people a base income regardless of whether or not they work? I think we've seen ample evidence over the last century of _exactly_ what the effect would be.

<comment><USER17> Where? Most of the programs you probably have in mind stop paying you once you stop doing irresponsible crap. That has fundamentally different incentive effects than a guaranteed income that pays irrespective how responsible you are or how much you work. For example it would not impose a high effective marginal tax rate on those who work a part-time job (like unemployment benefits or welfare do).

Its effect would be more like that of Social Security (with untaxed benefits, and judged purely from the standpoint of post-retirement).

</comment></comment></comment></comment></comment><comment><USER19> In your mythical society I would never work another day in my life.

<comment><USER16> You are also evil, if my memory of LOTR serves me correctly :-)

<comment><USER19> systems that only achieve equilibrium in the absence of evil are foolish.

</comment></comment></comment><comment><USER18> _Would it be possible to be a beggar if everyone who passed you on the street did their utmost to help you out? Not for long I wouldn't think._

Actually, you're right, but not for the reason you think. If everyone gave money to beggars every-time they saw one, pretty soon we would have nothing but beggars.

<comment><USER5> I disagree. If everyone is willingly and of their own volition giving money to beggars every time they saw one in an effort to make things better (note that the post is not about any sort of mandatory giving or a government program or anything else of the sort) it seems silly to conclude that everyone, or even most people, would then become beggars.

On the flip side, _"If NO ONE gives to beggars there won't be any beggars!"_ is also correct, but not for the reason given. Reality is that most beggars would die relatively quickly because they're not there by choice or because they think that begging to live is better than finding a job. Yes, a few _are_ there by choice for one reason or another, but I really hate the world where people choose to let the honest ones dies to spite the few freeloaders.</comment></comment>


Philip Zimbardo: The Secret Powers of Time (Animated) - <AUTHOR> http://fora.tv/2010/03/25/Philip_Zimbardo_The_Secret_Powers_of_Time_Animated

<comment><USER2> great ideas. Time and how it affects our mental models of how we see the world. Good example about talking with kids about their actions and consequences. Thanks!</comment>


The Nobel Prize in Physiology or Medicine 2019 - <AUTHOR> https://www.nobelprize.org/prizes/medicine/2019/summary/ <comment><USER2> Quanta has a good write up.

[https://www.quantamagazine.org/nobel-prize-awarded-for- cells...](https://www.quantamagazine.org/nobel-prize-awarded-for-cells- adaptations-to-oxygen-20191007/)

</comment><comment><USER3> Will the committee ever move past its antiquated restriction of three people per award? No glory is saved for the dozens if not hundreds of people (and institutions) who enabled this research.

<comment><USER4> They literally can't. It's in Nobels will. One of the main reasons these prizes are less and less important and prizes like the breakthrough are on the rise.

</comment></comment><comment><USER4> The Nobels used to be elite but I think more and more are seen as out of touch and behind the times. Theyre only awarded to people who are already very, very famous. They've ceased lifting and now are content to coronate/free ride.

Look at prizes which honor younger/more diverse awardees: MacArthur, Breakthrough, Packard... Even the Laskar is ahead here.

That's not to mention their history of awarding for the right science but the wrong people. Usually, the older/whitier/male-r/famous-r people.

Good riddance!

</comment><comment><USER5> Yes stick to medicine. Psychology is in the puffy science zone (social science). Medicine is the oldest practice and I'm happy to see it being rewarded.

<comment><USER6> Where does psychology come into play here? I don't see it mentioned anywhere in the article.

<comment><USER7> Perhaps physiology was misread?

<comment><USER5> There is no Nobel Prize for psychology for a reason.</comment></comment></comment></comment>


Ask HN: What rules do you set for your kids screentime? - <AUTHOR> Hi HN Parents
There's something of a taboo these days about kids getting too much screentime. A taboo I don't remember existing as strongly when I was a kid (80s/90s). Given this taboo, my wife and I instituted time-based restriction on device usage. The end result: access to an iPad or iPhone is the source of a lot of consternation and conflict in our family. It's the primary punishment and reward. Of course, meanwhile, we parents use our laptops all day for work, look at our phones, text, read the news, a gazillion other things our parents would have done through analog methods.
What I observe is these days so much that would have been done without a screen needs to be done with a screen (phone calls, looking something up in an encyclopedia, research, a lot of book reading, reading the news). Also screens allow us to do a lot of things our generation couldn't do that are really positive for kids (text friends in another country, facetime with grandparents, etc). Not to mention limits on their abilities to hack on code. All of which seem to be conflated with watching the 20th meaningless minecraft youtube video.
I'd be curious what the HN community feels about kids + screentime?
- Do you limit screentime writ large with an overall limit?
- Do you set limits on the kind of screentime they get?
- What protocol do you follow (X hrs per day, have to ask first, but are limitted?)
- What do you do if they truly want to do something educational/positive with screentime but have hit their limits? <comment><USER2> I've got 3+ year old who gets ~20 mins of screen time each evening. We push for her to read books, go play, go on a walk, color, etc. but it's nice for her to get a little break right before bed to chill out and see her favorite characters.

Our limit is not hard, there are days where we're wiped out or she's sick or something's happened and we're struggling so give her more(the most ever was 3 or 4 90 min movies on snow day when everyone was sick).

She occasionally will get a handful of youtube videos(which are limited to what she already likes) but she generally wants to re-watch movies she loves.

We'll occasionally throw on a nature documentary instead of a standard movie, she loves seeing the animals and it's a good break in the routine.

If you set a rule(like screentime) and you've hit your limit, then you've hit your limit. Screen time is a metric like calories in my mind. You do your best to stay at a healthy weight and teach your kids what a healthy and unhealthy way to consume are...then hope for the best.

</comment><comment><USER3> < 0 yr old - no screentime

5 yrs old - ~ 3hours screentime (TV only, we see what he's watching). If he want, he can reduce that time before dinner so after the dinner he can play on PS4 for the rest of the remaining time (Lego Worlds or Gran Turismo Sport).

No TV during meals. No cartoons after 20:00.

If something is truly educational (e.g. he learnt numbers and letters thanks to youtube channel) he can watch a bit longer.

AMA ;)

</comment><comment><USER4> No set time limits, they eventually get tired of the stuff that is garbage and move on to more interesting content.

Under the age of 7 we let our children watch educational videos, pixar movies, and play the Wii and Wii U in the main living room (large projection screen) from sun up until sun down.

Ipads are crack for very young children and I think it's best that kids learn how to read and write before getting their hands on one. After a certain age (~10?) they kind of lose interest in ipads since they are rather limited (we don't install apps on our tablets or phones).

I think Minecraft is actually a very good technology for engaging their creative interests and drives children toward educational content on YouTube. Obviously they watch a lot of junk along with the educational stuff, but the junk is also more social oriented so has its own merits.

</comment><comment><USER5> I feel a large part of HN are single people with no kids so you are not going to find anything good or insightful when it comes to parenting.

There are two main schools of thought on the issue you mentioned - 1 let them learn early / no major electronics filter (I grew up watching tv I am fine crowd)

\- 2 let's not let them have stuff they don't understand.( I personally fall in this crowd)

I think both options have their pros and cons. Given "right" and "wrong" as a measure is always relative, you need to consider the if your actions ultimately help them or hurt them in the long term goals which generally for parents is to raise kids that are responsible and self sufficient and take care of themselves in a unknown future. Once you (and your spouse) have a agreed "North Star" it's easier to set the rules, enforce them and lead by example.

Edited to add below answer

-Do you limit screentime writ large with an overall limit? No "limit". The rule is as little as possible.

\- Do you set limits on the kind of screentime they get? Yes- when we do show it's either selected cartoons or nature or nova documentaries. The latter two is not a deliberate thing but mostly because I like to watch them they like to see it too. No Disney. Hate it with a passion. Their message is overwhelmingly emotional and romantic. In general I stay away from "movies" type things where there is a larger plot

\- What protocol do you follow (X hrs per day, have to ask first, but are typically no more than) have to ask is the baseline. Also they don't know how to operate the tv(yet). Typically if it's been more than one hour of their cartoons in a day they are done. I might allow them to watch documentary or half if I am watching it.

\- What do you do if they truly want to do something educational/positive with screentime but have hit their limits? Not have encountered this scenario but if I did I would not give them their screen time and have them understand that this time they used up their "credits" but next time they can plan for it. Just like how the real world works.

</comment><comment><USER6> When I was in my elementary school days I was limited to 2 hours a day screen- time. Tbh, it did not do much since my parents could not watch me 24-7 and did not have the time to regulate the 2 hours. Furthermore, in middle school once my parents stopped caring I just binged for like 3 hours on video games and tv.

</comment><comment> em-bee i don't allow any unsupervised screen time at all.

we play games on the computer (currently minetest) together, or side by side (kid plays while i do something else)

kids are not allowed to activate electronic devices on their own. (son got his game-play session revoked for today because he didn't listen. we played a table-top game that my son suggested instead.)

i am not watching the hours. we are not playing that much that it would come up to the health limits for screen time, so that is a non-issue. the question is more about whether the activity is meaningful.

<comment><USER4> it would be helpful if you included the age range of your children

<comment> em-bee the oldest is 7 going on 8.

my plan is to not give them independent screen time until they have learned how to use it properly and are old enough to deal with unexpected things they might come across, also not sharing personal data, etc.

it also works as an excuse to spend more time with the children.

my wife and her family have a different attitude about this, so the kids do get some independent screen time to watch tv that is beyond my control. but they are not getting access to computers in our home without supervision.

the advantage is that i don't need to bother with parental controls that the kids might figure out how to circumvent (intentionally or not) and i get to teach them responsible behavior.

ask me in a few years how well that's working :-)

</comment></comment></comment><comment><USER7> I use [https://families.google.com/familylink/](https://families.google.com/familylink/) to control my son's tablet. What he plays, how long and at what time.</comment>


Firefox nightlies now hiding http:// in address bar like chrome - <AUTHOR> https://bugzilla.mozilla.org/show_bug.cgi?id=665580 <comment><USER2> Opera beta does this too. It's nice, but the start of the box moves around a bit (left to right).</comment>


A mathematician's way of converting miles to kilometers - <AUTHOR> https://twitter.com/TamasGorbe/status/1158348261683605504 <comment><USER2> I basically just use 6.

1.6 is the factor everyone talks about (approximation of 1.609), but it has 2 significant figures. To make mental calculations easier/quicker I use its reciprocal, 0.621, which I approximate with 0.6, which has only one significant figure, 6.

Instead of multiplying by 1.6 you would divide by 0.6, which basically amounts to dividing by 6 and then moving the decimal point to someplace plausible.

55 mi / 6 = about 9, so 90 km (actual answer is 88.5)

Going the other way:

80 km * 6 = 480, so 48 mi (actual answer is 49.7)

If you can't remember whether to multiply or divide, just remember multiplying a number by 0.6 makes it smaller, which you would do if going to miles (which are bigger so there are fewer of them). And dividing by 0.6 makes a number bigger, so you must be going to km (which are smaller so there are more of them).

<comment><USER3> > _1.6 is the factor everyone talks about (approximation of 1.609), but it has > 2 significant figures. To make mental calculations easier /quicker I use its > reciprocal, 0.621, which I approximate with 0.6, which has only one > significant figure, 6._

How about just 1.5 + 0.1? I.e. the same amount plus half, plus a tenth?

So, 55 mi -> 55 + (25 + 2.5) + 5.5 -> 88km

And inversely, 0.5 + 0.1, so half plus a tenth:

80km -> 40 + 8 -> 48 miles

And for most purposes, just (one and a half = 1.5) and (half = 0.5) is close enough. You can mentally add a little more.

So

55mi -> 55 + (25 + 2.5) -> 82 (let's say around 85)

80km -> 40miles (let's say around 45 miles)

<comment><USER4> I often do mental math like this. However, sometimes it is faster to not split up calculations like this. For instance, in the case of converting 55 mi, it's faster (at least, for me) to just divide 54 by 6, move the decimal, and call it a day.

I've found that calculations are faster when you know when and when not to split calculations like the way you describe (even though at least 80% of the time it's faster to split them up).

</comment></comment></comment><comment><USER5> As a programmer, I am much more facile with powers of 2, than Fibonacci. My way is to double the number 4 times (multiplying by 16) and divide by 10.

So for example 55 mph,

double 4 times: 110, 220, 440, 880

divide by 10: 88

So 55 mph is approximately 88 km/h

<comment><USER6> Yes! I'm a Canadian whose brain works in km but I spent a year and a bit working a job that had me flying to (and subsequently driving around) places across the USA. All the time I'd be finding myself going "Okay, 30 mph... what the heck is that?".

Double four times, and divide by ten as soon as possible (ie: the first time you see a zero on the end, drop it).

So 30 mph => 3 (drop the zero) => 6 => 12 => 24 => 48 km/h

The nice thing about this method is that you know that the kph is going to be more than mph, but less than double it, so you don't have to count the doublings very well- when you're in the right range, you're at the right number.

Example: 135 miles to destination is how many km? Okay, double to 270; drop the zero to 27; double to 54; double to 108;... we're still less than the mph, so we must need to double again to get 216 km. Now we're between 135 and 2*135, so we must be at the answer. 216 km. (actual answer is 217.3).

<comment><USER7> You can also add a half and a tenth.

135, half is 67, a tenth is 13, add those two together to get 80, 135+80=215.

</comment></comment></comment><comment><USER8> While using only additions and shifts (if we generalize) without floating point or multiplication should appeal to HN, this method uses a lookup table and calculating values needs a lot of memory accesses e.g. f(7) => f(4) + f(3) => (f(3) + f(5)) >> 2 + f(3) .

The Human Mk1 processing units are also capable of small multiplication/divisions, especially on bases 2 and 10, but bad at lookups - who thought manufacturing units with such slow memory access was a good idea??

I'd rather we play to their strengths and multiply by 1.6 (f(X) = X + X/2 + X/10 for all X) requiring only a few memory accesses. This is already as accurate as the other method. We could make it 1.61 (+ X/100) if we must be more accurate. Any floating point error should be too small to matter.

<comment> lota-putty What if we had just 4 digits on each limb or even 6 perhaps.

How does those numbers look in base 8 or 12.

<comment><USER9> I never bought this argument, but I'm not confident about it. Isn't base 10 inherently intuitive because of the obvious reasons? IE an order of magnitude is just another 0?

Since I learned about base 2, etc, long ago, I always thought there was something magically elegant about base10 and never understood this? The explanation I've always heard, being 10 fingere, doesn't seem to explain all the elegance with base 10 being easy to work with?..?

<comment><USER10> In base 8 (if we'd had 8 fingers), an "order of magnitude" would have been defined as "times 8" instead of "times 10", so it would also be adding another 0. Same with base 12. Base 16 would have the further advantage that we could easily halve, quarter, eighth, or 16th any number ending in 0 to a whole integer (in base 10, we can only halve, fifth, or tenth).

<comment><USER11> There's an argument against intelligent design right there (4 or 6 fingers per hand are obviously better).

<comment><USER12> Eh, evolution is a pretty nifty mix of oo class extensions, recursion, brute- force and bias weightings.

I'd wager Gawsh made the best system S/He could given product constraints (completely unfocused if you ask me [which I know no one did]) and the real need to deliver (take it easy over there Leibniz, the world is still crap as evidenced everywhere).

Anyway, can't knock it 'til you've built it.

This is an interesting article: [https://www.scientificamerican.com/article/why-do-most- speci...](https://www.scientificamerican.com/article/why-do-most-species- have/)

<comment><USER11> Well, my comment was partly in jest (though I do think it's by no means clear that 5 is a local optimum, thus it's quite possible that 4 or 6 would be better, and twice either would give us a better base for counting), but I'm amazed that there's actual scientific discussion of the issue. I wish to quote the most pertinent part of the article though:

> Is there really any good evidence that five, rather than, say, four or six, > digits was biomechanically preferable for the common ancestor of modern > tetrapods? The answer has to be "No,"

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> In related news - pounds to kilos is "divide by 2, less 10%". Very precise too.

160lbs = 80 - 8 = 72kg

<comment><USER14> Any similar shortcut for feet inches to cm? I find this conversion to be slower to compute than miles to km or lbs to kg.

<comment><USER15> Fahrenheit to Celsius: (100F -30)/2= 35C

<comment><USER16> Not quite. It is 37.78.

In temperature couple of degrees means a lot.

<comment><USER17> For outside temperatures it's close enough though. As an American who travels to Central America quite a bit being about to do: (C*2) + 30 to get F is close enough.

</comment></comment></comment></comment></comment><comment><USER18> My way: x1.5 for speed limits, x2 for hikes.

<comment><USER19> Why x2?

<comment><USER20> So it seems he went farther :D

<comment><USER21> Or so they know it's still a long way.

</comment></comment></comment></comment><comment><USER22> I've been doing it like that as well for years. Most people you explain it (replace the number with a sum of fibonacci numbers, and for each one, take the next) to come back with "but it becomes less accurate for larger numbers, right?". After you say "hm, no!" there's a pause, and then the penny drops: Golden ratio!

Anyway, I can't remember where I learned it.

<comment><USER23> It's better for large numbers since the asymptotic property dominates. It's questionable for small numbers since then the effect of the initial condition dominates. For example, the tweet's argument works the same way for the Fibonacci sequence that goes 1,3,4,7,11,... but obviously that gives different numbers.

<comment><USER24> By the way, those are called the Lucas numbers.

</comment></comment></comment><comment><USER25> Isn't that rather the physicists way? Works well enough, used in a way not quite as intended by mathematicians, ...

Disclaimer: I am physicist myself.

<comment><USER25> Ha, I saw a downvote there!

I'm fine with that - on the condition that you never, ever treat a differential operator like a fraction again ;)

<comment><USER26> Physicists have their own battles, like electrical engineers using Ohm's Law as a definition of impedance.

<comment><USER27> What's the battle there? How do physicists define impedance?

<comment><USER26> Ohm's law is an empirical law that only holds in certain circumstances. A classic exercise is measuring the current and voltage across a lightbulb, plotting it, and measuring the slope of the line. The slope is the impedance. Then you turn up the voltage and watch the line turn into a curve, which is where the law breaks down and doesn't apply anymore. The engineers treat it like a definition and assume linearity over all voltage.

</comment></comment></comment></comment></comment><comment><USER28> It's both easier and more accurate to multiply by 1.6

<comment><USER29> Not if you just remember 3,5,8,13 . You do not need to remember all fibonacci numbers, just the above and rest you can multiple by 2,5,10 and get them

<comment><USER30> How many km is 4 miles? That's not on the list of numbers.

<comment><USER31> 4 is the average of 3 and 5, so its km value is the average of 5 and 8 (assuming the Fibonacci series to be a geometric progression as described in the tweet).

While I can do this for 4km, I can't for different values like 9km. I've done the multiply-by-1.6 thing often enough by now to be fast enough at it, so I'll likely be sticking to it. This is a cool trick nevertheless.

<comment><USER32> Or use them in combination:

9 is 8 + 1, so that's 8->13 + 1*1.6 = 14.6

</comment></comment></comment></comment></comment><comment><USER33> I use a similar method of easy-to-remember numbers in conversion between celsius to Fahrenheit:

      0 = 32
      10 = 50
      20 = 68
      30 = 86

Then roughly, subtract/add two F for every extra C. It's easy to remember 32 and 50, while 68 and 86 are reversed.

<comment><USER34> If you want to get fancy, you can call it the Taylor approximation.

I'm a bit lazy so I try to use the F(c)= 2 * c + 32 approximation described in a sibling comment, but for the range of human-friendly temperatures the error is too big. The problem is not the absolute difference, but how each temperature feels. So I have to resort to making the exact calculation or using Google for the conversion. I'll try your method in the future.

<comment><USER35> Just go back 10% after computing 2C and the result is exact. If you don't want to deal with non-integers, round to the nearest integer when taking 10%. The final result will be the exact result rounded to the nearest integer.

Example: 22℃ -> 44 - 4 + 32 -> 72℉. (Exact is 71.6℉)

Example: 23℃ -> 46 - 5 + 32 -> 73℉. (Exact is 73.2℉)

I've seen people do the going back 10% before the doubling. That's fine if you are not going to round. If you are going to round, take off the 10% after the doubling or you could end up off by up to 1℉ for the final rounded amount.

For example, 26℃ with rounding after -> 52 - 5 + 32 = 79℉ (78.8℉ exact). With rounding before it goes -> (26 - 3) + 32 = 78℉.

</comment></comment></comment><comment><USER36> The pendulum has now swung the other way on the misconception by the general public of mathematicians being great at mental arithmetic, and it's become a meme for some mathematicians to take some pride in being average or poor at mental arithmetic. In my experience, most mathematicians (or anyone working in a quantitative field) don't have issues quickly approximating 1.6 * X.

<comment><USER37> Anybody who's taken CS 101 can estimate 1.6 * n too since they spend half the year in base2 or base16.

It's 1 _(n) + 6_ (n)/10 since we're using base 10. For example, 5mi to ~8km: 1 _(5) + 6_ (5)/10 = 5 + 30/10 or 5 + 3.

<comment><USER32> That's how I was taught to do it in primary school, yes it's simple, but I don't see what bases 2 or 16 have to do with it?

<comment><USER19> 10*X km is Y-base-16 miles, for single digit numbers.

</comment></comment></comment></comment><comment><USER38> it's good for a gag - but it's much simpler to just go and add half of the number + a tenth to convert from miles to kms

</comment><comment><USER39> A runner's way of converting miles to kilometers:

1 mile = 1609 meters.

3.1 miles = 5 kilometers.

6.2 miles = 10 kilometers.

...

26 miles, 385 yards = 42.195 kilometers.

100 miles = 160.9 kilometers.

Sorry, that's as far as I've run.

<comment><USER40> Nice humblebrag. But agreed, the 5km = 3.1mi touchstone is helpful.

</comment></comment><comment><USER41> I use π/2

Relevant xk: [https://xkcd.com/1047/](https://xkcd.com/1047/)

<comment><USER42> I would think that [https://xkcd.com/526/](https://xkcd.com/526/) would be more relevant.

</comment></comment><comment><USER43> I generally just multiply miles * 1.5 for a rough approximation.

<comment><USER44> Adding 10% of the original number to that is often easy as well, and makes the estimate very close to the correct conversion.

<comment><USER45> Works great for kg/lb conversions too.

kg x2 + 10% = lbs

lbs /2 - 10% = kg

I've yet to find a fast one for C to F temp conversions though. It takes a bit longer to do the 9/5-5/9 + or - equation in your head.

</comment></comment></comment><comment><USER46> Since we are talking about "useful approximations", one I have always found useful in robotics is doubling m/s to get miles per hour. While a bit "rough" usually "good enough" for when thinking about normal driving speeds. Here are some examples:

        1 m/s ~ 2 mph (2.2 mph)
        5 m/s ~ 10 mph (11.2 mph)
        10 m/s ~ 20 mph (22.4 mph)
        20 m/s ~ 40 mph (44.7 mph)
        30 m/s ~ 60 mph (67.1 mph)

You could argue that it is a very rough estimation, but I find that most times you are just trying to get a "rough speed" when doing this conversion anyway.

<comment><USER47> In physics class we used 3,6*m/s to get km/h all the time. It's not superclean but it 3,6 is still pretty easy to multiply or divide with.

<comment><USER48> Well, that is literally how to convert between them. It's not an approximation.

</comment></comment></comment><comment><USER49> Triple the initial number, add a zero at the end, now halve the resulting number is good enough for my purpose.

Brain is surprisingly good at doubling, tripling and halving operations.

And visually added zero is quite easy too.

<comment><USER50> That converts miles to approximate hectometres.

<comment><USER49> It's within 10% error.

<comment><USER51> Yes, it's within 90%.

</comment></comment></comment></comment><comment><USER52> Division and multiplication by 5 and 8 should be fairly easy for most folks, imho. Lot easier than trying to remember the closest Fibonacci number to me.

Quick, what's the closest Fibonacci number to 150? Can you do that faster than 150/5*8 in your head? What about 500?

The reverse is almost as easy. Even with numbers not as evenly divisible, say 490km, most will know 490/8 is about 61 quickly. Multiple that by 5 and you 305mi.

Maybe I'm just better at basic speed math than average, but I still feel it's easier for most people.

<comment><USER53> I'm admittedly pretty bad at basic speed math (even dividing by 5 takes me a bit -- and I know it shouldn't). I use the same fibonacci trick, and at least for me it really is much easier.

It's important to remember that all arithemtic tricks are made more useful when combined with others. I don't know what fibonacci number is close to 500, but I don't need to: 5 -> 8 means 500 -> 800\. Really, the only fibonaccis I have memorized are 2,3,5,8,13,21.

150 is harder, but I would use the same trick. 13->21, so 150->230 plus a bit. Maybe 240.

<comment><USER52> > 150 is harder, but I would use the same trick.

150/5 is something literally any adult should be able to do instantly. I realize that's a bit hyperbolic, but still seriously easy. 30*8 is also very simple too.

So yeah, I get what you're saying, but seriously, practice a little and I swear you'll be able to learn it.

</comment></comment></comment><comment><USER54> If you know your powers of two

      1, 2, 4, 8, 16, 32, 64, 128, 256, 512

conversion from miles to kilometers is just two steps lexicographically

      1, 128, 16, 2, 256, 32, 4, 512, 64, 8

Ex.:

      32 miles is 51.2 kilometers
      80 miles is 128 kilometers (wrap around!)

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

</comment><comment><USER55> Nice. Makes it much easier to do the conversion in your head.

</comment><comment><USER56> Clever! And a good reason to learn the fibonacci sequence

</comment><comment><USER57> I had arrived to the same approach by accident, basically by looking at the car analog speedometer and noticing which denoted mile increments match almost exactly the km increment. You can see for example that the 80kph "tick" is located exactly where the 50mph is. Then if you observe all the ones that match, you can see a sequence emerging.

</comment><comment><USER58> Come on guys, multiplying by 8 and dividing by 5 shouldn't be that difficult. Worst case scenario, you use your phones to punch it in.

<comment><USER59> Was hoping someone would say this. Times by 8 divide by 5 is super easy. And easy to reverse when you're doing km to miles.

</comment></comment><comment><USER60> I multiply by 1.5 (+50%) and then by 1.1 (+10%). Both are easy and fast to do by head and the total (1.5*1.1=1.65) is close enough.

</comment><comment><USER61> For rough estimations, doubling it 4 times and dividing by 10 is usually good enough

(300 << 4) / 10 = 480

300mi to km = 482.803

</comment><comment><USER62> The Mars Climate Orbiter[0] was lost due to errors in converting between Newton seconds (SI) and pound-force seconds.

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

</comment><comment><USER63> I just remember that an inch is 2.54 cm, exactly (unless it's a "survey inch"), and there are 12 inches in a foot, and 3 feet in a yard ... but then I get stuck remembering how many yards there are in a chain and how many chains in a furlong.

</comment><comment><USER64> Surely you can find various ways to reason or calculate these unit conversions.

But for practical purposes adding a half goes a long way. And it's even easier to add the missing 0.1, if you really need to.

<comment><USER65> When I'm in the US I find that with a little practice I can guess it with surprising accuracy. It might help that I have mild synaesthesia so visualising a number line makes it possible to almost see the conversion.

</comment></comment><comment><USER66> An engineer's way: Pi = 3

<comment><USER67> Pi is sqrt of 10 for all practical purposes.

<comment><USER68> Some practical purposes, maybe. Even 3.14 is a lot more accurate.

<comment><USER69> or 355 / 113\. I memorized 113355. good enough for a lot. initially got it from [https://colorforth.github.io/pi.htm](https://colorforth.github.io/pi.htm)

</comment></comment></comment></comment><comment><USER70> Does not seem to be very convenient for figures which are not the product of one of the first few members of the Fibonacci sequence and a power of 10, at least compared to multiplying by 1.6.

<comment><USER71> You can sometimes use it by breaking the number down into smaller Fibonacci numbers. For example 29km = 21km + 8km = 13 miles + 5 miles = 18 miles. (Correct result is 18.02 miles.)

</comment></comment><comment><USER72> The programmer's way would be to remember that 1.6 = (2^4)/10

</comment><comment> dfeojm-zlib What's interesting is that the absolute error converges to ~0.5399705049968784% (or a floating-point type or constant imprecision were introduced).

<comment><USER68> .5*(1+sqrt(5))/1.609344 - 1 = 0.00539970867005111... actually, but that doesn't seem interesting either. What do you mean?

</comment></comment><comment><USER73> Wait, doesn't everyone know there 1.6 times tables ?

<comment><USER67> I only had to learn tables up to 10, 11 and 12 were useful to know, but not mandatory.

<comment><USER74> I had one slightly eccentric teacher who decided that the 25 and 125 times table were also necessary. While I don't know about _necessary_ , I've definitely used that knowledge (possibly more useful to think of them as the one-quarter and one-eighth times tables with a shift).

16 would have also been useful for mi/km conversion and hex/dec conversion.

</comment></comment></comment><comment><USER75> It's all about 6 for me:

5 mi * 0.6 + 5 = 8 km

8 km * 0.6 = 4.8 mi

Or just use Frink [1]!

[1] [https://frinklang.org/](https://frinklang.org/)

</comment><comment><USER76> The even more useful conversion for me is inch to centimetre: F(n)in ~ F(n+2)cm

The Golden Ratio squared is 2.618 which is pretty close to 2.54.

<comment><USER19> That's also in the thread, posted by Oscar winner and Project Loon developer Dan Piponi, who also has a fantastic technical blog at blog.sigfpe.com

[https://mobile.twitter.com/sigfpe/status/1158465136891269121](https://mobile.twitter.com/sigfpe/status/1158465136891269121)

</comment></comment><comment><USER40> I made the mistake of reading some of the responses. This is your daily reminder to never read the Twitter comments.

</comment><comment><USER77> I usually just do plus half plus a tenth.

</comment><comment><USER78> And if it's big enough, just prepend 0x.

<comment><USER79> How does it work? 1000 miles = 1609.34 km. But 0x1000 = 4096.

</comment></comment><comment><USER80> Or you could just remember that a km is roughly 3/5 of a mile.

</comment><comment><USER81> lazy me: cmd+L 5mi = ?km <enter>

<comment><USER79> On Mac: Cmd + Space 5 mi (and you have the answer already)

<comment><USER82> Same on KDE: ALT+SPACE [https://i.postimg.cc/43ZSzJ2m/Schermata-2019-08-10-12-49-10....](https://i.postimg.cc/43ZSzJ2m/Schermata-2019-08-10-12-49-10.jpg)

</comment></comment></comment><comment><USER83> Fascinating that the second reply (or second best reply?) is an unreasonably angry response:

 _Who the hell needs all this .. Get lost [angry emoji]_

<comment><USER84> There are a fair number of people who seem to take personal offense that the US (and to some degree the UK) don't use SI for everyday types of things and add it to their laundry list of grievances about the US generally.

Never mind the fact that SI is generally used for engineering and other areas where it has legitimate advantages (which miles vs. kilometers doesn't really in day-to-day life).

<comment><USER85> > which miles vs. kilometers doesn't really in day-to-day life

Standard units are much more useful in carpentry. It's a lot easier when you can divide by 2,3,4, and 6.

<comment><USER86> I've heard that and I don't disagree with it. But things fail really badly. E.g. 2 inches and 5 sixteenth

<comment><USER87> I find this hilarious when watching DIY videos on YouTube.

All the makers are talking about "5/16 of an inch" and I'm trying to convert this to a metric value and it doesn't make any sense at all, because "complex" fractions like this are not used in every day life.</comment></comment></comment></comment></comment>


Number of ingredients in a major company's sub sandwich: 87 - <AUTHOR> http://blog.knifeandforkproject.com/post/8341205746/waiter-theres-a-tbhq-in-my-soup

<comment><USER2> I'd wager that every single one of these commercially available sandwiches comes loaded with high fructose corn syrup in some way shape or form (probably injected in the processed meat)

"it _is_ our belief that you should eat with your mind first. Know what's in your food, and know why it's there."

Excellent closing line and one that I resonate with strongly.</comment>


Founders at Work p. 392 James Currier encourages you to lie to VCs! - <AUTHOR>

<comment><AUTHOR> "Well, of course you sometimes have to exaggerate. If you think there are three places where you can get a lease, then you just say you have a lease so you can move to the next step. You've got to say you are a step ahead of where you actually are to move to the step that you want to be at.

To move to step two, people have to believe that you're already at step two so there's no risk for them. Because they don't want to take on your risk -- you have to take it all on. And then you have to take on the risk of fibbing."

<comment><USER2> Investors do want to see confidence and saying "We have three leasing options, hopefully we'll get one" is not as good as "We will be signing a lease very soon". Perhaps his VCs aren't very good and he feels forced to tell them what they want to hear?

<comment><USER3> I think this is a matter of Knowing the Audience, and giving them the details that matter to them..

For instance, if you know what's going on with lease information- You've done this before, you're all set, bringing up the lease at all is just going to cause confusion.

Your VC will spend time talking about the issue, when you need his advice on issue X, or Y..

I think this is an issue where lying isn't really appropriate, but choosing what to raise as topics of discussion is more useful.</comment></comment></comment>


Economists missed the brewing crisis. Now many are asking: How can we do better? - <AUTHOR> http://www.boston.com/bostonglobe/ideas/articles/2008/12/21/paradigm_lost/?page=full <comment><USER3> Reading articles like this is so infuriating...MANY economists (and non- economist bloggers) have been predicting this scenario for years. Saying "Ya, but they didn't tell us _when_ it would happen, so they are no better than the others" is a total cop out. You would think that in a field that is largely (although not totally) scientific, when leading figures are shown to be so spectacularly wrong, that they might become at least slightly curious of the theories of people in other camps that predicted it. But instead, they essentially say no one could have predicted this. Bollocks. Lots of people predicted this. I daresay only a university educated economist could not see this coming. Any number of very simple mental experiments involving simple multiplication showed that what we've been experiencing was _at least_ unsustainable, but they never even admitted to that.

"Already, the crisis is reshaping long-running debates. It has chastened believers in the self-correcting abilities of the free market - Alan Greenspan said as much before Congress in October - and emboldened those who see the need for more active government intervention." > Well, it's not causing the proper debates, for example, which camp has the most correct theory? The Austrians _told_ you this was coming, yet you still act like they don't exist, why is that? And as for the self-correcting abilities of the market, that's exactly what is happening now, and the reason it is so painful and shocking is because the natural correction was circumvented several times in the past.

"Today's crisis has brought Keynes back to the center of the discussion, but some economists also see it driving the field into new territory. Up until very recently, the study of market bubbles was marginalized - there was no widely accepted definition of what a bubble was, and some economists, believers in the complete rationality of markets, argued that bubbles didn't even exist." > Well, can we finally agree that bubbles are possible and did exist? There certainly wasn't a "widely accepted" definition of a bubble, but there were many who defined one, and said we were in one. Should perhaps the people that couldn't decide before sit down and listen to the people that said we were in one so they can learn something for a change?

"Robert Lucas, an economist and Nobel laureate at the University of Chicago and a champion of the rationality of markets, doesn't see much fundamental change coming out of the crisis, either. What it has reminded us of, he argues, is simply the impossibility of seeing these events in advance. I don't know anybody involved who thought he could predict these turning points. Do macroeconomists know as much as we thought we did?" he asks. "Of course not." > What a disgraceful display of intellectual dishonesty, or else outright ignorance, which would be even worse.

All of these children should be sent to their room and forced to read Murray Rothbard, Mish, Peter Schiff, etc and not come out until they can finally write a convincing essay on why we were obviously in a bubble.

</comment><comment><USER4> Quite a few did not miss the crisis. Peter Schiff comes to mind.

<http://www.youtube.com/watch?v=2I0QN-FYkpw>

This isn't a question of economists focusing on things that were too abstract or that somehow these crises are just inherently unpredictable. This was caused by the widespread idea that you can legislate away economic problems e.g. 1% interest rates following the tech bubble. You can't subvert reality with clever accounting tricks. Eventually the chickens come home to roost.

<comment> puzzle-out Your right - there were a number of people predicting this, but when you had year on year growth, their voices seemed less relevant. I was guilty of this - I went to an Entrepreneurs dinner two years back where Jim Mellon, the guest speaker, basically told us that the economy was in for a huge downturn. But oddly enough, he was delivering his message in the wrong environment - <USER2> paid for dinner, swish restaurant, lots of nice wine - so I don't think we really registered what he was saying. He gave away free copies of his book, "Wake Up", and it now makes fairly prophetic reading.

</comment></comment><comment><USER5> Stop respecting the predictions of economists. It is a social science that pretends to be a hard science, with disastrous results. Can anyone justify the efficient market hypothesis after the current crisis? This is all explained very well in The Black Swan.

<comment><USER4> A crucial point in The Black Swam is that randomness is relative. Something that's random to you is not necessarily random to someone else (i.e. the dots in the sky were randomly distributed and unpredictable to many people a few thousand years ago.) It's all about how much knowledge you have about the system.

So don't listen to SOME economists, and keep in mind their track record of predictions. Not all economists are equally bad.

</comment></comment><comment><USER6> Did anybody else read the headline and think "OMG, brewing is in crisis, too! Without my beer I'll never survive the downturn!"

<comment><USER7> Yes. Just back from holidays and a problem with beer was concerning. Very relieved that it's just the economy.</comment></comment>


Mod_pagespeed is an Apache module that automatically optimizes web pages - <AUTHOR> http://code.google.com/speed/page-speed/docs/module.html

<comment><USER2> Previously..

<http://news.ycombinator.com/item?id=1865249></comment>


Chan Zuckerberg Initiative donates $3.6M to fight SF Bay housing crisis - <AUTHOR> https://techcrunch.com/2017/02/06/chan-zuckerberg-housing/ <comment><USER2> > The money will allow the CLSEPA to hire several additional lawyers, and is > expected to help 2,500 residents over the course of three years.

3.1 million will go to mostly lawyers to fight for current tenants? Isn't it _legal_ to evict tenants with a penalty or some other form of compensation? I feel the whole bay area needs more housing or stricter laws/higher taxes for people who own multiple residences (not for personal use/renting).</comment>


React Developer Roadmap - <AUTHOR> https://github.com/adam-golab/react-developer-roadmap <comment><USER2> Formik is missing from the Form Helpers section. It's (arguably) better than Redux Form because it doesn't push every keystroke change through a reducer.</comment>


On Mongo Rants ... - <AUTHOR> http://discursive.com/2012/12/03/mongodb-stole-my-lunch-money-and-ruined-my-startup/

<comment><USER2> I agree there has been a lot of 'negative' reviews and anecdotes. Mongo has its own market and its own purpose. The idiots who don't take the time to understand it fully, or even 50% of the way, will certainly run into caveats. This happens in EVERY DEV ENVIRONMENT. Not just Mongo...

Think XCode... Postgres... Cassandra... REDIS... jQuery... .NET anyone?

Negativity levels are a reflection on one's own preparations (or lack thereof).</comment>


One Linux over all: Mark Shuttleworth's ambitious post-PC plans for Ubuntu - <AUTHOR> http://gigaom.com/2013/05/02/one-linux-over-all-mark-shuttleworths-ambitious-post-pc-plans-for-ubuntu/

<comment><USER2> I'm looking forward to being able to pop into a mobile phone shop here in the UK and buy a phone running Ubuntu. Canonical being _based_ in London at least (although a multi-timezone company).

However, I _wish_ somehow things like this...

[https://bugs.launchpad.net/ubuntu/+source/indicator- appmenu/...](https://bugs.launchpad.net/ubuntu/+source/indicator- appmenu/+bug/1153350)

could get fixed slightly quicker. If I had the skills, I'd have a go. The bug affects the integration of LibreOffice with Unity, and is the reason I'm sitting out 13.04 using Ubuntustudio. It isn't just UI feedback on highlighting, the 'accelerator key' menu shortcuts don't work, neither does HUD. See comment 3 on the bug.</comment>