Why Ruby is an acceptable Lisp (2005) - <AUTHOR> http://www.randomhacks.net/2005/12/03/why-ruby-is-an-acceptable-lisp/ <comment><USER2> Author here. Let me explain where this article came from, since people keep digging it up every few years to discuss it. :-)

I spent some time during the late 90s learning all kinds of cool ways to use Lisp, courtesy of a couple Boston startups, including IS Robotics (now better known as iRobot). And I'd helped introduce Scheme to another employer. Scheme made it ridiculously easy to create domain-specific languages, but it was obviously a niche technology.

Around the same time, I'd heard Matz speak to a room full of Lisp hackers at the Lightweight Languages conference. He'd elegantly explained why Ruby was cool several years before Rails became widespread. But I don't think many of us understood what he was saying until later.

When I finally realized—thanks to Rails—that Ruby could mimic many of the most common Lisp metaprogramming tricks, I mentally kicked myself and wrote this blog post. There were a lot of great responses from other bloggers, too. My goal was to help make other people aware of some fun new possibilities.

Anyway, if anybody has any questions, I'll try to answer them later this evening when I'm back online. It's fun to remember when this stuff was so new.

<comment><USER3> Interesting article and thanks for chiming back in. I also discovered and enjoyed the metaprogramming features of _ruby_ perhaps 5+ years ago. As I've been learning it recently, can I ask if you have any particular take on _lua_? To me, it feels a bit paired back, more purist, smaller core/libraries than _ruby_ , but also drawing from the same tradition - ie. _lua_ 's tables/functions equate well to lisp's lists/S-expressions (though practically largely equivalent and including metaprogramming support) - despite not being directly derived from a lisp.

<comment><USER2> Lua looks like a nice language, but I've never really tried it. The Lua JITs are really impressive.

Metaprogramming is a pretty widespread feature these days. Even Rust, for example, has both Scheme-style rewrite-rule macros, and (unstable) programmatic macros, for example.

</comment></comment></comment><comment><USER4> For a 2005 article, this is totally awesome, as well as that Steve Yegge response. But in 2016, it's hard for me not to get excited about what's seeming like Clojure's upward trajectory into the mainstream and want to jump on board 100%. To paraphrase Rich Hickey, Lisp and immutable functional programming totally rock, and the JVM and Javascript just reach (ClojureScript). As our systems get bigger and more quality is demanded from our software, it'd be so cool if we could get behind this as a standard, in all the growing technology fields -- web and mobile (Om.next for React and React Native), big data, AI/machine learning, Dockerization/containerization and even decentralized stuff (Pelle Braendgaard's Cloth library for Ethereum is a start, and I was just talking with some awesome people in the Clojure Slack channel working on Boot tasks for IPFS, and soon the Golem Network project will be launched which will be super dope). Hell, even designers can start designing in Clojure now. It's just Simple, and as the community grows, rallying behind it is only going to get Easier. People were raving with React Native about how JavaScript developers could now all the sudden start coding mobile apps. How cool would it be if there was just one awesome language, the one true immutable functional Lisp, where everybody in tech could understand each other and collaborate? I genuinely think this is Lisp's revenge (shoutout David Nolen!).

It's been tough for me as a new developer to learn this stuff without nearly as many resources as there are in the Python and Ruby communities for beginners, but there's no question this is the (near-term) future. Plus, a lot of that stuff just complects everything anyways and doesn't have to apply anymore (read: mutable state, no Value on Values).

Let's keep it Lispy. ;)

<comment><USER5> ...No. Clojure _is_ lisp, but it's a weird little language, and most of us lispers schemers aren't really totally happy with it. We're used to more flexability, less functionalism, and less opinionation. Plus, Clojure's equality and conses don't work at all the way a lisper would expect, and the conses are way less useful.

There's a reason there will never be a universal language.

<comment><USER6> As a clojure fan, I agree about conses. It's rare to use something like that.

Personally I'm happy equality doesn't work like common lisp. See here for a post explaining equality in CL: [http://eli.thegreenplace.net/2004/08/08/equality-in- lisp](http://eli.thegreenplace.net/2004/08/08/equality-in-lisp)

It's old and I don't use common lisp, so please correct me or the post if needed.

I've tried to get into lisp numerous times. Clojure was the one that clicked for me. I can't say if that's because of clojure or because it was just the right time for me after N times trying to get lisp.

Every now and then I poke at a scheme or CL. Scheme seems do-able for me, particularly Chicken Scheme, but I everytime I try CL, I come across what seems like too many functions to do what it seems like one function should do. Whenever I see something like SETQ, etc., that's a big turn off for me.

On the other hand, I really dislike Clojure startup times. Doesn't matter for server/long running apps, but when you are debugging or iterating, it gets to be a pain. There are some mitigations with their own set of issues.

Pixie and Hy have been brought to my attention. Pixie seems more or less abandoned, but Hy looks interesting. I haven't been able to tell from the docs if it has clojure datastructures (which are the best part of clojure), but Pixie does. So maybe sometime I'll try to bring those over to Hy and see if they get accepted.

<comment><USER7> How are conses in Clojure different from those in Scheme? Is it the implementation? Because the API seems the exact same to me.

<comment><USER8> Not a Clojure developer but, IIRC, Clojure doesn't have conses, but rather the function cons creates a seq. A Seq in Clojure is immutable and (usually) lazy, which is nothing like what CONS makes in lisp (a mutable pair that is the basis for building singly-linked lists).

Note that linked-lists are only a good data structure in fairly narrow contexts (e.g. shared structure, certain types of mutation you can do). Since Clojure is focused on limiting mutation, it makes sense for them to use Seqs instead of linked-lists.

<comment><USER9> Didn't racket also make the decision to make cons create immutable lists (and using mcons for mutable lists)?

<comment><USER5> But that's not what Clojure did. In clojure, cons cells aren't cons cells: they're a cell that can point to a sequence of some type, and contain a pointer to arbitrary data. They also do not make up lists, and have weird equality rules.

Racket's conses are merely immutable.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Steve Yegge's response:

[http://steve-yegge.blogspot.com/2006/04/lisp-is-not- acceptab...](http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable- lisp.html?m=1)

<comment><USER11> Yegge's predictions don't always come through, but he basically predicted Clojure. (The "someone will Thorvalds Arc" bit.)

</comment></comment><comment><USER12> > The most common use of LISP macros is to avoid typing lambda quite so much

LispWorks

        CL-USER 1 > (let ((n-macros 0) (n-with-macros 0) (with-macros nil))
                      (do-all-symbols (s (values n-macros n-with-macros))
                        (when (macro-function s)
                          (incf n-macros)
                          (let ((name (symbol-name s)))
                            (when (and name
                                       (> (length name) 4)
                                       (string-equal name "WITH" :start1 0 :end1 4))
                              (incf n-with-macros)
                              (push s with-macros))))))
        1186  ; macros
        182   ; with- macros

Note also that

        (with-slots (a b)
            foo
          (+ a b))

is not the same as:

        (call-with-slots foo
                         '(a b)
                         (lambda (a b) (+ a b)))

</comment><comment><USER13> Tcl is a better lisp than Ruby. Homoiconic. Yield and tailcall make it easy to implement FP idioms. Macros available if needed.

<comment><USER14> Wish more people understood this about tcl

<comment><USER15> Maybe this is meta (the wish) :-)

I remember tcl in the early 90s then it disappeared from my radar, mostly web and mobile apps. Honest question: is it still relevant in some application area?

<comment><USER5> It's still great at what it was always great at: embedding, acting as a CLI, and doing random grunt work. It's Lua's main competitor, but it can also go toe-to-toe with python and ruby in terms of libraries in some areas (although by no means all of them). In particular, the ease of construction for graphical applications is arguably unmatched (IUP is probably the closest), SQLite was built to work with it, metakit is handy as well in the DB area, it has a great event loop, several OO models, solid unix integration, sold FFI and excellent embedding (as you'd expect), Starkits, which means you can distribute your whole TCL sourcetree as a single file, and a ton of other stuff.

So while it's not as popular, relevancy isn't an issue.

<comment><USER14> This comment is a great representation of tcl's relevance, which is nice to see because tcl is often dismissed nowadays by people who don't understand it

</comment></comment></comment></comment></comment><comment> white-flame 1) "Ruby is a denser functional language than Lisp"

Lisp is a regular, explicit language. It does not strive for micro-density, but rather tends to achieve macro-density by allowing more expressive abstraction and transformation in the larger componentry of your projects. Its regularity around parenthetical s-expressions is the source of its expressive power.

Things like "(+ (aref x 3) 4)" are larger than "x[3]+4", but the operations and source code representation in Lisp are directly accessible to matching and transformation without having to go through extra rigmarole to deal with classes of AST node objects or whatever. This makes the usefulness of these features immediately accessible for everybody, and useful for quick utility, not just major undertakings.

2) "Ruby gives you about 80% of what you want from macros"

I'm sorry, but this section is simply ignorant of what Lisp macros are for. Simple syntactic sugar is obviously possible with macros, but certainly not its major use. Providing abstract constructs that require custom code generation, creating lower-level boilerplate (like auto-creation of introspective data structures and customized support functions), and wrapping custom behavior around inline scopes are the primary uses I've seen and used. Ruby can do a little of it, but I see no "80% of what you want" there.

3) "Ruby's libraries, community, and momentum are good"

Quicklisp was created after this article was written, and has been a godsend to the community. Lisp tends to develop a very roll-your-own culture because of its quick accessibility of creating abstractions, but the ease at which you can publish & reach for libraries with QL has brought a lot of cultural shift towards reuse. There are a ton of both esoteric and practical libraries out there, and common libraries for threading, networking, OS interaction, etc, are the common case now (and actually have been for quite a while before Quicklisp as well).

There's tons of interoperating flexibility because the language provides a huge baseline (especially its object system), so it doesn't all need to lock into an on-top-of-Lisp infrastructure that would constrain the programmer's options. It's a good time to be in Common Lisp.

</comment><comment><USER16> I have read the point about hygienic macros before. I have been working with racket and common lisp and I cannot tell you have annoying it is to be trying to learn macros and continually having to fight racket to let me do what I want. CL on the other hand seems to get out of the way and let me shoot myself in the foot just fine. I'd say that from a learning standpoint hygienic macros (ala define-syntax) are a roadblock because they introduce a whole bunch of hidden state which is hard to build a mental model of until after you have encountered regular macros.

</comment><comment><USER17> A classic. Should have (2005) in the title. Previously on HN: [https://news.ycombinator.com/item?id=416589](https://news.ycombinator.com/item?id=416589) and [https://news.ycombinator.com/item?id=825809](https://news.ycombinator.com/item?id=825809)

And a follow-up: [https://news.ycombinator.com/item?id=2279453](https://news.ycombinator.com/item?id=2279453)

<comment><AUTHOR> I just checked your links and gotta admit, you're right. Although, still I don't see why this has been posted "three" times before!

I think HN should add a URL checker in the submit page.

<comment><USER18> _I don 't see why this has been posted "three" times before_

Posts that are over a year old can be reposted. It's a way to get a fresh perspective on ideas.

<comment><USER19> Maybe an URL checker would _implicitly_ discourage reposts by warning about them.

If the URL checker were to present itself as a helpful aid for reposts ("You might want to use this title like the other 3 posters have used: X") it might avoid that result.

</comment></comment></comment></comment><comment><USER20> >But, for the sake of argument, I'd like to boil them down to two things:

> LISP is a dense functional language. > LISP has programmatic macros.

First of these is wrong and second is just picking something from feature list without any concern of practicality.

When someone writes Lisp as LISP and speaks about functional programming, I get the feeling that the author has not programmed with Lisp outside school (or knows only Scheme). Using toy examples don't help.

There is also problem with treating Lisp as a single entity. It's like Treating C++ and JavaScript as the same language because their syntax looks similar to someone who is not actually programming with them.

There are at least two major "schools" of lisp. Traditional Lisp style with Common Lisp as it's main representative, another being Emacs Lisp. The another is Scheme & Clojure camp that goes towards different goals.

<comment><USER2> > When someone writes Lisp as LISP and speaks about functional programming, I > get the feeling that the author has not programmed with Lisp outside school > (or knows only Scheme)

I've actually spent something like a dozen years writing Common Lisp and Scheme macros for production software. But I try not to put the nastiest ones in blog posts. :-)

In my experience, real-world Lisp was often a surprisingly functional language, certainly by the standards of the day.

Based on working with real-life Lisp code bases at four different organizations, I also stand by my description of what Lisp macros in production software typically looked like in 2005. Sure, there was the occasional elaborate macro that implemented something like Prolog in Lisp, and it was glorious. But the actual day-to-day workhorse Lisp macros were less flashy—most of them delayed evaluation, improved syntax, or performed simple transformations.

Many of these things are extremely valuable, but you don't necessarily need the full power of macros to implement them.

<comment><USER5> Like I said: the featured I find myself giving thanks for the most in lisp is 1) never having to remember syntax, or remember exactly how it works in ambiguous contexts, and 2) never having to figure out how to indent my code.

The big stuff is there when it matters, but the little stuff makes up the day- to-day.

</comment></comment></comment><comment><USER21> I'm glad to see this, and even more interested that it was written in 2005. I've read lots of rants about how awesome Lisp is supposed to be from Paul Graham and Steve Yegge and all. But I never see anything significant being written in it or using it, so I haven't felt all that tempted to try learning it.

Meanwhile, I've been using Ruby for a while, and the metaprogramming capabilities are pretty cool. It sounds a lot like what all of the Lisp enthusiasts are saying is so awesome about Lisp to me. So I've always wondered what it is that's so awesome about Lisp that Ruby doesn't already have.

<comment><USER5> Macros, arbitrary syntax transformation in macros, and object system as powerful as CLOS, and the ability to comfortably use almost any paradigm.

It's not always useful, but you'll be thankful when it is.

<comment><USER22> > Macros

I don't want my teammates writing macros. When the whole programming community constantly talks about situations within regular, more expressive languages (with syntax) like Python et al, where teammates look at each others code and are baffled ... I struggle to see a scenario where inventing syntax through macros is a good idea, and won't make that situation so much worse.

> arbitrary syntax transformation in macros

See above.

> object system as powerful as CLOS

If I wanted object systems, there are plenty of options that don't involve so many parens, and do involve far more expressive syntax than lisps offer.

> and the ability to comfortably use almost any paradigm

I kinda want my team to pick a set of known paradigms. This is not an advantage. I've never used a modern programming language and thought 'this lacks paradigms, if only I could let my team invent some, that none of us will understand 6 months from now'.

> It's not always useful, but you'll be thankful when it is.

From what you've said, I won't. I'll just be upset my teammates invented their own language with macros and whatever paradigms they chose to use that day.

The lisp 'trade-off' (homoiconicity over expressive syntax) just seems like it's looking for power in the wrong places. Power like that is more often bad than good.

<comment><USER23> On large team Lisp projects, you don't have every individual person arbitrarily invent their own idiosyncratic abstractions. The project as a whole has a common set of abstractions that fit the domain, which are designed and modified the way you would design the abstractions regardless of the language and programming paradigm you're using. Macros are a language tool that lets you build abstractions, in some cases imo allowing better abstractions than would be possible without macros, most often ones simulated somewhat clunkily with OO features (or something godawful like C++ template metaprogramming). But if you have a large team project you still need an actually functioning team, common abstractions, project management, documentation, code review, the usual stuff. Successful large Lisp projects of course do all that.

I don't see a meaningful difference here between Lisp and, say, C++. If you have a dysfunctional team writing C++, full of cowboy programmers who invent their own idiosyncratic abstractions without coordinating with anyone, the fact that C++ doesn't have proper macros doesn't really meaningfully limit the resulting damage. What stops it from happening in functional teams isn't that C++ the language prevents it from happening, but that the team has some kind of working process that allows them to successfully write code as a team.

<comment><USER22> > Macros are a language tool that lets you build abstractions, in some cases > imo allowing better abstractions than would be possible without macros

I guess 'better' is the operative word I question here. You're creating syntax that no-one has seen before. How is that a good thing? Meanwhile in languages like Python, with syntax built-in, people build large apps without ever doing this, making their code far more understandable for the next person that touches it.

> I don't see a meaningful difference here between Lisp and, say, C++.

Agree :) (joke)

> If you have a dysfunctional team writing C++, full of cowboy programmers

At no point am I suggesting we can save ourselves from cowboys ...

> What stops it from happening in functional teams isn't that [...] the > language prevents it from happening, but that the team has some kind of > working process that allows them to successfully write code as a team.

But people are arguing 'the whole point' of lisps is that you _can_ be free to do this, and that this justifies the 'paren-crazy', syntax-less language trade-off, and I'm yet to see any justification it's necessary to allow this at all.

What I'm saying is that all the lispy parens give you are footguns and all you're saying is that good teams don't use those guns. Well then why give them the guns at all. Why not give them a language with decent syntax instead.

<comment><USER24> > in languages like Python, with syntax built-in, people build large apps > without ever doing this, making their code far more understandable for the > next person that touches it.

No. Lack of macros makes code bigger, more error prone and harder to understand.

When I use something like cl-ppcre:do-register-groups, this one word hides all the loop orginization, and underlines meaning of local variables which are bound to regex groups.

Or cl-sql:select, which allows programmer to use SQL syntax as part of lisp while hiding special chars escaping, converting numbers to strings, ensuring sql-syntax is correct.

Or simplier example: gl:with-primitives, which hides glBegin(...); ... glEnd(). Note, it not just hides, it makes impossible to forget glEnd.

Macros makes life easier. Otherwise no one would use it. Macros such a convinient way to make an abstractions, that switching from Lisp to any other language becomes a great pain. One start to see tons of boilerplate code, which needs to be written by hands, checked for errors with eyes, which hides logic somewhere inside of boilerplate... It becomes better with practice, but nevertheless lisp nostalgia will last forever.

<comment><USER22> > No. Lack of macros makes code bigger, more error prone and harder to > understand.

I mean, that's provably not true. Or at least not provably true. Let's me throw out at alternative statement: Macros make code harder to understand.

> When I use something like cl-ppcre:do-register-groups, this one word hides > all the loop orginization

You don't need a lisp to hide things.

> Or cl-sql:select, which allows programmer to use SQL syntax as part of lisp

Eugh, why would I want SQL interspersed with my lisp.

> [...] gl:with-primitives, which hides glBegin(...); [...] Note, it not just > hides, it makes impossible to forget glEnd.

Python has 'with' statements and 'context managers' that do this (make sure some cleanup happens). [1]

> Macros makes life easier [...] such a convinient way to make an abstractions

They might make life easier for the person writing them _in the short term_. And I can see how when you find a really solid case for a macro and document it well, open source it etc, it can be broadly useful, but then why not add that case to the damn language. Instead you open the floodgates to everyone in your team writing macros that aren't widely understood.

> Otherwise no one would use it.

A lot of people avoid them like the plague in all other languages.

> but nevertheless lisp nostalgia will last forever.

Maybe that's all it is though.

[1] [https://docs.python.org/2/reference/compound_stmts.html#the-...](https://docs.python.org/2/reference/compound_stmts.html#the- with-statement)

<comment><USER5> So python's got a with statement. What of it didn't? Well then, you're screwed. Hope you like calling file.close().

If _lisp_ didn't have a with statement, you could add one yourself. And if _scheme_ didn't have a with statement... well, you could always add one, but before dynamic-wind got added, it could break if you weren't careful. Some things you can't just patch in. Anyways, now you'll say, "but python _does_ have a with statement!" But that was just an example: there are things python will never have that you can add to lisp yourself. Like multimethod dispatch and generics, anaphoric operators, lazy module loading, pattern matching, ADTs, regex literals (with readtables), non-deterministic operators (the classic amb/assert operators, for concisely expressing searching a list (although they're admittedly more toys than anything else)), and a full-on looping construct that allows for awk-style record processing of arbitrarily typed records from arbitrary sources (field splitting is handled by other functions). And that's just a few examples I came across. There are dozens of others.

That would never all be added to the language: there's way too much, and it's too specialized.

As for your theory that macros make code harder to understand, you don't have any proof. In fact, you have negative proof, as there's plenty of logic, good programming practice, and individual cases indicating that _careful_ use of macros can make code easier to understand.

<comment><USER22> > But that was just an example: there are things python will never have that > you can add to lisp yourself.

I don't want to. I want a language that has sensible norms.

> As for your theory that macros make code harder to understand, you don't > have any proof. In fact, you have negative proof,

Do I?

> as there's plenty of logic,

What logic? Show me. I simply don't believe you, as it's not provable.

> good programming practice

Still not proof. I believe the opposite, that it's not good programming practice to use macros.

> and individual cases indicating that careful use of macros can make code > easier to understand.

So anecdotal evidence, not proof.

You have no more proof than I have. My personal experience is that in _most_ mainstream languages, the most common arguments are over invention of frameworks/libs vs using existing ones, and those devs certainly would not be happy having macros thrown in the mix.

<comment><USER5> Lisp has sensible norms: Unlike you, however, we acknowledge that what may be a sensible norm for one situation isn't for another.

As for it not being good programming practice to use macros, it _isn 't_ good practice to use them excessively. However, they can be used to make your code much clearer. Here's the reasoning (no, it's not _proof_ , you're right on that front, but it's better than what you've got, which is just your opinion, AFAICT):

The larger a codebase grows, the more likely it becomes to contain bugs. The most common way to decrease the size of the codebase is to abstract away common idioms, only express them in one place, and reference that from other parts of your program. This is what functions and objects do. However, some idioms are incapable of being expressed as functions or objects. These idioms must be repeated over and over again, and often result in insidious bugs when somebody gets them subtly wrong. Macros allow you to capture those idioms and express them once, eliminating bugs. They also make the code easier to understand, by abstracting away complex logic.

So, if you really think macros are bad, than what's wrong with that line of thinking?

<comment><USER22> > Lisp has sensible norms

Again, in your opinion. And sorry to start blunt because I'm trying to round this out as we're getting nowhere :)

To me, writing my code like it's an AST, amid a ton of parens is not sensible. I've happily not done so in many other languages for over a decade, and I'm very happy with that state of affairs (or at least I'm relatively happy with the modern incarnations of C-style langs, e.g. Rust, Crystal, ES6, and I would be very unhappy if I had to chuck that in tomorrow and write lisp).

Generally agree with your train of thought on abstractions, and see how you arrive at macros. But my take is that it's simply not a good idea to go as far as macros, especially when the syntax sacrifice is so great. If the language is _truly_ missing something, take it up with the language authors.

(I've never encountered a situation in > 6 years of writing Python where I encountered something I could not do and needed macros for).

Again, my basic opinion is I see it as a trade-off, and one that I don't agree with. I think many others feel the same way if they get as far as understanding the purported benefits of homoiconicity. But most aren't willing to argue it on Hacker News and get downvoted to high hell (which is why I used a throwaway).

(I should note meanwhile in another thread someone wrote off the entire JS community as 'full of self-righteous assholes' [0] and got upvoted to top post).

Thanks for the discussion, it was an interesting experiment in arguing these thoughts I've had for a long time, as an 'abandoned' Clojure-curious dev. I'm a bit sad I didn't get any new answers, but appreciate the insight all the same.

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

<comment><USER5> Ugh. I am always annoyed by people who hate on JS.

As for syntactic "sacrifices", they're necessary for the most complex macros, not so much for the simple ones: rust has macros, too!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> Eric did a very good job predicting the direction of Ruby and Rails back in 2005, as well as the reasons why people chose them as tools over what existed at the time.

</comment><comment><USER26> The poingant guide link (implimentation of the "belongs_to" class function) is a string of redirects. Anyone have a copy of the original?

<comment><USER27> [http://poignant.guide/book/chapter-6.html#section3](http://poignant.guide/book/chapter-6.html#section3)

edit:

While I _love_ _why's guide, which can be very useful for learning ruby metaprogramming (and ruby in general), the technique presented there is a bit outdated. Modern ruby doesn't require such an "ugly" style because we now have Object#define_singleton_method[1] as a way of defining class level methods. There shouldn't be a need to use #instance_eval to define methods in the metaclass.

[1] [https://ruby-doc.org/core-2.2.2/Object.html#method-i- define_...](https://ruby-doc.org/core-2.2.2/Object.html#method-i- define_singleton_method)

</comment></comment><comment><USER28> I fail to see how it can be an acceptable Lisp when it lacks the AOT/JIT compilation as part of the standard toolchain and the development productivity of Common Lisp environments.

<comment><USER5> I don't have the love of CL development environments you do, but yeah, as a schemer, ruby's perf is kind of awful. We've got AOT, JIT, bytecode, and literally decades of research spend making these languages fast, and Ruby doesn't have that, or the hot code loading and quick iteration cycle that makes Lisp/Scheme realtime development so deliciously sweet.

To say nothing of our macro superpowers. But then, CLers still insist on on keeping the shotgun hovering over their foot, and insisting it's the only way to go about writing macros. Syntactic Closures and Implicit Renaming are both pretty cool. You guys should check them out.

<comment><USER28> I hardly have used Lisp besides Emacs Lisp and Clojure, but as a language geek I do have my collection of Lisp related stuff, mainly Xerox PARC, Lisp Machines and commercial CL environments.

Scheme also has environments like DrRaket, even if the language now has moved beyond its Scheme origins.

<comment><USER5> I don't know _how_ you got a lispm, but nice for you :-).

I was confusing you with Rainer (who, by coincedence, goes by the username lispm on HN), who actually _loves_ CL environments.

As for me, I set my store by Geiser. Integrated documentation from all the implmentations it supports, repl (as well as the capability to connect to a remote one), support for all three big Schemes, is an emacs extension, and has excellent docs? Consider me sold.

<comment><USER28> I wish.

I meant in what concerns papers, videos and magazines articles back from those days.

<comment><USER5> ...Ah. Yeah, I wish I had a lispm too, but I don't even have the more pedestrian antiques.

</comment></comment></comment></comment></comment></comment><comment><USER29> This is a pretty bad article. The part that makes Lisp unique is hardly lambdas (every language has them, even Javascript), or being functional, but rather stuff like homoiconicity (and therefore macros). And once one scrolls down to that part, it's full of ignorant statements like "the most common use of LISP macros is to avoid typing lambda quite so much". It demonstrates a fundamental misunderstanding of macros, because they're executed at the compilation step, before the program is run. It's a zero-cost abstraction (wrt performance). Not that anyone writing in Ruby cares about that.

Look at this example from the article:

(defmacro with-each-natural-number (n expr) `(each-natural-number (lambda (,n) ,expr)))

It assumes that the programmer already wrote a function each-natural-number that does the required functionality when another function is passed into it. That's the Ruby way, because it only has functions, not macros. A good Lisp programmer would never write such inefficient code. Why create a local function here when you can easily write a macro that expands into a loop with expr as its body?

So, indeed, if you write in Lisp as if it were Ruby, then Ruby is an acceptable Lisp. If you write in Lisp as it's supposed to be written, then Ruby is ridiculously restrictive, and slow.

<comment><USER30> Actually, that example is fairly idiomatic, it's called the "call-with" style.

From Google's Common Lisp style guide ( [https://google.github.io/styleguide/lispguide.xml#Macros](https://google.github.io/styleguide/lispguide.xml#Macros) ):

      You should follow the so-called CALL-WITH style when it
      applies. This style is explained at length in
      http://random-state.net/log/3390120648.html. The general
      principle is that the macro is strictly limited to
      processing the syntax, and as much of the semantics as
      possible is kept in normal functions. Therefore, a macro
      WITH-FOO is often limited to generating a call to an
      auxiliary function CALL-WITH-FOO with arguments deduced
      from the macro arguments. Macro &body arguments are
      typically wrapped into a lambda expression of which they
      become the body, which is passed as one of the arguments of
      the auxiliary function.

<comment><USER12> > when it applies

One of the problems here is that the function does get an anonymous function passed. That means the function can provide dynamic scope via constructs like CATCH, LET with dynamic bindings, UNWIND-PROTECT, and so on. But it can't rewrite any code in the passed function.

This can only be done in a macro.

<comment><USER30> Fair enough, I was just responding to this:

> A good Lisp programmer would never write such inefficient code. Why create a > local function here when you can easily write a macro that expands into a > loop with expr as its body?

The nice thing about the call-with style is that it makes it easier to redefine your macro's functionality without recompiling all the call sites.

</comment></comment></comment></comment><comment><USER31> Ruby is the lispification of Perl, according to its creator.

</comment><comment><USER32> No, It is not acceptable.</comment>


My foxhole radio - <AUTHOR> http://blog.jgc.org/2012/02/my-foxhole-radio.html <comment><AUTHOR> Funny what tickles the fancy of Hacker News, folks here might also enjoy my coffee can antenna that lets me leech WiFi from a hotel 1/4 mile away: [http://blog.jgc.org/2012/02/long-range-wifi-antenna-from- ill...](http://blog.jgc.org/2012/02/long-range-wifi-antenna-from-illy.html)

<comment><USER2> Is the coathanger antenna cut to a particular length?

<comment><AUTHOR> No, and it's of no importance. It's just something that will make an electrical connection with the coil and stay there.

Edit: I answered the wrong question here, thought he was talking about the coat hanger I used in the crystal radio set. In the case of the WiFi antenna it matters a lot!

<comment><USER3> It certainly does matter, especially on the transmitting side. It's just hard to predict how long it needs to be without breaking out antenna modeling software.

Here's a site with a few different wifi antenna designs and some antenna modeling: <http://www.lincomatic.com/wireless/homebrewant.html>

This site has a calculator for cantenna dimensions: <http://www.wikarekare.org/Antenna/WaveguideCan.html>

<comment><AUTHOR> Sorry, I was answering a different question (the original question was a bit unclear). The antenna length certainly does matter as you point out, I thought the parent was asking about the piece of coat hanger that I use to sweep along the coil to find stations in my crystal radio.

My mistake for misinterpreting the question.

</comment></comment></comment></comment></comment><comment><USER4> I made one with a hacksaw blade and no tuning arm a few years ago - could pick up a single nearby station (just about).

Have you looked into creating an earpiece/speaker? it's the "weak link" in such a basic setup.. always wondered if something could be cobbled together.

</comment><comment><USER5> Full marks only if bare copper wire was used and he cotton covered it himself!

<comment><USER3> And built the speaker. That's one thing I haven't done in a crystal set. Just a coil, magnet or even scrap steel, and the right paper.

</comment></comment><comment><USER6> How does the diode work?

<comment><AUTHOR> Bluing steel turns the coating of the steel in magnetite, Fe3O4, which is a semiconductor. The point of the pencil is graphite and the result is essentially a Schottky Diode: <http://en.wikipedia.org/wiki/Schottky_diode> They have a very low voltage drop which is vital for a crystal radio because the voltages involved are tiny and any lost voltage must be minimized.

<comment><USER6> Thanks for the informative answer. Now my next question. Why does a radio need a diode to operate?

<comment><USER7> AM radio works by modulating carrier wave (of constant, high frequency), by voice (small, variable frequency). You want to get the voice, and if you just connected signal from antenae to the speaker, it'll be vibrating too fast for you to hear the voice.

So you need to filter out the carrier part of the signal. Diode only allows current to flow one direction, and the rest of circuit allows it to discharge slowly (it has some capacity).

When there is unmoduled carrier wave (silence on radio), there is balance between the current that flows thoruhgt diode, and the current of discharge, so the voltage on speaker is more or less constant (probably not on 0 level, but it doesn't matter).

When carrier wave is modulated to half the amplitude, speakers gets less the voltage.

So speakers vibrate with voice wave frequency, not carrier wave frequency, so you can hear the voice.

Imagine you want to measure the daily sea level, and it's very windy (big waves). You can't just measure it once a day, because depending on the moment you'll measure high or low level of wave, and you want the average level. So you make a container that is filled by waves throught one-way pipe, and you drill small hole in the bottom of that container, so it leaks at a constant rate. When you tune the size of hole in the bottom, and the size of one-way pipe correctly, you can measure level of water in this container, and it will be proportional to the average level of water in the sea.

<comment><USER8> That's a remarkably clear explanation. I learnt something new, thank you very much for that!

</comment></comment></comment></comment></comment><comment><USER9> If you put a high-value resistor (between 220K-470K) in parallel across the crystal earpiece the audio will be much stronger/clearer.

OR you can use the high impedance earpiece form an old telephone instead of a crystal earpiece which will give a fantastic, clear and loud output.

My grandfather used to put his "cans" from his crystal set in a pudding bowl and it acted like a speaker -- several people gathered around could hear it at the same time.

A 300pf variable capacitor across the coil will also give you quite effective tuning.

<comment><AUTHOR> Thanks for the additional advice. I was planning to make a capacitor out of foil and newspaper interleaved. One day when I've finished all the other things I want to play around with...

<comment><USER3> There are lots of ways to homebrew variable capacitors. A sheet of glass and two pieces of scrap copper does well.

I have a "crystal" radio (uses a modern diode) all built on a paper towel tube. The coil is wound on the tube like usual but at the other end of the tube there's also a layer of foil and a smaller tube with a layer of foil that slides inside that to make a variable capacitor.

<comment><USER10> I once found this site with lots of interesting projects: <http://www.sparkbangbuzz.com/></comment></comment></comment></comment>


High rate of extrapair paternity in a human population - <AUTHOR> https://advances.sciencemag.org/content/6/8/eaay6195 <comment><USER2> What an unwieldy title.

But fascinating to see how much non-marital pregnancy varies depending on culture.

In Western culture, for example old UK traditions, there was a much stronger focus on inheritance, so extramarital kids were branded Bastard or Whoreson. [https://en.m.wikipedia.org/wiki/Bastard_(law_of_England_and_...](https://en.m.wikipedia.org/wiki/Bastard_\(law_of_England_and_Wales\))

It appears that in cultures without the need to insure blood lineage for political reasons, people were much more tolerant towards those kids.</comment>


Stroustrup: for its first 10 years, C++ had a fast coroutine library [pdf] - <AUTHOR> http://www.stroustrup.com/krill-2016-interview.pdf <comment><USER2> Please don't cherry-pick a single detail and make that the title of the article. That's a form of editorializing, which we ask users not to do.

If you want to point out what you think is important about a story, the way to do that is via a comment in the thread. Then your view will be on a level playing field with everyone else's.</comment>


Intro to Unintrusive JavaScript with Django - <AUTHOR> http://lethain.com/entry/2008/sep/21/intro-to-unintrusive-javascript-with-django/ <comment><USER2> I always thought the correct buzzword for what he's describing is "Unobtrusive Javascript." Google backs me with 120k search results for Unobtrusive vs 5.4k for Unintrusive. I do realize that the meaning is similar.

<comment><AUTHOR> I agree with you. The title comes from the author unedited.</comment></comment>


Nuance, Swype, Siri - the next steps in Mobile - <AUTHOR> http://microreviews.org/nuance-swype-siri-the-next-steps-in-mobile/ <comment><USER2> Vikash!!!! is it beginning of the end for Apple (Or d second nail in the coffin of Apple- First nail everybody knows!!)</comment>


Spam overwhelms e-mail messages (now 97%) - <AUTHOR> http://news.bbc.co.uk/2/hi/technology/7988579.stm

<comment><USER2> And on the flip side, I get very little spam to any of my inboxes.

This includes gmail, an exchange server using Frontbridge, and some personal domains running on dreamhost.

I'd be more interested to hear about what portion of this spam gets through modern filters.

<comment><USER3> Virus Bulletin has started testing the efficacity of spam filters and will be publishing the results. In the initial tests the best product caught 96.24% with a false positive rate of 0.06% (although there are some caveats---see the article below).

Using the ratios 97% is spam/3% is ham the ratio of spam to ham in your inbox using the best solution would be about 1.2. So you should see more spam in your inbox than ham, but not by much.

So it's probably manageable to manually delete the spam in the inbox (if annoying).

But the flip side is interesting. What's the ratio between false positives in the spam folder and captured spam messages? Using those figures above it's 1 in 50,000. i.e. almost impossible to manually look for false positives.

<http://www.virusbtn.com/vbspam/trialresults.xml>

<comment><USER4> I see significantly better results than that using gmail combined with the filter built in to Evolution. Spam almost never gets through. I would estimate that no more than 1 in 200 actual spams get through.

A somewhat higher number of newsletter-type messages from businesses I've bought from in the past show up. Many times, these messages are sent to everyone who orders, with no ability to not opt in when placing an order. I would assume these messages are not counted in that 97% figure.

</comment></comment></comment><comment><USER5> Isn't it so that the harder the spammers try, the easier it is to pick out their signatures?

</comment><comment><USER6> Like telemarketing killed landlines, spam killed email.

I rarely use it.

<comment><USER7> Telemarketing killed landlines? That doesn't seem quite correct...

And spam doesn't really seem to have killed email either, _you_ may rarely use it but the rest of the (connected) world does still seem to.</comment></comment>


Show HN: OpenFace – Face recognition with Google's FaceNet deep neural network - <AUTHOR> https://github.com/cmusatyalab/openface <comment><USER2> Very interesting, i recently worked with OpenBiometric [1] and made a guide how to use it very easy [2].

How different is OpenFace vs. OpenBR?

[1] [http://openbiometrics.org/](http://openbiometrics.org/)

[2] [https://github.com/kevinsimper/face- recognition](https://github.com/kevinsimper/face-recognition)

<comment><AUTHOR> Summary: OpenFace uses fundamentally different techniques (a deep neural network) for face recognition that OpenBR currently doesn't provide.

\--

As our initial ROC curve on LFW's similarity benchmark in [https://github.com/cmusatyalab/openface/blob/master/images/n...](https://github.com/cmusatyalab/openface/blob/master/images/nn4.v1.lfw.roc.png) shows, this approach results in slightly improved performance. The best point is an FPR of 0.0 and TPR of 1.0 (top left). You can see today's state-of-the- art private systems in the top left, followed by open source systems, then by historical techniques OpenCV provides like Eigenfaces. The dashed line in the middle shows what randomly guessing would provide.

OpenBR is going in a great direction for reproducible and open face recognition. They provide a pipeline for preprocessing and representing faces, as well as doing similarity and classification tasks on the representations. The techniques from OpenFace could be integrated into OpenBR's pipeline.

<comment><USER2> That sounds awesome, I don't quite understand it that about pipeline but maybe in future! hehe

</comment></comment></comment><comment><USER3> Would it help somehow if I provided the authors with some of my private photos for training the network? I have thousands photos that have faces/names tagged on them in my Photos app (OS X). If that would be of any help, I would happily provide some of them.

<comment><AUTHOR> Thanks for the offer! Our original model `nn4.v1` should perform OK on your data if you're interested in trying to automatically predict people in new images.

Training new models is currently dominated by huge industry datasets, which currently have 100's of millions of images. My current dataset is from datasets available for research and has ~500k images.

</comment></comment><comment> what-no-tests Without access to a crowdsourced database of faces-to-identities this library is next to useless.

<comment><USER4> Facebook?

<comment><USER5> Problem is not all photos (profile photos especially) are close-ups of a person's face. Although they could use facial tagging and maybe come up with a composite? I'm probably wrong though.

<comment><USER6> You don't need all photos, you can run a basic face recognition algorithm like the ones used in cameras to identify good candidates and just filter all other photos.

Profile photos are good enough, and with the amount of selfies people are taking there should be more than enough candidates for a full facial recognition matching.

Also facebook isn't the only social network, LinkedIn profile pictures are usually much better for facial recognition Google+ profile pictures are also usually quite good because they crop your face into that silly circle.

<comment><USER5> Oh I see. thanks for the explanation. LinkedIn definitely makes more sense too since more users will have clearer profile shots.</comment></comment></comment></comment></comment>


Have we overestimated the effectiveness of psychotherapy? - <AUTHOR> https://digest.bps.org.uk/2017/03/20/have-we-overestimated-the-effectiveness-of-psychotherapy/ <comment><USER3> Problems with therapy:

A. No standards of treatment. It is therapists choice, and therapists are free to pick and choose whatever they want. Because results are so hard to measure, therapists who are really bad at their job can continue to operate, dragging overall results for the field down.

B. Licensing requirements are all over the place. From psychologists with PhDs from well established institutions, to people who got an online professional degree. The type of training someone receives heavily impacts their approach to therapy, and the quality of their education determines how high quality their treatment program can be.

For fun sometime, pay the arm and a leg it costs to get a full battery of psychology tests done from a psychologist. You'll get a personality test and an actual IQ score. It takes a long time (multiple sessions each lasting a couple hours), but you will get to see the real scientific part of psychology.

I actually got a practical result out of it. My doctor was able to tell me that the reason I kept dropping cups was due to a co-morbid congenital condition. Apparently a certain % of people who have an underdeveloped optic nerve also have weak grip strength.

The grip strength trainer I bought has more than paid for itself in saved cups and glasses.

<comment><USER4> A) With regard to "no standards of treatment", that is not the case, at least in the US. Licensing and professional bodies for both Masters-level clinicians (LPCs, LMHCs, MFTs, MSWs and others) and Doctorates (PhDs, PsyDs) effectively mandate therapists rely on evidence based practices, and insurance companies are quick to push highly manualised behavioural therapies.

Private practice is one thing, but treatment outcomes _are_ tracked in CMH settings as well as IP psychiatric settings.

B) Licensure is _not_ all over the place. At a bare minimum, an independent clinician in the US will have several thousand hours of client contact (e.g. group facilitation), a thousand to fifteen hundred hours of 1:1 counselling with clients, a hundred hours of supervision, and have taken two years of graduate level coursework on psychology and psychotherapy, with the curriculum on its way to being standardised nationwide by CACREP.

Studies have demonstrated that treatment outcomes are not strongly correlated with clinicians' educational background, and that the perceived therapeutic alliance is the strongest predictor of success.

There are problems with psychotherapy research, but they're mostly those shared with the rest of the sciences.

<comment><USER5> pfft I like to ask every doc I go to, what outcomes they have produced in cases like mine and how many such cases they see a year. The CBT ppl just blink at me like the question is not on their manual. And one even said no great outcomes but here are the things you should do. Why would I spend my time doing them if they haven't produced results?

I mean these are nice people with good intentions but so is a priest in a church or a temple. The whole thing feels half baked. Ya ya I know reprogramming the mind is complex and this is a work in progress. But my experience from work and coaching team sports is people follow authority figures when in doubt/outcomes are unknown. And most shrinks and counsellors in my case atleast are unable to establish authority.

<comment><USER6> +1 I'm pretty sure multiple rounds of CBT made my anxiety disorders worse. The approach attracts hyper-rationalist types who aren't willing to say anything other than "Your thinking patterns are wrong, you need to fix them." No serious discussion of trauma, identity issues, or relationships. Pure gaslighting. Recently, I finally realized that what I needed was some serious introspection and an empathetic therapist who would help me work through it. For all the bluster about psychoanalysis being quackery, I'm not sure you can disagree with its basic premise that maladaptive personality traits are likely to come from the social context you spent most of your first ~18 years in.

<comment><USER7> Wouldn't many of your thinking patterns have come from your childhood and teenage years? How did none of this come up when you did CBT? Also, how did you do CBT without serious introspection? It sounds like the therapist you did CBT with just wasn't very good.

</comment></comment></comment></comment></comment><comment><USER8> I've wondered for a long time about crowdsourced "therapy" — a kind of it, anyway.

I don't want to just hear myself talk for an hour, which is usually what therapy amounts to for me anyway. I want other perspectives. I want to hear other people whove been through what I've been through talking deeply and honestly about their lives. And I want enough perspectives that I can figure out for myself what modes of thinking, strategies, etc, I might make the most use of.

The problem is most people are incredibly closed. Myself included. We don't talk about our internal mental life as it relates to the outside world. Well, we do - but not with much transparency. And we don't talk about our personal histories, our childhoods, our teenage years, etc. We don't talk about the intimate details of our lives.

(And we really shouldn't; to be clear. Not in a way that can be traced back to us. Much of personal histories are deeply embarrassing.)

And yet, we're supposed to figure out on our own what's normal and what isn't.

I feel like I've spent literally years learning things that other people figured out a long time ago.

I've been thinking for a while about making a website that's 100% anonymous (but moderated), but encourages people to write honestly about their own lives.

No advice. It wouldn't be about advice. It'd be only a repository of individual experiences.

I feel like such a site, if done well, could be a real boon to people who are struggling to figure out life, as I was.

<comment><USER9> I built a platform for myself to think about life's deepest questions, and I've been going around asking people their questions.

On my business cards are different set of questions, and here are some of the answers

[https://www.deepthoughtapp.com/packages/189/business- cards-i...](https://www.deepthoughtapp.com/packages/189/business-cards- introduction/)

So far I have 50,000+ questions, 3,600+ answers (mostly mine)

The platform isn't about advice, it's about people answering the deep questions to themselves.

</comment></comment><comment><USER10> I have undergone CBT with 5 therapists and so I am quite experienced with it. Every time I have been left completely and utterly disappointed.

One of the unfortunate problems I faced with psychotherapy was the convenient shift of outcome being dependent on the quality of care given by the therapist to the mental fortitude of the patient following through on their exercises. In every case it was my fault that I wasn't progressing, and I found this to be extremely frustrating.

It would go something like "Did your CBT methods help you not have a panic attack?", "No they didn't work and I threw up and collapsed in a Starbucks bathroom". "Oh well just practice more and identify those bad thoughts better and earlier and do some more breathing exercises and it will work out fine!"

My very last encounter with psychotherapy is when I went to a doctor and explained that CBT doesn't work for me and that I was looking for someone else who practiced other methods, and yet again they claimed that I needed more practice and that I probably had not mastered CBT. Although we don't practice lobotomies anymore, if you have severe issues mental health treatment is still in the stone age.

<comment><USER11> I've undergone CBT too and it always felt like quackery to me. The point of CBT seems to be to get people to accept their shitty circumstances instead of actually fixing things. Psychology is the new religion. Instead of saying "accept your shitty life, you'll be rewarded after death" they are saying "you think you have a shitty life, but you just need to look at it differently".

CBT felt like an exercise in self-deception to me. The 'bad thoughts' are a result of the shitty circumstances in life, so shouldn't we be working on those instead of trying to convince myself that shit doesn't stink ?

I strongly believe that 99% of people who visit a psychiatrist could be cured by just handing them 20 million dollars. That would return a persons freedom and remove a huge amount of stress-factors.

<comment><USER7> _CBT felt like an exercise in self-deception to me._

And what makes you think your current perception of the world is completely perfect and unbiased? Perhaps the problem is that you are convinced that you have the most accurate picture of the world and aren't questioning it.

<comment> J-dawg My own experiences with depression have made me think you're both partially correct.

I feel like happiness _is_ about learning how to deceive yourself. It's about learning how to put a positive spin on everything, and internalise it.

I struggle with this because I don't want to deceive myself. But then I'm probably deceiving myself in the opposite direction with all sorts of negative thoughts.

<comment><USER7> Personally, I have found it helps to just always try to take a pragmatic perspective: how is what I'm doing right now helping me achieve what I want in life? If you spend an hour thinking about how you suck at various aspects of your life, how is it making you feel? When you feel that way, are you in the best state of mind to achieve your goals? Absolutely not. So you need strategies to deal with those useless thoughts. Distract yourself with something else or reframe your thinking somehow. In the long run, the ideal would be to not have those unhelpful automatic thoughts at all (this is what therapy is for) but in the short run, they are there and you gotta find a way to deal with and manage them if you want to move your life forward. Meditation/mindfulness can be extremely helpful in this regard. I'd highly recommend "The Mindful Way Through Depression" to learn some techniques to help. The goal here should be to catch yourself sooner when you're thinking unhelpful thoughts instead of marinating in them for a long period of time (and creating a more negative effect on your mood) and learning a strategy to get out of that mode of thinking.

<comment><USER11> > If you spend an hour thinking about how you suck at various aspects of your > life, how is it making you feel?

It doesn't matter how you feel about it. You need to focus on the bad things in life if you want to have a chance of improving things. Burying your head in the sand doesn't solve anything. Don't waste your time focussing on the good stuff, it doesn't need fixing.

If all you want to do is feel good despite everything around you being shit, why not just do heroin ? You'll feel great and it's a lot less effort than convincing yourself that black is white.

<comment><USER7> How is it that how you feel about yourself does not matter? It matters quite a bit. I also never said to bury your head in the sand and not improve anything? What I am saying is actually the exact opposite of that. Let me give an example: suppose you wanted to get in shape by going to the gym. You can sit around and think "I'm so out of shape", "I'm going to embarrass myself at the gym", "I won't be able to keep it up", etc. None of this is helping you with your original goal, which is going to the gym and getting in shape. Not only that, these thoughts are driving your mood down and making it less likely you will follow through on your plans, not more likely. These are the exact type of thoughts which depressed people deal with every single day. You can't just force them to stop occurring whenever you want, this is just what depression is. The ideal would be to change whatever core beliefs and assumptions are leading to these thoughts, but making that change with therapy can take a very long time. What you can do is take a more proactive approach early on to recognize these thoughts when they occur and deal with them every single time they come up (which will depend on how depressed you are). This may not stop the thoughts from occurring but you will have a strategy to keep yourself from self-defeating behavior.

<comment><USER11> > You can sit around and think "I'm so out of shape", "I'm going to embarrass > myself at the gym", "I won't be able to keep it up", etc. None of this is > helping you with your original goal

But they are _true_ though. If it's a choice between being miserable and acknowledging the truth, or being happy in a delusion of your own making, I'll choose the truth every time.

I think people are being labelled as depressed way too often. In many cases it's just a natural reaction to having a shit life. Anyone would feel like crap, it's perfectly normal. The solution is to fix your life, not to convince youself nothing is wrong. If you don't manage to delude yourself, if you see the world as it actually is, you get labelled as 'depressed'. It's not because you have to work 2 minimum wage jobs to make ends meet that you feel like crap, no something is wrong with YOU. CBT is basically a form of victim blaming.

<comment><USER7> You are very confused. I'm not saying those things aren't true. I'm saying they are just unhelpful. I'm not saying to delude yourself by saying "Actually, I am in shape", "I will never embarrass myself at the gym" or "I'll be able to keep this up forever". I'm saying, think more productive thoughts that will get you closer to your goal. For example, you say to yourself "I'm so out of shape. I hate how I look". What you want to do is catch yourself and ask "How are these thoughts helping me get in better shape?". They aren't. They are only hurting you. Going to the gym and working out is what will get you in shape, regardless of whether your thoughts are positive or negative. But thinking negatively all the time will sap your motivation and enjoyment of life.

Edit: I also want to acknowledge this:

 _If it's a choice between being miserable and acknowledging the truth, or being happy in a delusion of your own making_

There are clearly other choices here that you are missing:

\- Think about something else that is not going to make you feel miserable. Take your dog for a walk, listen to some music you like, meditate. Relax, enjoy life.

\- Reframe your negative thoughts. For example, if I think "I'm going to embarrass myself at the gym, I might as well not go". A way to reframe this is "so what if I embarrass myself at the gym? I'm not an expert at lifting weights and working out and that is plainly clear by me being out of shape. If someone else doesn't like what I'm doing or the way I look, that is their problem. I'm trying to do something good for myself here and I'm not going to let other people get in my way".

\- Stop thinking your negative thought and make an action plan to fix it. For example "I'm so fat and out of shape". This will make you feel shitty for a brief period of time, but writing down a real plan that you can do to resolve the problem will make you feel better. The plan has to be doable. A lot of people make huge plans that are very difficult to execute. To make a doable plan to resolve a problem, you first may need to break the problem down in to smaller chunks. Also, it is important to remember that it doesn't matter if someone else was able to accomplish the same thing you're trying to do with less effort. The only thing that should matter to you is getting the results you want.

\- Tell yourself to worry about the problem later. Again, "I'm going to embarrass myself at the gym". Is this really a problem for you right now if you're not planning to go to the gym until tomorrow? It is not a problem for right now. Shelf it for later and do something right now that can make your life better.

\- Question your thought. Back to embarrassing yourself at the gym. You're making an assumption that the fit people at the gym are going to see an overweight person doing something incorrect and they will ridicule you for it. In reality, it is very likely that some of those people in the gym were once in your shoes, overweight and down on themselves and lost as to what to do. It is perhaps equally likely that someone will see your efforts and come over and offer you encouragement and advice. You may even make some friends.

\- One last thing can just be to accept the thought as reality and move on. The thought: "I won't be able to keep this up forever". Well, that is probably true, but does that mean you shouldn't try? Do you respect people who quit before they've even started? Your own internal response to this should be "I can't keep it up forever, but I can try my best because that is the type of person I want to be" and leave it at that. And you may even be wrong. Maybe you can keep going to the gym until you're 80. Or another thing to ask is if this thought even matters? Your goal is just to get in shape in the near future, not have a six pack in your 80s.

<comment><USER12> \- "But thinking negatively all the time will sap your motivation and enjoyment of life."

The thing is that people are not always embarrassed, because they like to feel embarrassed. You'll get comments, snarky, clever remarks that will stick in your head. You'll get people staring at you, pointing at you, laughing behind your back just in earshot. They'll twist the truth, saying your lazy or dimwitted. Those things make you feel negative too. Now you'll say, "but you got to break the vicious cycle!", but that's so easy to say. Even if you've been through the same, your experience is completely different. People get depressed because they see the work ahead to break out of that circle, and if it's big enough they start to contemplate their existence in life. Because at some point you'll learn, that after breaking this vicious cycle, there's a next, and a next. And the reward is often too small. It also definitely doesn't help that some people have it easier only because of sheer luck, and those same people will be the ones keeping you down - "where you belong".

Edit: For the record, I also think CBT sucks

<comment><USER7> I think what it comes down to is self compassion - you have to care about yourself, especially if you believe no one else does. This is something that doesn't just happen. You have to practice self compassion and do things for yourself. Another approach to build some self compassion is loving kindness meditation. Once you have some self compassion you can forgive yourself for some of your own faults. As you said, some of us are lucky and some of us are unlucky. Just like it's not the fault of the lucky people that they had good luck, it too is not your fault you had bad luck. Best not to dwell on what you can't have - all you do is torture yourself for no reason - and just focus on what you can have.

Edit: regarding what other people think, it is best to just focus on what you know to be true and challenge anything that could be potentially untrue. If someone ridicules you, they're a jerk. But don't engage in any sort of mind reading exercises. It is pointless torture. Focus on what you want for yourself and don't let other people's opinions distract you from your goal.

<comment><USER12> You're right of course, and this is something I've recently began to learn for myself (thanks for re-asserting). I just think this is a very difficult lesson to learn, since it goes so much against our social instincts (as humans).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I'm not psychotherapy's biggest fan, but I did do 2 years training in it, and I must say the world is a better place for psychotherapy's existence. Because before psychotherapy we were cutting bits of people's brains out and electrocuting them. For all Freud's frankly odd theories he was the first big name to stand up and suggest that well intentioned dialogue was enough to help traumatised people.

It's not rocket science, we don't need any big theories or research to know that talking helps. And of course by that same token some combinations of client and therapist are going to be constructive and some damaging. I believe psychotherapy is first and foremost an institution of accountability not academic theory.

<comment><USER14> > we were cutting bits of people's brains out and electrocuting them

in some cases. in other cases not.

see also: monasticism, healthy spiritual/religious practices.

<comment><USER15> ...monasticism was never healthy. I really defy someone to read the Rule of Saint Benedict and not think of a modern prison at least once. Monasticism is even considered spiritually dangerous at times, and is linked to its own specific sin, Acedia:

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

I recommend Kathleen Harris's The Noonday Demon for a good account of that. If anything, monastic life would destroy you if you suffered from depression, not heal you.

</comment></comment></comment><comment><USER16> Therapy has really helped me, for a number of reasons:

\- It helped reduce my stress level and helped me cope.

\- My therapists have made constructive, useful suggestions and provided insights that I hadn't thought of on my own.

\- I've faced and dealt with things I've avoided facing and dealing with on my own.

\- I've come to understand myself much better.

Those things alone are worth their weight in gold for me. That said, I've completely avoided CBT and related short-term, "evidence-based" therapies. Instead, I've preferred to work with therapists who have more of a Jungian, depth psychology approach, which are a much better fit for me.

In addition to therapy, in recent years I've been eating a lot healthier, started exercising and supplementing nutrients that I was deficient in and all of these changes have had a very positive effect on my mood, health, and energy level.

I also journal a lot, and that also helps me to destress and put things in perspective. It's often almost as good as talking to someone.

Back to the subject of therapy: I believe it's absolutely critical to find a therapist that you like, respect, and can easily talk to and open up to. The other half of the equation is your own willingness and ability to put in the hard work of both confronting the difficult issues you need to in therapy and following through outside of therapy. Without all of these things coming together, the results are likely to be disappointing.

</comment><comment> s-shellfish I've shared similar sentiments in various threads, but yes, for some people psychotherapy has an adverse effect.

I honestly believe this happens because the person getting therapy does not respond well to hyperfocus on themselves. There's a point at which oneself must be able to say 'yes, I'm okay, I don't need help anymore' and modern psychotherapy doesn't really have anything beyond 'algorithms' to really establish that.

Once labeled ill, it feels like it can be with you forever. I'm sure some mental health care professionals believe that's an essential crutch mentally ill people need, but from personal experience it can be just as handicapping as it is intended to be helpful.

Sometimes people just want to know they'll be psychologically fine independently, and that's not something psychotherapy can prove to a person while guiding them.

It's not an easy problem, but it exists. Also, pointing out problems doesn't mean oneself created them. It's something humanity needs to work on collectively.

</comment><comment><USER17> What I'd like to see is a comparison of psychotherapy to just paying a normal person with common sense but no psychological training to sit and listen and talk to people to help with their issues.

I'm convinced that the latter would be more effective most of the time, but I'd love to see it studied.

<comment><USER18> Same, I often feel that therapy is filling in a gap that really should be filled by friends and communities. Therapists at least have the training to not tell depressed people to cheer up, though.

<comment> J-dawg I'm stuck in this situation at the moment. I'm seeing a therapist but my main problem is loneliness. I find I look forward to our sessions just because I get the chance to talk to someone for an hour, but I'm not sure whether I'm gaining much else from the therapy.

</comment></comment></comment><comment><USER19> Certain treatments have outcomes with high variance even when practiced perfectly.

Combined with no clear way to evaluate whether the treatment is being applied well, this makes it difficult for practitioners and patients to evaluate treatment quality. Which discourages expertise development in the first place (why bother working really hard when the results are hard to pin down anyway?).

</comment><comment><USER20> > For the reader undertaking psychotherapy or who knows someone who is, it is > worth keeping some perspective: this is just one critique and the weight of > evidence still suggests that psychotherapy is, more often than not, > beneficial.

It's good to bring a more critical eye to the field - but be mindful that it's still overall beneficial. My own experience has lead me to find it helpful, but not able to really address the core of issues. And maybe that's too much to ask for - but it's certainly not something they object to trying to address.

</comment><comment><USER21> > Evangelou and his team conclude that the field of psychotherapy research > needs to work harder to ensure that negative results are published as well > as good news results, especially given the findings of another recent paper > suggesting that the field has a problem with undeclared researcher > allegiance to particular therapeutic approaches.

And from that other recent paper:

> Reviews with a conclusion in favour of psychological therapies (vs > pharmacological interventions) were at high risk for a spin in conclusions

For a field so rich in therapeutic models, I find it somewhat surprising that people are not more educated, walking in to visit with a therapist, as to what kind of model or therapy is being used, and what alternatives might be available.

I'm not a psychologist myself but rather a coach, and I love taking little breaks with my clients to move to a meta-perspective and walk them through the variety of models we can use together. Eventually they learn that each model has key leverage points as well as key weaknesses, and tying oneself to a single model as if it has no significant blind spots can quickly put one's desired outcomes at risk.

Maybe some psychologists here can weigh in; perhaps this is already a thing in the therapy world.

<comment><USER18> > For a field so rich in therapeutic models, I find it somewhat surprising > that people are not more educated, walking in to visit with a therapist, as > to what kind of model or therapy is being used, and what alternatives might > be available.

This seems like a bizarre expectation to me. People walking in about a stomach problem generally don't know much about that subject, either. I'm not sure what the ratio is, but unless you only see people from a very narrow background, I don't really see why the average person would be educated in psychological techniques any more than they're educated in types of rock.

</comment></comment><comment><USER22> When I worked in the health system, specifically around pain relief, there was a comparison of different approaches. Among them was "distraction therapy." That phrase has stuck with me, and I think it applies to many therapies people are mentioning here. It's basically a variation of "hit your head so you don't notice your sore elbow." But with the right application I think it can be entirely positive. If the attention required of therapy X shifts you away from problem Y, even if it's not really "helpful" on its own, then it's an excellent therapy. This is why some people realize they'd rather get a gym membership than therapy sessions. That said, I think psychotherapy, as an intentional focus on underlying or neurochemical issues, can go much deeper than this approach and should be considered by many people (though positive results could themselves be considered a 'distraction' if they don't address an inherent problems).

</comment><comment><USER23> I happen to have some knowledge and experience with something called "Neuro- Linguistic Programming". It's a rigorous but unscientific body of ideas and techniques that roughly amounts to an "operating system" for the human mind.

(From the POV of a computer programmer it is interesting to note that the origin of NLP involved the analysis of videos of therapy sessions of a few highly effective therapists[1], done with the aid of Chomsky's Transformational Grammar, which of course is related to the Chomsky hierarchy of grammars...)

I've always been disappointed that whenever people "do science to" NLP it seems to fall flat. I have to assume the studies are flawed somehow because I personally know damn well the techniques work. Yet the wikipedia entry is all about how it's a pseudoscience. It's a very frustrating situation.

[1] Virginia Satir, Fritz Perls, and Milton Erickson, I believe were the main ones.

<comment><USER24> I have a similar experience with a mix of therapies I've undertaken over the past few years.

The main ones I've used are NET, kinesiology, EFT/tapping and holotropic breathwork, and a bit of Erickson hypnotherapy.

I've been aware of NLP and dabbled in it a little about 10 years ago, but ended up finding the abovementioned approaches more effective for my issues.

But they seem to work at the same level; like NLP, NET and kinesiology focus on finding _incongruence_ in the body and mind, and undertaking a learning/healing process to enable transitioning to a state of _congruence_.

After 6-7 years of this work, I've almost completely overcome chronic fatigue, anxiety (social & general) and depression, as well as several other symptoms I can now recognise in retrospect (possibly a combination of borderline/histrionic/narcissistic PD symptoms).

There is some research indicating the effectiveness of NET [1], but it will have a hard time gaining mainstream acceptance given its origins/professional associations and the specifics of the treatment.

It's also super-hard to do a full-scale trial for these kinds of treatments, as it's very difficult to assemble cohorts of subjects with similar enough symptoms, and the it takes years for really profound changes to happen. So it's hard to imagine who would have the funds and the timeframes required to undertake the kind of study that would be necessary to properly test this stuff - not to mention who would have the incentive, given that there's no drug patent pot of gold at the end.

Yet year by year I keep doing these practices and my life keeps getting better, while I watch on as other people I know keep persisting with conventional psychology and psychiatry, without a whole lot of success beyond the superficial.

I've come to understand enough about what keeps the status quo in place to no longer be frustrated by it. My approach now is to share my experiences with whomever is interested, and trust that those who need/want to know about will take notice give it a try when they're ready.

Enough people have given these techniques a shot and gotten great results that I'm optimistic that more widespread acceptance can happen eventually, somehow.

[1] [http://www.onefoundation.org/current-research- updated/](http://www.onefoundation.org/current-research-updated/)

<comment><USER25> This sounds really interesting, and a comment like yours is exactly why I came to this thread.

      Yet year by year I keep doing these practices and my life keeps getting better [...]

Would you mind sharing more details on how you practice the above?

<comment><USER24> I've learned to tread cautiously with this stuff as it's a topic that triggers hostility in some, though plenty of others like yourself are looking for this info, so I'm happy to risk the backlash if it might help someone.

I should emphasise that anyone experiencing mental illness should consult a mainstream psychiatrist first, in case they need medication or other professional care. The techniques below are for people who have a solid baseline of mental health, but want to find better success and happiness in their career, relationships, etc.

For NET, search for "NetMindBody" and find a local practitioner. They're all over the world. Alternately, look for Psych-K or BodyTalk System - they're variants of the same concept. Ultimately you'll want to learn how to do it yourself rather than paying a practitioner, so you can search Meetup.com for "muscle testing" and you might find a local group and meet some like-minded folk on the same journey.

For "holotropic breathwork", a Google search will point you to solid info and local instructors. FYI it was conceived by Stanislav Grof, a psychiatrist who pioneered research into LSD before it was outlawed.

EFT/tapping is all over YouTube. Its biggest proponents push it as a be-all- and-end-all, but for me it's only been a small component of the overall approach, though still an important one at times.

Practitioners of Erickson hypnosis are everywhere, so it should be easy to find someone local. This one has also been minor for me but still valuable.

A well-known book offering some science behind the mind/body congruence concept is Bruce Lipton's 2006 book the Biology of Belief [1].

Lipton is a credentialed scientist himself (PhD cell biology researcher at Stanford School of Medicine), but he gets hand-wavy about concepts like epigenetics and quantum entanglement and leaves himself vulnerable to attack from mainstream skeptics.

But it's only by applying the principles he describes that I've been able to make the progress I've made over the past 6-7 years.

For more info, you're welcome to contact me directly - email in bio.

[1] [https://www.amazon.com/Biology-Belief-10th-Anniversary- Consc...](https://www.amazon.com/Biology-Belief-10th-Anniversary- Consciousness/dp/140195247X)

</comment></comment></comment></comment><comment><USER26> I participated in 3 CBT sessions 10 years ago I asked what will I get out of 6 sessions (the most my employer would pay for). The therapist said I would know my problems but not solved any of them. I did not attend any further sessions. I am a male programmer with bipolar. I did try a excel based survey labelled CBT which quantified where I was on general personality traits which was OK and free. I did read some popular therapy books. I could probably do with more work focussed excutive coach lite training if I could avoid the bad ones. I called works employee helpline recently, after a manic episode, I will see how that goes, it is more of a seen to be doing something rather than letting mania (occasionally) take its natural course.

</comment><comment><USER27> This article could be summarized in two sentences, both of which should be unsurprising to most HN readers:

1\. Publication bias means that the reported results for efficacy of psychotherapy are likely to be stronger than the actual efficacy. 2\. Observational studies showed a negative relationship between mental health outcomes and psychotherapy.

The clickbait title aside, 1 is not really news as this bias affects every field, especially social science, and has been widely reported. 2 is basically a no-op. You cannot under a causal relationship based only on observational studies. Full stop. The idea that people who developed poor mental health sought professional help is if anything more plausible than the clickbaity alternative.

</comment><comment><USER28> From the article:

> For the reader undertaking psychotherapy or who knows someone who is, it is > worth keeping some perspective: this is just one critique and the weight of > evidence still suggests that psychotherapy is, more often than not, > beneficial.

<comment><USER29> Does anyone have dependable reference for that?

</comment></comment><comment><USER30> I've had terrible martial arts instructors, inept teachers, ineffective professors, one brutal physiotherapist.

I presume that there are a fair share of bad psychotherapists as well.

That some people do not see improvement should not be surprising.

<comment><USER31> I don't think anyone would suggest that there should be perfectly consistent outcomes, rather, on the whole that outcomes should be positive. We know there will be poor performers.

The study is suggesting that 'on the whole', there are negative outcomes, implying that 'most psychotherapists' are just bad at what they do, or more likely, there's a more fundamental issue with the nature of psychotherapy itself.

</comment></comment><comment><USER32> Proponents of more "evidence based" psychotherapies usually oversell their "scientific" rigour (even if there are several question on their reproducibility) while usually leaving the patient's own characteristics in the background plane (or just ignoring it).

Realizing what you are feeling/thinking and being able to say that is halfway to the solution.

And yes, it is very dependant on practitioner and on the patient's own willingness. (In the same way exercise is good but if you run 100m per day or lift light weights at the gym it won't do much)

</comment><comment><USER33> The untold truth is that therapy is not for all people. Similarly, meditation is not for all people either. For some people, neither therapy nor meditation really work. For those people, medication to elevate mood is the only real option. I have seen too many therapists exploit this and raise hopes of their patients and try CBT for a long time without results. Just like any disease, you need to manage this and there is nothing wrong in taking medication to fix yourself.

</comment><comment><USER7> My viewpoint on mental health: how you feel at any given moment and how long that feeling will persist will depend on the structure of your brain and the environment in which your brain is in. There are a huge number of variables at play. This environment includes things like: baseline levels of chemical signalling of various kinds going on in your brain (this is plainly apparent when you do any sort of perception or mood altering substance which significantly changes the chemical signalling in your brain); physical health of the body attached to the brain; inputs from your senses and any feelings that may be arising as a result of these inputs; beliefs and assumptions about the world in which you're in; and finally structural considerations of your brain (e.g. is some part of your brain damaged or non-existent). For some people, the majority of problems lie in the "beliefs and assumptions about the world" variable and for these people, therapy is the answer. I imagine for the large majority of people, therapy may give some minor benefits but if you don't attend to your own physical and emotional needs on a regular basis, you are going to feel like garbage. This means eating a healthy diet (with enough calories), getting some exercise, spending time with family and friends, taking some time for yourself to relax and unwind. For those with persistent chemical signalling or structural problems in their brains, they may have to do way more to feel right, including getting on the right drugs and therapy for emotional support. It may suck, but we can only play the hand we're dealt.

A few more thoughts on this topic: the world we live in now is so different from the one humans evolved in. We eat different food and eat way more frequently than our ancestors did. We exercise way less and spend very long periods of time in low to medium stress situations instead of short periods of time in high stress situations, which is what our stress response system evolved for. Many of us live semi-isolated lives thinking about how we can help ourselves as individuals instead of living in small to medium sized groups thinking about how we can help ourselves within the context of the group (you would likely have to be doing prosocial things with higher regularity). While there are many advantages of living in the world we now live in as compared to how our paleolithic ancestors lived, there are some incompatibilities with how we have evolved and I think we should be doing more as a society to address these issues.

</comment><comment><USER34> The big problem with therapy is that it is too expensive to be available to most people. We need to find some viable alternative that doesn't depend on paying a very costly human to listen for an hour a week.

<comment><USER35> there are also a lot of quacks around. doesn't help that psychotheraphy really lacks a solid background in medicine tbh. we're only scratching the surface of the deep mind structures and issues stemming from there and how they all relate to trauma or even what trauma actually is and yet pretend like we can cure ailments talking people out of it.

</comment></comment><comment><USER36> You need some people in your life you click with.

</comment><comment><USER37> It depends. What do you think?

<comment><USER38> Severely underrated comment.

</comment></comment><comment><USER39> A big issue I see is this idea of judging outcomes as positive/negative, instead of accepting people's processes.

After starting therapy, I cut off communication from my parents at least twice. Is this a positive example of someone who's codependently avoiding their parents or someone learning to detach from their parents?

Trick question: it's both.

Another issue with measuring effectiveness is we aren't gathering information about the therapists' beliefs/mindsets. I dropped a therapist because she started adopting my own parents' financial insecurities, shouted "you're going to run out of money" at me a couple times during a session. Anxiety over money was a key issue for me, so I asked her multiple times not to repeat messages to me that might reinforce my thinking. She ended the session with a comment about running out of money, so I dropped her.

I've since gotten over my money anxieties to the point that I've essentially taken a vow of service & poverty as I try to minimize my participation in capitalism. While I'm happy and love my new life free from worrying about money or how to meet my needs, I don't know if this would be considered a desirable therapeutic outcome when considering the rest of society. Of course, society's wellbeing is also really subjective and we are slow to evaluate our culture for long-term effects.

I also started practicing Nonviolent Communication 2.5 years ago. For a while, I was kind of robotic in my communication style after, since I was structuring most sentences as "When (I|you) <observation without evaluation>, (I|you) feel <emotions without evaluation>, because (I|you) need <specific human need without specifying strategy for meeting the need>." Is this temporary rigidity considered negative? What about any person who sticks with the language they use throughout their life?

We program ourselves & each other with our words and I view therapy sessions as guided debugging sessions where I work to figure out ways I've programmed myself or been programmed that are unsustainable. This perspective is therapeutically useful to me & the success of my therapy sessions has deepened, as a result. These days, therapy is more of a safe guard to keep me in check as I play with my mind and perceptions, though I'm still working on my anxiety with writing. I don't know how any of that can be accounted for in these studies and while I may be an outlier, I know that learning to pay attention to outliers is how innovations can come about.

</comment><comment><USER40> My suspicion is that many people going to therapy are lacking in one or more items from the basic hierarchy of needs.

I went to therapy once. In hindsight I'd have been better off with a girlfriend and friend companionship.

I'd ask myself.

1\. Am I getting good quality sleep? 2\. Am I getting good quality food? 3\. Am I interacting with people socially? 4\. Am I sexually active? 5\. Am I physically active to the point of breaking sweat?

The mental and physical are intertwined and it is easy to forget to take care of yourself. Your machine requires maintenance.

I don't only mean sometimes take it easy - that too - but also people can grow very neurotic by ignoring their social and sexual needs, and like a machine - we are meant to perform functions - without which we can suffer aka a certain amount of physical or mental stress is good for us and we can err by doing too little or too much.

<comment><USER21> For a lot of people, deeply subjective-analytical thinking of this sort is very brittle, and they lack the experience that would teach them what to do even if they knew they were lacking some important thing on the hierarchy.

It also happens that some very depressed and anxious people will e.g. read only the "criticisms" portion of the Wikipedia page for the hierarchy concept, and determine in the end that what they need is an experienced professional rather than a possibly-unscientific concept. This is really sad to observe, because their inability to be open to certain kinds of information can make them more dependent, not less.

<comment><USER40> It is easy to dismiss 'get laid' as boorish and interpret 'did you get enough sleep?' or get out more' as semi-accusatory, because we're prone to thinking crude feedback is less apt for us, we must be more complex than this.

Look at the rise of ASMR videos. Millions of people desire an experience,a simulation, of being touched in a non-sexual way. This isn't a critique of ASMR - it's fine - but there's this simple need at the heart of it - <USER2> different to those gorillas grooming each other.

There's a running gag in AMSR circles where the ASMR viewer is interrupted by somebody and reacts by <laptop lid slam> pretending they were watching porn.

Hackerspaces and makerspaces are a great thing. I heard a quote recently "Women communicate, men shoulder to shoulder".

</comment></comment></comment><comment><USER41> Its glorified navel gazing. You can see everything in a navel, especially a lot of you and how that severed connection from your mother started all this trouble.

In the end, its some sort of synthetic friendship, which in a ultra- individualistic society has become rare. But its not resulting in good advice like true friendship. Its resulting in pushing egomaniac tendencies onwards.

Imagine a psychotheraphist not giving libertarian advice. "You should integrate more into your family, visit your brother more often, sacrifice a part of your life to the commons, so that the commons is more willing to sacrifice parts of its life to you.."

"I had a very bad vibe with that psychotherapist, i came to be unrepressed and he pushed for even more repression. In fact i think, i need therapy to overcome this therapy..."

</comment><comment><USER42> The only psychotherapy we need is from plant medicines. DMT and psilocybin are natural plant teachers that can help us through the traumas we go through in our life.

<comment><USER43> I'd add MDMA in there as well. It's had good results in testing for PTSD (look up MAPS) and it changed my life for sure. Not a plant, but I hold onto no idealism about that.

<comment><USER36> It was commonly synthesized from sassafras oil (safrole) so you can add it to the list I think:

[https://erowid.org/archive/rhodium/chemistry/safrolefaq.html](https://erowid.org/archive/rhodium/chemistry/safrolefaq.html)</comment></comment></comment>