Node, Twitter, and Apologies - <AUTHOR> http://blog.steveklabnik.com/posts/2013-01-23-node <comment><USER2> That is my number 1 complaint with Twitter. Sometimes when I write my tweets, I find that the app randomly inserts expletives and will turn the entire message into an @ reply. They must have some really wild NLP stuff going on too, because sometimes I'll even have words of praise switched out for ones of ridicule.

I mean, it's already hard enough to be civil in 140 characters.

<comment><USER3> Let's give the benefit of the doubt, maybe it was autocorrect and he was trying to be positive and civil on his phone, but his phone turned it into mean-spirited ridicule.

</comment></comment><comment><USER4> _accidentally being an asshole_

Is it just me or does this blog post just make this guy look like an even bigger asshole?

<comment><USER5> Lots of us are accidental assholes sometimes, if it means hurting someone's feelings without meaning to.

<comment><USER6> He was not being an accidental asshole. It's not just about hurting a person's feelings. 140 character limit aside, there are better ways of expressing your criticism without derision, and its better for the community if we try to maintain some decorum.

<comment><USER5> Who's arguing for derision and indecorum?

I find it easy to identify with a guy who screws up, hurts someone's feelings, and then trips over himself trying to make it better because he feels bad.

<comment><USER6> Accidental asshole isn't a real concept. I highly doubt any of the people would have reacted differently in person, for example. The character traits that we ascribe as being an asshole are developed over many days, during which many of the reactions are intentional.

</comment></comment></comment></comment></comment><comment><USER7> Being sorry that somebody else felt bad is the _beginning_ of an apology. But it's not the end of one. You can't just say to yourself, "Well now I'll never make somebody feel bad again. Problem solved!"

When you fuck up and hurt someone, people don't want just to hear about _you_ feeling bad. That's making it about your pain instead of theirs. It's asking for people to pat you on the head and tell you it's all ok. That's kinda weak.

They want to hear what you've learned, and why this won't be a problem again.

<comment><USER8> In his defense he has apologized like 600 times on twitter so far. Im sure it was a genuine mistake just getting carried away in moment. Twitter makes that kind of easy I suppose.

<comment><USER7> Sure. But in those 600 times, is there evidence of him learning something? Contrast it with Corey Haines's apology, where he talked about how it violated his principles, that his specific mistake was forgetting that there are always people behind software. That's the sort of lesson-learning that I thought was missing from Steve Kalabnik's post.

</comment></comment></comment><comment><USER9> I understand it was unintentional, but saying something was an accident in any apology makes it sound insincere. It shouldn't matter if it was an accident or not.

<comment><USER10> Not sure how this comment is an accident:

        Steve Klabnik
        @steveklabnik
        @harthvader @zeeg nothing's _wrong_ with it, but I don't want to build my app on top of others' code who are at this level of understanding

<http://twitter.com/steveklabnik/status/293830888003887104>

<comment><USER11> Did he perhaps mean to direct his criticism at node/js as a framework/language but rather made it sound like he was critical of the author of the node.js application in question?

Even if that is the case, it seems like he should have been able to read how other people would read his comment. I'm not sure I buy it.

</comment></comment></comment><comment><USER12> Dear Steve, Heather and anyone else that fits the bill

It's okay. People sometimes say hurtful things despite historically having strong opinions about never belittling other people publicly. It doesn't mean that they truly mean it, and it doesn't mean that you should take these negative things to heart either. People slip up because we're multifaceted creatures and despite our intentions to be the best person all the time, well that's just not possible.

Regardless of whether what you're being criticized for is justified or not, it is inevitable if it's been made public. The irony in this case is that the bully is being made feel worse because of his past blog posts, which is also sad but just as inevitable. It's okay Steve, we all fuck up, and the ease of doing it on Twitter doesn't help.

Heather, I promise you that any decent potential employer is still exactly that. Nobody will disqualify you from a job position based on something you've made. You've open-sourced it, so if anything you get bonus points. You will always be criticized, the trick is to ignore the haters and know that people in a situation of genuine critique (i.e. candidate interviewer) will never judge you (as badly) as some people on Twitter did.

Do not let this discourage you from contributing publicly in future either, even if your code IS shit. Everyone's code is shit, at least to some people. As long as you're happy with it, that's all that matters. Also, somewhere down the line you'll look back at it and think "Wow, that's shit code", which just means you've gotten so much better.

</comment><comment><USER13> No sincere apology ever starts with "Soooooo".

</comment><comment><USER14> Apologizing for "making someone feel bad" seems like a way of dodging blame. Honestly this whole thing feel like a half-assed apology sandwiched with excuses. If you are wrong say so, take the blame and move on.

</comment><comment><USER15> This post seems like he is trying to apologise, but it's also coming out wrong and he is again accidentally being an asshole.

</comment><comment><USER3> This comes down to "I wasn't being disrespectful and dismissive of _your_ project, just this other project, so we're cool, right?"

I think we can all do better than this.

<comment><USER16> Not sure we can do better but I'm absolutely positive we can critique anyone who tries!

</comment></comment><comment><USER17> I was one of the people who made a comment about this.

I'm not going to defend that I think attempting to replace sed/grep is a bad idea (especially not in 140 characters), but I will defend people's opinions.

Everyone has one, most of them you won't agree with. Whether they're nice or not. I'm generally not a nice person, at least online, that's my choice. That said, especially with this being the internet, you have to deal with others opinions.

While some people may go above and beyond (even myself sometimes) and actually be very mean with their opinion, that doesn't change the fact that they're entitled to it. If you don't like it, ignore it. If you can't ignore it, then you won't survive.

The fact that people somehow managed to turn this into the continuous drama debate about gender is just pathetic.

<comment><USER18> Why do you choose to not be a nice person (online)? Just curious.

Also, I think the "If you don't like, ignore it. If you can't ignore it, then you won't survive," is self-serving advice. It'd be easier to take seriously if you were one of the nice people.

<comment><USER17> I don't necessarily choose it, I just don't go out of my way (like most people) to be nice.

I would argue, that what makes me who I am (a driven, passionate person) also leads to traits like being honestly vocal about things. Whether the way these things are presented is directly related or not is a little bit different.

If I see something I don't like, whether it's on the internet, at work, or just in general, I will usually say I don't like it. Now Twitter doesn't make a great means of communication for things like this (e.g. you can really provide much insight, or realistically follow up), it does make it __easy __.

I would argue that people who are unwilling to give their opinion (and I know that there's many on both sides of everything, that are quiet), are simply forcing themselves into an uncomfortable situation.

Often you (or rather I) will deal with the results of your opinion, but for the freedom it offers, and the drive it gives me, I'll stick by it.

That said, I admire Heather for doing something, but I am rather unhappy that the result of this was a (IMO, unnecessary) blog post, a ton of ignorant comments on the internet, and more importantly, people attempting to turn the situation into something it isnt.

<comment><USER19> _...and more importantly, people attempting to turn the situation into something it isnt._

The only party I've seen so far _actually_ trying to make this storm in a teacup into anything other than what it is — namely, people being assholes on the internet — is you, with your weak, if persistent, attempts to make it about gender. It's not, it never was, and I'm pretty sure you know that, so playing that card is cheap and dishonest, at best.

I'm no psychologist, but to my mind, that kind of behavior absolutely _reeks_ of awareness that the thing you're trying to make be about something else wasn't kosher in the first place.

<comment><USER20> People give me shit about code and no one cares because I'm like everyone else here--male and single :(

</comment></comment></comment></comment></comment><comment><USER21> I'm gonna copy what I said in the other thread, because it's more relevant now:

You know, reading the various devs' tweets, they use twitter in a way that is completely foreign to me. Is there anything these guys think that they don't tweet? ("Hey, who's picking me up from the hotel?" is not something I'd ever announce to the world at large.)

This incident shows a danger of working that way--one of these guys apparently had a rude little thought best kept private--and let's admit it, we all have those thoughts at one time or another. But because he tweets everything, that little passing thought was pushed to the world, which is not good for anyone involved.

<comment><USER22> I've noticed that the most boorish developer types (and I've worked with a few), are those who tweet conversationally.

</comment></comment><comment><USER23> _I'm sorry, and feel terrible that I made someone feel terrible_

This does not come across as a strong apology because Steve keeps stressing on _making someone feel terrible_ and not really accepting that he was _wrong_ to ridicule code without offering constructive criticism.

</comment><comment><USER6> I would like to see someone respond to a twitter message called out (like the one in question) and give a real apology. If you are truly apologetic for the tone but not the substance, use the apology as an opportunity to say as much! It offends our sensibilities to see a half assed apology that completely misses the point. If you think the tool is unnecessary, say why! Give a coherent argument and then we can have a discussion. Otherwise it comes off as phony.

</comment><comment><USER24> Why do people hate Node so much?

<comment><USER25> I don't hate node However, the tools around using Node and JS are inferior to other languages (C/C++, Java, C#, even PHP and Python). Further, the language doesn't have the cleanest history in terms of design, so in a project with multiple people on it, you are leveraging coding guidelines, linters, and the like to have any real consistency.

A colleague raised an interesting question which I will paraphrase -- given the desire to build a project that exposes webservices from the ground up, what language would you choose?

My first response was, it depends on the platform. If you are using Azure, for instance, C# is the first class candidate, Node and other languages are tier 2/3. EC2, sky is the limit. Heroku, probably start with Ruby. If all things were equal, I would personally choose Python over Javascript.

Python and Twisted give a lot of the same benefits as Node in terms of async development. Python is more consistent and has a more mature (and featureful) standard library. Node and modules are plentiful, but a lot (even socket.io) still show some signs of being young.

For me, the choice is - right tool for the platform, group, and project you are working on. Personally, I will err towards the more mature when you are talking about scripting languages. (PHP doesn't count, it's super easy and I've used it a lot, but I always feel dirty afterward :) )

<comment><USER4> _the tools around using Node and JS are inferior to other languages (C/C++, Java, C#, even PHP and Python)_

You are comparing a language that is like 2 years old vs languages that are pushing 20 years old.

 _the language doesn't have the cleanest history in terms of design_

It is certainly no worse than several of the languages you just listed.

 _Personally, I will err towards the more mature when you are talking about scripting languages._

Psssst, JavaScript is a year older than PHP.

<comment><USER25> JavaScript for server side is much younger than PHP, yet inherits the client side warts. :)

</comment></comment></comment></comment><comment><USER26> I think the only reason people like this are apologizing publicly is to save face.

Behold people.. the underbelly of programmer culture :-(

</comment><comment><USER27> To decide if we should give Steve the benefit of the doubt, look at his tweet/post history. If he does this often, he is an asshole, if not he is an accidental asshole, which is fine because it is so easy to get real intention completely wrong in even long emails let alone a tweet. Also anyone can have a bad day...

</comment><comment><USER28> _explaining what I said had the affect of feeling like I was trying not to apologize_

Steve - <http://public.wsu.edu/~brians/errors/affect.html>

</comment><comment><USER29> Why is this on the front page of HN? Anyone read [http://corte.si/posts/socialmedia/trouble-with-social- news.h...](http://corte.si/posts/socialmedia/trouble-with-social-news.html)?

Unfortunately, that article is spot-on. I want to be reading industry news, not someone's social gossip. Specifically, I want to read articles about optimizing Erlang, the latest developments in NoSQL databases, developer war stories, and changes in the funding landscape. I don't want to hear about someone apologizing for an offensive Twitter post.

I think we need a separate category called 'industry gossip' for this kind of drama.

<comment><USER3> It's on the front page of HN because this community cares about civility, online interactions, open source contributions, and gender issues in technology.

<comment><USER29> I don't want to hear about someone apologizing for an offensive Twitter post. Go ahead and keep downvoting me for expressing an opinion -- I'm sure I'm not the only one with similar feelings :)

\--> To respond to the posts below: I think the original post is fine, I didn't make this comment there. Hearing about that is interesting and is a fine example of how easy it is for users with social capital to abuse it, a reminder we need. Seeing two threads containing blog posts of people apologizing? I'm not sure I actually care, I think my learning and interest ended after reading the original thread. Now we're firmly in noise territory.

<comment><USER3> How is "I made this thing, shared it with the world, and was ridiculed by high profile members of the community" _not_ a developer war story?

</comment></comment></comment></comment><comment><USER30> I love how he scapegoats Node. Node is an easy target. What an asshole.

</comment><comment><USER31> CYA blog post</comment>


Adventures in /usr/bin and the likes - <AUTHOR> http://ablagoev.github.io/linux/adventures/commands/2017/02/19/adventures-in-usr-bin.html <comment><USER2> Worth it just for learning that there's a "replace" command, for multi-file search-and-replace without having to remember sed syntax.

Can't believe I've been running Linux for 16 years and I didn't know about that one.

<comment><USER3> I was tempted to poke a little fun at you for having trouble with sed -- among my peers, 's/foo/bar/g' used pretty much daily, even just in informal emails/conversations.

But I'm glad I looked at the list first, because I found this wonder: `lstopo --of txt`. I'm going to use this in class next week, I can't believe I've never seen that before.

<comment><USER4> My biggest hardship with sed is having to figure out how to escape the operators within regular expressions on the command line. I think it's pretty reasonable to spend 15+ minutes on a complicated replacement regex.

Edit: It looks like I agree with you; `replace` only solves trivial problems that can easily be done with `sed`.

<comment><USER5> You can use single quotes to escape everything except single quotes from the shell. Then use backslashes to escape single quotes where needed.

If you haven't taken the time, I'd say it's well worth learning exactly how the shell escapes work. It's surprisingly simple and natural once you get used to it.

<comment><USER4> Thanks for the advice; I should block some time to fully grok shell escapes.

Even with single quotes, sed still requires escaping parentheses, + operators, and other operators that would otherwise be interpreted literally (but not all operators should be escaped). In the languages that I learned regexes this wasn't required.

<comment><USER6> There's a command line switch -E for sed that gives you what we think of as "normal" regex escaping.

<comment><USER4> You have saved me many hours of future command line hacking. Thanks!

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Reminds me of my sysadmin days when I was trying to learn shell scripting and would lookup man pages of random binaries in /usr/bin. Before we could bring down a box for nightly maintenance/backup, we would send a shutdown broadcast notice like:

banner "Shutdown"|wall; banner "in 5 mins"|wall

I found out "write" command and setup a hacky little one-to-one chat script - it was terrible and geeky but I really liked it.

I'm probably forgetting some more obscure commands that I enjoyed :)

PS: forgot to mention that when I told my boss about the "write" based scripts, he gloated that he had setup a quiz program which supported multiple participants using named pipes. Awesome guy :)

<comment><USER8> banner is awesome - any way to make it output slowly instead of always at once?

<comment><USER9> while IFS= read -r line; do echo "$line"; sleep 0.1 ; done < <(banner Hello)

</comment></comment></comment><comment><USER10> ISTR it was Æleen Frisch (author of _Essential System Administration_ ) who recommended that all _nix admins take one day a year to read through the entire manual sections (1) and (8), which I implemented thus:

$ cd /usr/bin ; man _

(and repeat for other bindirs)

You will be amazed at what you've forgotten, and what your system can do.

<comment><USER11>
      $ cd /usr/bin ; man
      What manual page do you want?

Is there a command to get all the man pages? I tried `man *` and the internal help, but no luck.

Edit: q then Return did it. D'oh. The obvious follow-up question is how do I go back to the _previous_ man page?

<comment><USER12> $ man man ;)

<comment><USER11> Actually, I could not find anything relevant by searching it for "file" and "next". I guess it's purely the responsibility of the pager, which presumably is not part of man itself.

</comment></comment></comment></comment><comment><USER13> After reading this I'm reminded that if an IDE just supported replacing highlighted text after it was piped through a command it would have a lot going for it. A lot of these are features some that IDEs have been lacking for years yet they've been hiding away in /bin.

<comment><USER14> Acme, the text editor from Plan 9 has this. Piping, inputing and outputing from commands are some of the most basic operations there.

Check out:

\- [http://acme.cat-v.org/](http://acme.cat-v.org/)

\- Russ Cox' tour: [https://www.youtube.com/watch?v=dP1xVpMPn8M](https://www.youtube.com/watch?v=dP1xVpMPn8M)

<comment><USER13> Is there an updated version with less complicated mouse interfaces?

</comment></comment></comment><comment><USER15> What a list of gems!

Also, I noticed you can rewrite this function:

        # Copy an ip address from a domain
        # Usage cip domain.com
        function cip() {
            ip=$(resolveip -s $1)
            echo $ip | xsel -b
            echo $ip
        }

as a oneliner without needing process substitution or echo:

        function cip() {
            resolveip -s $1 | tee /dev/fd/2 | xsel -b
        }

<comment><USER16> I'm never 100% sure I understand FD redirection, but I think you can shorten that even further to:

        function cip() {
            resolveip -s $1 1>&2 | xsel -b
        }

Since this'll copy stdout to stderr, and then stdout will get eaten by xsel

<comment><USER17> It won't _copy_ stdout to stderr; it'll _move_ stdout to stderr. Stdout will be empty after the redirect, so no, thos won't work :)

<comment><USER16> Have you tried it out? It worked on my system.

<comment><USER18> The parent is correct, the given command redirects stdout to stderr, it's not copied (so stdout will be empty).

<comment><USER16> Again, have you tried it?

        # echo "foo" 1>&2 | sed 's/foo/bar/'
        foo
        bar

Edit: I've done some more testing, and discovered that the above works on zsh, but not in bash

2nd Edit: Ahha! [http://www.cs.elte.hu/zsh- manual/zsh_7.html](http://www.cs.elte.hu/zsh-manual/zsh_7.html) . So this is because zsh w/ the stock config (MULTIOS option enabled) will open as many outputs as you give it. So it can both copy FD 1's contents to FD 2 and to the pipe'd command.

</comment></comment></comment></comment></comment></comment><comment><USER19> Apparently "resolveip" is part of... MySQL.

You may want to use "getent ahosts" instead:

      $ getent ahosts en.wikipedia.org
      126.96.36.199  STREAM en.wikipedia.org
      126.96.36.199  DGRAM
      126.96.36.199  RAW

<comment><USER20> That's an interesting command! (note: on FreeBSD, just "hosts", there's no "ahosts")

I usually use drill(1) (from unbound, which is part of base on FreeBSD), or dig(1) on Linux boxes that don't have unbound.

Also turns out that that replace command is also part of MySQL. LOL WTF MYSQL?!

</comment></comment><comment><USER21> A command I often use for a nice overview of running stuff:

      $ netstat --numeric-ports -elp46 | sort

        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
        tcp        0      0 0.0.0.0:22223           0.0.0.0:*               LISTEN      root       12159       3370/sshd
        tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      root       781140      4940/nginx -g daemo
        tcp        0      0 0.0.0.0:4000            0.0.0.0:*               LISTEN      postgres   780857      4916/postgrest
        tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      root       13126       3537/master
        tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      postgres   12526       3406/postgres
        tcp6       0      0 ::1:5432                :::*                    LISTEN      postgres   12525       3406/postgres
        tcp6       0      0 :::22223                :::*                    LISTEN      root       12168       3370/sshd
        udp        0      0 0.0.0.0:123             0.0.0.0:*                           root       12479       3400/ntpd
        udp        0      0 127.0.0.1:123           0.0.0.0:*                           root       12485       3400/ntpd
        udp6       0      0 ::1:123                 :::*                                root       12487       3400/ntpd
        udp6       0      0 :::123                  :::*                                root       12480       3400/ntpd

<comment><USER22> Apparently netstat is one of the commands being depreciated on Linux, to be replaced by ss.

</comment></comment><comment><USER23> Wow this list is tremendous! It's fun to still discover new commands after all these years.

I actually used `taskset -c` just recently, when I was running lots of sidekiq processes and wanted to make sure they all used different cores. It helped me get full utilization out of the box, whereas before I would frequently see some sidekiqs competing for a core while other cores sat idle.

<comment><USER24> Be careful with taskset and chrt, assigning realtime priority to processes and pinning on them on CPUs might lead to un-expected behavior, priority inversion or your system locking down (say if you pgrep some kernel tasks/threads in there as well by accident, I've done before).

<comment><USER23> Thank you for the warning! I can see how that could happen with chrt. I can't work out how it could happen with just taskset. Are you saying to be careful when combining them? That would make sense to me.

Also I can't figure out what pgrap is. Do you mean pgrep? I think you must mean something else, because I don't see what pgrep has to do with priority inversion. But it shares a manpage with pkill. . . .

I don't do real-time work, but I've always been curious to know more about it. And priority inversion seems like an interesting and challenging problem.

<comment><USER24> > Also I can't figure out what pgrap is. Do you mean pgrep?

Sorry meant pgrep.

> I don't see what pgrep has to do with priority inversion.

Grepping processes doesn't have anything to do with priority inversions and locking your system. But grepping processes then setting them to realtime priority sched_fifo 99 or could wreck havok

> I don't do real-time work, but I've always been curious to know more about > it. And priority inversion seems like an interesting and challenging > problem.

It can be fun. It is kind of a separate world on its own. Interestingly most of the popular OS-es by default are tuned for throughput not low latency. So configuring and getting everything just right is an interesting challenge (sometimes involving applying kernel patches, although lately that might not be necessary as some have been mainlined).

</comment></comment></comment></comment><comment><USER25> A lot of really cool stuff here! _shameless plug_ I have a small side-project site that goes through a lot of common activities on the command line [https://cmdchallenge.com](https://cmdchallenge.com). Some great ideas that I think I will incorporate.

</comment><comment><USER26> Going off a comment on the article, using mainly awk to find your commands, I expanded it a little bit, as most commands I use take a first argument that changes how it works. (Aliasing this command might not be a bad idea.)

        history | awk '{print $1 "__-__" $2}' | sort | uniq -c | sort -rn | head -30 | awk '{gsub("__-__", " ", $2); $2} !max{max=$1;}{r="";i=s=100*$1/max;while(i-->0)r=r"#";printf "%50s %5d %s %s", $2, $1, r, "\n";}'

It produces a histogram of the 30 most frequent used commands.

Unsurprisingly for me, `git commit` was first. Kinda surprisingly, `apt-get` was third.

Caveat: I convert spaces to the symbol sequence: __-__ and back. If your command includes that symbol sequence, it'll break something.

</comment><comment><USER27> Pipes are not exclusive to *nix based systems. Windows e.g. has had them for quite some time, dating back to at least DOS 7[0] from Win95.

[0] - [http://www.lagmonster.org/docs/DOS7/pipes.html](http://www.lagmonster.org/docs/DOS7/pipes.html)

<comment><USER28> In early versions, DOS pipes weren't real pipes. It would run the first command and save the output to a temporary file; then once that was finished, run the second command with the file as input. I'm not sure when it gained real pipes.

<comment><USER29> Windows pipes appear to _still_ be second-class citizens. Look at this mess: [http://stackoverflow.com/questions/34504970/non-blocking- rea...](http://stackoverflow.com/questions/34504970/non-blocking-read-on-os- pipe-on-windows?noredirect=1&lq=1)

The eventual solution using SetNamedPipeHandleState isn't really supported: [https://msdn.microsoft.com/en- us/library/windows/desktop/aa3...](https://msdn.microsoft.com/en- us/library/windows/desktop/aa365787\(v=vs.85\).aspx) "Note that nonblocking mode is supported for compatibility with Microsoft LAN Manager version 2.0 and should not be used to achieve asynchronous input and output (I/O) with named pipes."

</comment></comment></comment><comment><USER30> fwiw wc -l in macOS Sierra 10.12.3 reports 1059 entries. There are quite a few programs that are Apple specific (macbinary, appletviewer). But many of the ones talked about in the article are here too.

</comment><comment><USER20> > date > /tmp/test_at.log will be executed at 9.26 PM on the same day

well that's not guaranteed on all systems :D On FreeBSD:

> at is implemented through the cron(8) daemon by calling atrun(8) every five > minutes

</comment><comment><USER19> Sigh. /tmp is not your personal playground. Forget that it exists, unless you're a security expert.

<comment><USER31> Novice question. Why the temp folder is problematic? Some cursory google search shows up this [http://security.stackexchange.com/questions/11606/what- are-t...](http://security.stackexchange.com/questions/11606/what-are-the- dangers-of-storing-webserver-temp-files-in-the-tmp-folder)

But generally what kind of attacks /tmp folder enables ?

<comment><USER32> Consider the headlined article, for starters. A simple

        ln -s /etc/passwd /tmp/test_at.log

which any unprivileged user can quietly do, before running its examples for at, will ruin the system administrator's day just after 21:26.

This is the basis for many of the problems with files in /tmp : predictable filenames written-to without care by privileged processes. It is a widespread disease that is the reason that the systemd people arrange to run many programs with PrivateTmp=true .

In this particular case, root's own home directory would have made a much better private playground for the test_at.log file.</comment></comment></comment>


Ask HN: What's the cheesiest recruiting overture you've received? - <AUTHOR>

For example, the subject of an email this morning:

  Start-UpDevelopmentTeam.add (new Person (you));// I have something which may interest you
 (Contemplating whether I should tell him his code will fail, but I think that will only encourage him.) <comment><USER2> "Calling all code coyboys! Come ride with us into the Ruby sunset!"

I lol'd, but I did not respond.</comment>


Don't lead from the bottom line - <AUTHOR> http://sunir.org/blog/2011/09/26/dont-lead-from-the-bottom-line/

<comment><USER2> Good advice, but imo too often in the world of tech entrepreneurs there is the justification that all that is needed is a good idea/good leadership and that money is not important. Now really- what good is there in someone missing out on their sons and daughters' lives because they are hammering away in the office on a web application that few will ever use and from the get-go has almost 0% chance of making any money? The problem today is not people leading from the bottom line in the tech industry, it is the opposite. Around the world, people should be dual focused on both providing solutions to advance humanity and taking care of the employees of that company (and the world around them), and part of that should involve being a financial success. If you are spending hours and hours doing something worthless, you are only contributing to waste. This is not to say that you should just blindly follow as a sheep and work for a big company. Big companies can often be the essence of inefficiency, lack of productivity, and lack of vision and direction. However, throw in some moderation. Business is not just about your great idea.</comment>


Ask HN: Good Web UI Designers - <AUTHOR>

Anyone recommend searching on odesk or elance for a good Web 2.0 UI designer? Any particular companies I should consider? What are some good attributes I should look for? Thanks!
Nick Leung <comment><USER2> There are some (not many) UI designers on HN, like me for example.

/shameless plug

I would stay away from Elance type sites unless cost is your only factor. 37signals job board will attract the exact opposite candidates as Elance (read: expensive/overpaid)

Ever think of hiring local?

Attributes to look for would be experience not only in creating the 'web 2.0 look' but also solid experience in eccomerce and application development. Too many designers only know how to make something look good, and fail to consider that you're doing business on the web. Avoid designers who rely on wiz-bang features, even a boring business like portfolio is better than one filled with tons of Flash and AJAX.

<comment><USER3> I agree.. us UI designers are rare on HN.

Hiring locally could be really good.. In general I think it's hard to find some one with an application portfolio though. Most are advertisement websites and it can be hard to gauge if their portfolio match your values.

Most UI jobs I see are either salary or long term contract. but I might be biased as that is what I look for.

</comment></comment><comment><USER4> It always surprises me when people go looking for good AND cheap. There is a difference between cost and value.

<comment><USER5> You frequently don't get what you pay for - there is very little correlation between price and quality.

Take Drupal for example - cheap AND good. Compare with our new Mega Corp CMS which had a 7 figure price tag and a work flow so atrocious it had to be scrapped before deployment was complete.

If you want good products then by picking something that is already good and only requires minor changes you have a pretty decent chance at a fair price (which might be high or low).

<comment><USER6> Drupal needs work too.

<http://buytaert.net/drupal-usability-testing>

It went through a usability test and surprise, surprise, the whole Drupal nomenclature is actually off-putting for the average Joe.

Usability is difficult. Very difficult. We'll see the fruits in Drupal 7/8. As a programmer/hacker/ia/ui guy -- I find all fascinating.

The general trend I think is UI is _beginning_ to come of age.

</comment></comment></comment><comment><USER7> I've done some posting on elance before and I will suggest to start with the smallest job (i.e. cheapest) first to get used to working with bids and vendors. Start with a logo + business identity for $300-$500, go with only 5-star people with 6+ months of feedback. Once you have that, do a 3-5 page website for $300-$500. By now you should have a good feel for (1) the process, and (2) the people so now's the time to bump it up to a $1000 or $2000 project.

Those places really aren't the place for $2000+ projects IMO.

<comment><AUTHOR> Can anyone share any other places for $2000+ projects? Much appreciated! =)

<comment><USER8> <http://jobs.37signals.com/> <http://authenticjobs.com/>

<comment><USER3> In my opinion 37 signals has the best job board with the best jobs. But personally I think the people applying also expect a better wage\price to come with that. For companies to attract truly the best UI designers I do think they have to pay a bit more for them. Though there are plenty of young cheep talent out there. They perhaps are not the best.

</comment></comment></comment></comment><comment><USER9> I would say odesk is is good for 1 reason only.... you can see snapshots of what the UI developer is working on as they do it. So you should be able to see if they are going down the right track early before they finish!

It depends if its pure GUI or UI ... I think you should split up the project into 2... GUI is to get design and colour scheme. UI is to get the interactions you want and the flow...

We have used odesk, and we found that we can get GUI design done, but UI is really dependant on your target user market... This is difficult to outsource unless you really direct what you want done...

</comment><comment><USER10> I am in the same boat as you and am actively seeking a UI designer. We are willing to pay up to $5000 or maybe even more for this service, but it has to be good and the chance of someone getting it wrong or asking for double the money is what's keeping us from taking the plunge.

But I digress, the point of this comment is to try out 99designs.com. I've seen some really good designs on that site if you know exactly what you want.

We plan on experimenting with 99designs once we have our site up and running with UI we can come up with as developers and hope to get lucky!

</comment><comment><USER11> I'd recommend a listing on the 37signals Job Board (<http://jobs.37signals.com/>). It costs $300 for a 30-day job listing or $100 for a gig listing, but it'll get you by far the highest quality crop of applicants.

<comment><USER12> Don't think he's paying for top tier if he's searching around oDesk and eLance.

<comment><AUTHOR> Yeah I'm looking for something inexpensive but good. Thanks!

<comment><USER13> Often, the two are mutually exclusive.

In other words, you get what you pay for most of the time.

<comment><USER8> I've found you'll rarely find something inexpensive and really good, but you'll find really expensive and not good at all very very often.

I saw, recently, a "screen" delivered to a company from a high priced design firm in SF that had ~800px wide text boxes for "Username" and "Password" on a login screen. They paid ALOT of money for that.

<comment><USER3> yeah I would agree with that...

I think at the way low end you mostly get very inexperienced people who have little to no experience oftain coupled with little to no skill. They may commit to a price but can't deliver on quality. It doesn't seem worth it to waste the money here. Just have your developer do something.

At the mid range there are still a lot of unskilled people but there are now skilled people as well. Here are the people you need to find. Because they are going to be able to deliver something quality and worth paying for. But they are not doing to be able to match the skills of best designed sites.

The high price range there are still the same match of good and bad. the good are really good. Best in the business. The bad are from the mid range or below that are super confident or really audacious.

It's hard to pick out the good ones even though interview in my opinion. you really need a large list of references to get a feel for the "company".

</comment></comment></comment></comment></comment></comment><comment><USER9> also if you have the design in a psd... you could try <http://www.psd2html.com/order-now.html></comment>


Ask HN: Activity as a Factor in Post Scoring? - <AUTHOR>

I'm curious if the volatility of upvoting/downvoting is (or could be) used to rank comments.  I've posted some musings that I thought were rather insightful and was surprised to see them settle on a score of 1.  I suspect that they were being endorsed and denounced repeatedly because they were controversial.
But it hit me that the most relevant or thought-provoking posts may run counter to one's worldview or deeply held beliefs, so in effect could be catalysts for moving the conversation forward and avoiding groupthink.  I know that those are the sorts of pearls of wisdom that attracted me to Hacker News and Paul Graham's essays initially (though I realize that he no longer decides these things).
Would it be possible to visually indicate the total number of +/- votes per post, or use that as a weight in the scoring formula?  This would be separate from the controversy penalty (that prevents flame wars due to too many comments). <comment><USER2> Would privileging such comments make the threads accord better with HN's values of reflective, civil discussion? Rapid-fire controversy is not really what we're going for here.

If you want to mention some links to comments you think the idea would apply to, we'll take a look.

<comment><AUTHOR> Hey thanks for responding. I looked through my comments and they generally score well if they are technical. I suppose some of the political ones didn't do so well, and those are the ones that I think may have gotten an equal number of up and down votes (topics like copyright infringement, private vs. public healthcare, etc).

So I guess I'm mostly just trying to throw out an idea here. I understand if you don't want to encourage political comments, but in the end, it seems that anything people are passionate about devolves into politics. For a specific example, I've noticed some very heated posts regarding things like imperative vs. functional programming that are practically as ideological as libertarianism vs. progressivism. It's kind of like, both sides have merit, I don't think there will ever be compromise, but I'm hoping to find a "third path". It's an incredible hard problem to solve though, so if the current scoring system is working, great, don't fix it if it's not broken.

To get to the gist of it, I think what I am requesting is that the scoring somehow distinguish between posts that receive no points and ones that receive a lot of activity but settle on the same points. I think that the latter could be gems that are currently falling below the fold.

</comment></comment><comment><USER3> Of course it's much more up-front about vote counts, but Reddit has a "controversial" sort option. It might make sense for HN to do the same.</comment>


Can Many-Worlds Theory Rescue Us From Boltzmann Brains? - <AUTHOR> http://nautil.us/blog/can-many_worlds-theory-rescue-us-from-boltzmann-brains <comment><USER2> Can one unprovable and arguably imaginary idea save us from another unproveable and arguably imaginary idea?

<comment><USER3> Macroscopic decoherence (and therefore many worlds) is a straightforward prediction of the Schrödinger equation. It's not something you can just dismiss as imaginary.

<comment><USER4> Apart from that minor "Let's create an infinite number of universes out of nothing" problem.

Mathematical solutions are never guaranteed to be physical, or even potentially realisable.

<comment><USER5> What is your preferred interpretation? Mine is pilot wave, treating the wave function as a purely mathematical and nonphysical concept.

<comment><USER6> Pilot wave theory still requires the wavefunction to _exist_ , with all the same detail as many-worlds, all the same computations. It just then picks a particular timeline and declares that this one is real, these are real particles, and everything else is shadows on the wall. It's thus incompatible with computationalism.

I consider this scenario improbable.

<comment><USER5> My limited understanding is that the pilot wave is more of a concept regarding embodied in the exact state of the universe. In other words, the pilot wave is the seed in the pseudorandom number generator of the universe.

<comment><USER6> I'll admit it does get a little philosophical, but:

No. The "pilot wave", in pilot wave theory, is a mathematical object _identical_ to the universal wavefunction of the many-worlds interpretation. As such, if you believe that computation is all is required for consciousness to exist (and there's no separate "is real" tag on the math), then it's an incoherent concept.

I fall on that side myself, but I can't convincingly argue that it's the right philosophical stance to take. I've yet to see anyone give a _proof_ , it just seems most likely.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I think the logical incoherence of the Boltzmann Brain saves us from it.

1) What we know about the world leads me to the belief that it's far more likely that a collection of particles in a thermal equilibrium have randomly and temporarily formed into a brain for an instant, than that the entire universe exists as I believe it to.

2) Since I am extremely likely to be a boltzmann brain, everything I know about the world is illusory, and nothing outside of my own mind exists, and my memories don't represent reality.

3) Therefore, everything I thought I knew about the world which led me to believe that I am a boltzmann brain is unlikely to be true.

4) I am unlikely to be a boltzmann brain.

<comment><USER8> Step (3) is not valid. You can't use "I would reason badly in case A" as a proof that A can't happen. At best it's an argument that, when deciding what to do, case A isn't worth worrying about. But that's different from asserting case A can't have happened.

</comment></comment><comment><USER5> Intuitively, I feel that it is extremely more probable for a Big Bang, giving rise to life that knows science, to randomly occur than for a Boltzmann Brain, self-consistently simulating the evolution of such a universe for billions of years, to randomly occur. However, it is hard for me to explain that feeling more precisely.

Maybe it's like this: it is much more likely to randomly simulate a game of chess where a pawn gets promoted to a queen than it is to randomly generate a move history from random characters, which resulted in a valid chess game of a pawn getting promoted to a queen.

<comment><USER9> We don't need it to simulate the universe for a billions of years. We just need it to simulate _your belief that it happened_ for a couple of seconds.

<comment><USER5> Yes, a belief which relies on logical validity and self-consistency of memory and thought, which would in turn need to be the result of a "simulation". And by "need", I really mean "much more likely than the alternative" of producing such a state otherwise.

<comment><USER10> But are you really scanning all of your beliefs for consistency at every moment? Couldn't you just be presented with a simulated _feeling_ that your beliefs are consistent? Wouldn't that be enough? It's certainly plausible that a Boltzmann brain could have that.

</comment></comment></comment></comment><comment><USER11> Given the internal and logical consistency apparent in this life, it stands to reason the Boltzmann brain would have to be simulating the entire thing -- the thought processes of other people, countries, wildlife, the movement of the stars, and so on.

Absent some calculation cost, which Boltzmann brains don't seem to provide, there's no reason everything wouldn't be fully rendered inside the Boltzmann brain.

At some point you just have a God, and are right back at old-timey religion, not that there's anything wrong with that.

</comment><comment><USER12> Is a Boltzmann brain by definition unstable? Over what timescales? While it exists, does it function within its presumably more stable context, or is it somehow magically disengaged from its context in a way that necessitates instability?

What I'm getting at is that the idea of a Boltzmann brain, as juxtaposed with a "real brain", seems a little too " classical binary logic" for a universe that evolves. Perhaps some of our most resilient features have evolved with the help of spontaneous Boltzmann-brain-like intuitions, whims, or setups, but have been since then integrated in a stable way.

I imagine a Boltzmann brain to be something like a spark, but not immune from outside interaction or influence. Am I missing something?

What happens if a Boltzmann brain "catches on"? Is it still a Boltzmann brain, now that it has contextualized itself in a stable way? Was it ever a Boltzmann brain?

This also comes down to the meaning of "randomness", and I don't think the mathematical jury is quite out on that subject.

</comment><comment><USER13> I'll point out that Botlzmann brains are only something you would ever think about in a universe going through a graceful heat death rather than the equally likely big crunch or big rip scenarios.

<comment><USER5> Dark energy suggests that a big crunch is unlikely.

<comment><USER6> A big rip, on the other hand...

<comment><USER5> Last I read, there is too much uncertainty in measurement to tell them apart. It will have to be resolved theoretically, since a heat death will only be the final result when omega exactly equals -1.

</comment></comment></comment></comment><comment><USER14> [https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines](https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines)</comment>


Tesla's made-in-China cars lead market in quality while US-mad cars score lowest - <AUTHOR> https://electrek.co/2020/08/03/tesla-made-in-china-cars-lead-market-quality/ <comment><USER2> This site is basically affiliate marketing nonsense blog spam and should be banned.

</comment><comment><USER3> The engineers probably implemented the latest design changes to the lines to fix the quality issues that occurred in the states.

</comment><comment><USER4> It's not the same comparison. In the US, it's complaints per 100 cars. In China, it's complaints per 10,000 cars. You have to do math to make the conversion.

When you do, you see that Tesla in China still scores way worse than Tesla in the US.

So, it's more about the different countries and what passes for "quality" in those countries.

<comment><USER5> I may be tired from too much assembly language today, but... isn't the article saying that the Shanghai-made Teslas did best in a comparison with other cars sold in China, while the Fremont-made Teslas did worst in a comparison with other cars sold in the US?

If the two Teslas are equal in quality, or the Shanghai-made ones would score worse than the Fremont-made cars if rated by US buyers, then the implication is that ~all cars sold in China are qualitatively worse than the worst sold in the US. Which sounds implausible too me, perhaps even a case of RAA.</comment></comment>


Confessions of a Black Hat – Is Matt Cutts a Fraud? - <AUTHOR> http://themoralconcept.net/#mc <comment><USER2> Is it just me or does that guy seem a little unhinged?

<comment><USER3> His writing is a bit indulgent but I think he has some really good points. Instead of being transparent on rankings, it forces sites to guess how to improve rankings and encourages them to spend money with Google to buy traffic. This is immoral since it is abuse of Google's monopoly power.

<comment><USER4> So... They should be transparent and make it really easy to game the system, as opposed to actively attempting to keep people from gaming the system?

</comment></comment></comment><comment><USER5> I stopped reading part way. The author or writer really likes to beat around the bushes and include a lot of unnecessary crap instead of getting straight to the point.</comment>


The Unexpected Antidote to Procrastination - <AUTHOR> https://hbr.org/2013/05/the-unexpected-antidote-to-pro.html <comment><USER2> great article.</comment>


Wieden + Kennedy Tech Incubator Picks Its Start-Up Class of 2011 - <AUTHOR> http://www.fastcompany.com/1781598/wieden-kennedy-tech-incubator-picks-its-start-up-class-of-2011

<comment><USER2> We're very excited to be a part of the first class at @piepdx!

<comment><USER3> Props! stormental is part of Cloudability and they're up to awesome things! If anyone hasn't seen what they're up to yet: <http://www.cloudability.com/>

</comment></comment><comment><USER4> I think this is a model that's needed to be tested for a long time -- I'm glad W+K is forward thinking enough to be the first ones to give it a go!

</comment><comment><USER5> I hear good things about all these companies, especially Spotsi...

<comment><USER2> Spotsi does look very cool...</comment></comment>


Go Ask Alice – What Really Went on in Wonderland - <AUTHOR> http://www.newyorker.com/magazine/2015/06/08/go-ask-alice-a-critic-at-large-lane

<comment><AUTHOR> Filched from [http://www.aldaily.com](http://www.aldaily.com) , which tags it with _" The story of Lewis Carroll: 98,721 letters sent or received, 3,000 photographs taken, a revolutionary imagination, an unknowable man..."_

As I gather from some biographical readings, it was possible in the London of the late XIX and early XX century to send and receive letters twice (or three times ?) a day, i.e. it would be possible to make dinner arrangements for the same day by mail, which was convenient before there was a widespread telephone system. Which is to say, many of those nearly 100k letters are probably the equivalent of an "want to go out for lunch" email/SMS/whatever.

<comment><AUTHOR> P.S. A piece titled 'Go Ask Alice' could use a nod to Grace Slick and Jefferson Airplane, e.g. [https://www.youtube.com/watch?v=Vl89g2SwMh4](https://www.youtube.com/watch?v=Vl89g2SwMh4)</comment></comment>


What Happens to the Brain During Cognitive Dissonance? (2015) - <AUTHOR> http://www.scientificamerican.com/article/what-happens-to-the-brain-during-cognitive-dissonance/ <comment><USER3> Tolerating some amount of cognitive dissonance is one of the best things that I was able to develop in myself recently. In coding for example, I used to suffer mental anguish over seeing inconsistencies in codebases I'm working on and have an OCD-like drive to fix them. Learning to live with those consistencies freed me up to work on what actually matters.

Furthermore the unforgiving drive for consistency is a reason why people don't update their beliefs when new evidence comes to light. Consider Superforcasting[1] (a book about people with an unusual ability in forcasting the future) the author says that one common trait among superforcasters is that they have a larger capacity for tolerating cognitive dissonance. The drive to avoid cognitive dissonance shackles you to your existing beliefs (see confirmation bias).

[1]: [http://www.amazon.com/Superforecasting-Science-Prediction- Ph...](http://www.amazon.com/Superforecasting-Science-Prediction-Philip- Tetlock/dp/0804136696)

<comment><USER4> The ability to deal with uncertainty is not the same as cognitive dissonance. There is no cognitive dissonance involved in accepting that mutually contradictory propositions P and Q could be true, you just don't know yet which is. Cognitive dissonance is when you believe that both P and Q are true at the same time. Humans have a tendency to jump to conclusions because they don't like not knowing something, and any answer is better than no answer. It's precisely those people who _can 't_ deal with uncertainty who must deal with the most cognitive dissonance when the conclusion they jumped to turned out to be wrong, particularly when they've turned that conclusion into dogma.

<comment><USER3> Everyone must jump to a conclusion at some point -- you can't possibly collect all the evidence in the world. I think it is also a case of cognitive dissonance in believing that you can believe otherwise.

<comment><USER5> You never have to decide that something is absolutely true regardless of any new evidence.

<comment><USER6> If you are only thinking about it, yes. If you want to take a decision based on the thought process, you have to pick a side at one point, knowing that it might not be the right side.

<comment><USER5> Only if you think your decisions purely based on fact, rather than thinking of your decisions as based on the best facts you have at the time.

Cognitive dissonance is believing that two contradictory theories are most likely true based on the evidence you have. Since the evidence of the truth of one is also evidence for the untruth of the other, it means that when evaluating the evidence for one, you discount a different set of evidence than you do when evaluating the evidence for the other.

This is never rational, and never something that you have to do. It's usually done to avoid conclusions that would force you (according to your own ethics) to give up something that you have, or not take something that you want.

<comment><USER7> > This is never rational, and never something that you have to do.

Not sure I agree with that.

The real world is full of mutually exclusive moral problems, like when "do unto others" runs directly into "first do no harm" when deciding to give help to someone whose bad behavior you might be enabling.

<comment><USER5> The problem is continuing to hold both beliefs. You can't have two prime directives. You can't say "never do harm to anyone" and "always defend your children." You have to explicitly prioritize beliefs that have the potential to cause dilemmas.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Sadly enough, cognitive dissonance is also one of the coping mechanisms that keeps people captured in a cult. I've been raised in a high control religion/cult. I've been out now for a while, but I was in for 24 years. The cognitive dissonance was very high at times, and I'm not the only one [1]. Looking back at it, I almost can't believe it took soo long to realize consciously what was happening to me.

It's a weird thing, alarm bells going off everywhere in your head, but you still tell yourself: It's alright, I'm ok this is what I have to do, it's the best life choice, it's not that bad, everyone else is wrong, ...

For me personally, the subconscious reason why I acted that way is that I knew the repercussions when I would try to leave. My whole family, friends, everyone I cared for would start shunning me. I would've been kicked out of my the house by my parents, completely on my own, no contact at all. That's a scary though when you've been thought the world is a wicked and evil place. This year, the group has even become more aggressive when it comes down to shunning, showing emotional propaganda videos on their conventions [2].

[1] [https://www.reddit.com/r/exjw/search?q=cognitive+dissonance&...](https://www.reddit.com/r/exjw/search?q=cognitive+dissonance&restrict_sr=on)

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

<comment><USER9> Cognitive dissonance is everywhere. It was massive during the slavery period of the USA. Or now, when billions of non-human animals pollute the planet and trillions dying every year.

Cognitive dissonance makes life bearable. If I were to know that the flesh I'm eating is dog flesh, I'd probably puke. Or if my mind always had burden of how much I contribute to the environmental destruction with my life choices, I'd probably commit suicide.

But with cognitive dissonance I can live a life worth living.

<comment><USER10> Or you could not eat meat.

What part do you think cognitive dissonance plays in the fact that you conclude that without it, you could not "live a life worth living"?

<comment><USER9> Well, an argument of taste comes into mind. If my life is based on daily enjoyment in my meals then giving up flesh is lowering my happiness.

The enjoyment, the participation in a carnivorous human culture is integral to my existence. Food being a major part of it. Dogs in China, chickens in the rest of the world, calves, lambs and other babies. Factory farming makes their life miserable (or maybe the fact that dog flesh is "magically better" if you torture it before harvest, absolutely disgusting practice) and if I am aware of that I might not enjoy it anymore. Therefore I participate in cognitive dissonance, provide arguments which make no sense but soothe my conflicted mind.

Organic farming, humane slaughter, cage free, all lovely cognitive dissonance. It's always there. When slavery was actual, we tried to give them better rights, just like we do for animals - instead of abolishing the practices that make our minds conflicted.

Of course I can live without meat, dairy and eggs - I've been doing that for more than 20 years.

Just love speaking from the other perspective. :D

<comment><USER11> So animal slavery is the same as human slavery?

Should animals automatically be assigned the same rights as humans?

<comment><USER9> I'm not saying it is the same.

It's just that our reactions to the cognitive dissonance are the same.

For example, you had attempts at laws of humane handling of slaves during the US slavery period. Slaves were disposable creatures, just like animals.

Our handling of the cognitive dissonance was attributing inferior characteristics to slaves (intelligence, different skin, can't learn to read etc.). Same thing is done with animals to argument their handling and disposability.

Then you try to add "humane" into your reasoning. Which is filled with oxymoron terms like "humane slaughter", "humane rape", "humane electrocution".

Justification of having the right to a slave's life because you feed him and give him the right to live is absolutely mirrored in the argumentation when it comes to non-human animals.

Nice thought experiment to confirm your cognitive dissonance is to think of what you would do with homo neanderthals or homo erectus or maybe australopithecus genus? Would you keep them in zoos? Have them as disposable servants? Of course you wouldn't.

Cognitive dissonance is present because you've been raised in a certain environment that starts to have (or you start to recognize it having) characteristics that go against your moral stands.

If you try to have thought experiments similar to the one above (the environment in which you didn't grow) you can think more in line with your true positions, and leave the faulty argumentation behind.

Of course, you might try to skew the argumentation for the homo/australopithecus case to be consistent with your actions in your non- human animals case, but that wouldn't come natural, that would come through cognitive dissonance (you spot the connection between the two, it distrubs you, and instead of admitting that environment conditioned you - <USER2> dissonance comes to play).

Slavery, nationalism, fascism, heterosexual supremacy, male dominance, all are ideologies spawned from existing environments whose supporters suffer from cognitive dissonance. All of these ideologies share the same characteristics as those of enslaving animals, massively killing them, poisoning the environment etc. In that particular way, these ideologies are the same.

</comment></comment></comment></comment></comment></comment><comment><USER12> I strive to have one idea in my head, because having one idea feels like being on a motor-way and visiting one of many ideas feels like being on a small road. When I'm coding in a new domain or field I am sometimes flooded with options and I reach cognitive dissonance and my pace takes a halt, for minutes, hours, sometimes months, because of this dissonance, until one idea has become more like a high-way an the journey proceeds. I feel that because I'm a programmer I have to deal with and have achieved a quite healthy approach to what is cognitive dissonance, a state that outside of work sometimes makes me feel a bit schizofrenic.

<comment><USER13> You should take value from those options rather than letting any one of them define value. Then trust yourself to move forward. Software is writ in water.

<comment><USER12> I do often continue working but then with a nagging sensation of not executing a task in the most optimal of ways, which is what I meant by having a healthy approach to cognitive dissonance, performing a task in a way you know or feel is not optimal but not being confused by feelings of cognitive dissonance, instead just see it as part of the learning process. In the end, the dissonance dissapear as soon as the learning process has finished, and I'm no longer anxious about that option.

<comment><USER12> Which in itself is not very interesting but might be in the context of building an AI. Apart from a NN, what else do you need for an AI? Perhaps you need mechanisms such as "cognitive dissonance" in order to acheive "effective learning" through coping with that dissonance. What we have today are clever NNs. Nothing close to a talking bear (you know, the one from A.I. Artificial Intelligence).

</comment></comment></comment></comment><comment><USER14> A strikingly shallow and pointless article. TL:DR; We did some trivial, questionable, narrow tests, and turns out cognitive dissonance is what you thought it was and can be thought of as OK / survival instinct.

<comment><USER15> I wonder why you dismissed it as shallow - I thought the opposite. I found it very interesting that they can actually identify areas in the brain that are probably responsible for the cognitive dissonance.

</comment></comment><comment><USER16> See also [https://en.wikipedia.org/wiki/Doublethink](https://en.wikipedia.org/wiki/Doublethink)

<comment><USER17> ..but also see consistency bias and commitment effects (e.g.: [http://lesswrong.com/lw/4e/cached_selves/](http://lesswrong.com/lw/4e/cached_selves/))

</comment></comment><comment><USER18> As far as I know the actual cognitive dissonance involves ideas, beliefs or values. Note that these three categories do not belong to the same class. Beliefs and values involve an emotional component, along with wishes, desires and all actions carried out for any sort of emotional gratification whereas ideas do not. It is clear that we can hold contradictory ideas in our mind. There can be no progress without that ability. Holding contradictory emotional states is very different however. It is akin to the ability to tolerate ambivalence, of which it is a general expression. This can drive some people crazy (literally). The authors seem to wave at the insula (the emotional component in that instance) to focus on the cognitive, executive component, thus not really localizing dissonance but rather the areas involved in the brain's efforts at neutralizing it. A sort of homeostatic mechanism unknown to Vulcans...

</comment><comment><USER19> This is very interesting research. In my opinion, consistency is very important in politics because, while consistency doesn't guarantee correctness, it does place some bounds on what can be true. Often smart people go to extremes in politics because they are able to see more clearly the inconsistencies in the mainstream political parties or ideologies. But being extreme usually just means being consistently wrong, which is not very helpful either.

</comment><comment><USER20> Cognitive Dissonance seems like a mechanism to moderate rate of change, plus a weak form of "extraordinary claims require extraordinary evidence".

If you have strong beliefs (regardless of how you got them) it takes repeated exposure to contrary evidence over time to change those beliefs.

</comment><comment><USER21> Does someone really believe that cognitive dissonance is a bad thing, as the article suggests at the end? I've just always imagined that feeling bad for poor decisions is how you learn not to do poor decisions.

<comment><USER22> Think about something you wanted and couldn't have. You probably tried to convince yourself you didn't want it anyway, and it was better for you that you didn't have it. It certainly keeps me more happy! But I also try to be conscious of it and use it like a tool more than a crutch.

<comment><USER23> So is "sour grapes" simply a manifestation of cognitive dissonance?

<comment><USER24> Yes! It is often distilled to this aphorism. But from my reading of it "sour grapes" is only one aspect. It is a more general concept that deals with how we resolve tensions between our beliefs and facts as we see them.

</comment></comment></comment></comment><comment><USER25> the cost to pay at the end of the road is exorbitant. with this in mind, would anyone like to commit to a culture of holding fast to 'wrong and strong'? show me where i am wrong and may you be rewarded. people compete to build the best tools. fix the solution before the solution fixes you. prepare the answer before you are prepared by the answer. the task is great. you may describe the problem in any language you wish, veneered depravity is worse than dealing with what it is.

</comment><comment><USER26> Given the volume of knowable information vs potentially possible information, cognitive dissonance is probably when you're paying the best attention to the actual world.

</comment><comment><USER27> I know there have been scientific studies, but I think there is no such thing cognitive dissonance.</comment>