Mmap(): Now you're coding with portals - <AUTHOR> http://www.willemthiart.com/2011/09/mmap-keeping-code-elegant.html <comment><USER2> Mike Ash covered the idea of using virtual memory tricks to handle ring buffers 3 years ago, written up as [https://mikeash.com/pyblog/friday- qa-2012-02-03-ring-buffers...](https://mikeash.com/pyblog/friday- qa-2012-02-03-ring-buffers-and-mirrored-memory-part-i.html).

Unlike the OP's article, Mike Ash's version uses vm_remap() to remap memory around instead of hitting the filesystem and relying on tempfs to keep the data in-memory. vm_remap() is an OS X API, and I don't know offhand if there is any equivalent on Linux (though I would be surprised if there isn't some way to do the same thing).

<comment><USER3> mmap doesn't necessarily have to hit the filesystem, as there are several ways to create file descriptors that are backed by memory (POSIX shared memory, typed memory objects, for instance).

<comment><USER4> Is this the general idea?

        int fd = shm_open("test", O_RDWR|O_CREAT, 0600);
        ftruncate(fd, 4096*2);

        char *part1 = mmap(NULL, 4096, PROT_WRITE|PROT_WRITE, MAP_SHARED, fd, 0);
        char *part2 = mmap(part1 + 4096, 4096, PROT_WRITE|PROT_WRITE, MAP_SHARED|MAP_FIXED, fd, 0);

        part1[0] = 'X';

        assert(part2 - part1 == 4096);
        assert(part1[0] == part2[0]);

        shm_unlink("test");

<comment><USER5> I've programmed with POSIX shared memory, and yes, that's the general idea.

A very important caveat is that the POSIX shared memory namespace is shared among all processes, so you need to wrap shm_open with a mkstemp()-style algorithm that generates a random name, opens with O_EXCL, and tries again if it fails. Unfortunately it's very easy to mess that up and introduce a security vulnerability.

<comment><USER6> It would be also prefferable to unlink just after /open/ call.

Wouldn't mkstemp("/dev/shm/tmp-XXXXXX") be enough. As strace tells /shm_open/ is just a wrapper for /open/ with /dev/shm/ prefix.

<comment><USER5> On Linux, shm_open is implemented with /dev/shm, but that's not the case on other platforms.

</comment></comment></comment></comment></comment></comment><comment><USER7> At first I thought this was for interprocess communication. But it's not. It doesn't even have the locking for multithread use. This is a micro- optimization for a single-thread, single process program.

The advantage gained with all this memory mapping is that you get to avoid an extra copy coming out of the buffer, because the "poll" function returns a pointer into the buffer, not the data itself. Avoiding that copy creates a potential race condition. When "poll" is called, and returns a pointer into the buffer, it advances "head", indicating the data has been consumed. That space is now both available for writing and being used by the caller as if immutable. The code that calls "poll" must be done with the data before anyone calls "offer". You've now created an undocumented constraint on the callers to "poll" and "offer". If someone doesn't know that constraint and modifies the code, it will randomly break.

Is this micro-optimization really worth it? Modern CPUs are good at copying recently touched data.

<comment><USER8> This strikes me as being interesting primarily for the potential impact it has on interface design. There are applications of (this sort of) virtual memory manipulation beyond circular buffers. Performance is one consideration, but not the only one.

Also, this is a demonstration - of course it lacks synchronization mechanisms for multithreading! Any particular application of the principle would be adapted for the context in which it occurred (and hopefully be justified thereby).

(As an aside, that caveat only applies if you begin with a _poll_ function that performs the copy itself. That implementation isn't the only obvious one, especially given a large buffer - though I suppose there's room for disagreement on that.)

</comment></comment><comment><USER9> I agree: Magic ring buffers are cool! (We used then in BeOS in 1999!)

Separately, watch the number of mmap segments. Linux kernel uses a tree to manage then, and the O(log N) operations really start to hurt at larger numbers.

</comment><comment><USER10> Does this play nice with caches? I know some systems like ARM allow aliases in the MMU which will ensure cache coherency, but it is system dependent and a lazy implementation would just disable caching and slow down the code.

<comment> Tuna-Fish On physically addressed cache architectures, like all x86 implementations, this has no ill effects. With virtually addressed caches like on ARM, this is generally a bad idea.

</comment></comment><comment><USER11> It is a neat idea, indeed, but from a design perspective it is pretty bad. A general purpose implementation of a collection should always copy read results to a separate buffer. Otherwise a malicious client could use the pointer to modify the content of the collection or at least, if the memory is read-only, read the content directly potentially bypassing necessary checks.

Further without external synchronization writers may at any point overwrite data still not completely processed by a reader. This could be solved by first just peeking at the data and only after the data has been completely processed performing a read to indicate that this data can now be overwritten. But this obscures the semantics of the operations and breaks multiple reader scenarios because all readers will see the same data until the first reader finished processing it.

There may be and there probably also is a use for this trick but 99 % of the time you should probably not consider doing something like that.

<comment><USER12> _malicious client_

Inside the same process? Is this really a risk one can sensibly defend against? A malicious client can take your copy of the data, scan the entire memory space of the process for the other copy, and overwrite that.

<comment><USER11> Yeah, you are probably right. I mostly used managed languages for the last ten years or so and slowly start forgetting what unrestricted access to the entire address space even means. In a managed context not everything is lost if you have malicious code in your process, but then again it would probably be quite hard to make use of manual address space mappings there. So I retreat my position to making life a bit harder for malicious code if you avoid handing out pointers into your private data.

</comment></comment></comment><comment><USER13> Very cool stuff. I like the trick.

Mmap areas can be tricky sometimes if you directly cast their areas to a struct, depending on compiler optimization you might have make some things "volatile". I remember hitting a bug along those lines.

You'll also get SIGBUS errors on Linux. Was kind of suprised first time by those as well.

<comment><USER14> mmap seems very awesome when you first get to know it. You enter one of those "I just found a new programming technique" phases where you naively want to do all your I/O that way because you have just seen the light.

Then hopefully you start to understand the SIGBUS problem. I/O failure becomes indistinguishable from a bad pointer dereference. Oh wait, maybe I/O and memory really should be separate...

At least that's how I felt about it. From what I see many people do not reach that last phase.

<comment><USER15> With great power comes great responsibility. mmap is one of those tools.

Keep in mind that your whole linux system essentially mmaps your binaries / shared libraries when you run an application. And with caveats our world still keeps going around.

Error handling with mmap is a PITA but there's a few ways you can work around the general cases:

Use used mapped region for reading data and then use write() for writing it. That's what LMDB does. That's an assumption that's betting errors occurring in the write path.

If you're doing IO in a tight loop you can catch the SIGBUS sent to your thread (SIGBUS/SIGSEGV are always deliver to the thread that caused it). You can deal with the fault via sigsetjmp/siglongjmp. This has all sorts of fun draw backs (like if you're using C++ RAI after sigsetjmp).

<comment><USER14> > Keep in mind that your whole linux system essentially mmaps your binaries / > shared libraries when you run an application. And with caveats our world > still keeps going around.

Yes, and it does very admirable things there, brilliant things I would say. If you aren't going to touch the whole thing it doesn't have to load it from disk. If there is memory pressure it can just evict the in-memory copies of pages. All great stuff for that usage.

That said I have seen it cause issues. Most commonly I'd see it on Windows (it's not called mmap there, but whatever, same issue) if you run an app from a network share. Suddenly network timeouts make the whole app blow up. Not cool. There is actually a flag in the EXE file format that says "if you run this from a network, copy the contents to the pagefile first" \- meant for exactly this scenario.

</comment></comment></comment></comment><comment><USER16> A nice trick!

An alternative API, if you are using a circular buffer that is just being read() into or write() out of, is to make the I/O parts of your code use readv() and writev() instead. The circular buffer call then returns either one or two memory ranges depending on whether the range crosses the end of the buffer or not. Then you achieve the same thing as the mmap trick, full reads and writes with one syscal.

</comment><comment><USER17> Why not just use the % operator to make the memory wrap around? It seems so much simpler and less prone to errors. Ok, you'll need an extra ALU operation, but these are cheap nowadays, especially if % is implemented by bit-masking.

Also, mmap may confuse the compiler, and to counter that you will have to add "volatile" everywhere, which very likely implies a performance hit anyway.</comment>


The strange psychology of pain relief medicine - <AUTHOR> http://www.bbc.co.uk/news/magazine-35091242 <comment><AUTHOR> Fascinating tidbit:

> Colours also have an effect on how people feel about the medicine they are > taking. Red pills have been reported to be more effective for treating pain > than blue, green or white pills. But blue pills make more effective > tranquilisers than red ones, except for Italian men. It's been suggested > this could be because blue is associated with their national football team.</comment>


We Lose A TechCruncher To Y Combinator - <AUTHOR> http://techcrunch.com/2010/06/07/we-lose-a-techcruncher-to-y-combinator/

<comment><USER2> "Jason Calacanis congrats Dan! call me when you do your angel round.... and if you ever need a story on TechCrunch you know where to send the MacBook Air!"

RACK 'EM!

<comment><USER3> Hilarious. And HN-appropriate.

</comment></comment><comment><USER4> Thanks everyone for the kind words. Just got back from dinner in the city to find myself at the top of HN for leaving a great company. Hopefully one day soon it'll be for successfully building a great one of my own. Thanks again.

<comment><USER5> Hi Dan please tell us a bit more about what it is like to work for TC. Is Mike a good boss? ;-)

</comment></comment><comment><USER6> The Arrington/Calcanis relationship is impossible to decipher. But I guess I shouldn't care.

<comment><USER7> If a car cut Arrington off on the freeway, I get the feeling we'd have a story about how they have lots of freeways in Los Angeles, and Calacanis probably drives like a jerk.

</comment></comment><comment><USER8> Congrats to Daniel and Dave! I'm biased b/c I know these guys, but I'm excited about their startup. And hats off to Dan b/c it's never easy to leave a salaried, full-time gig for the ground floor of a startup.

</comment><comment><USER9> They lost a TechCruncher to entrepreneurship, not Y Combinator.

<comment><USER10> Erm. Can it not be both?

<comment><USER11> No. One is sensationalist link-bait, other is a fact.

<comment><USER12> wait, which one is which?

<comment><USER13> but i've always thought "y combinator is entrepreneurship"... (yelled as in "soylent green ...")

<comment><USER14> He could have reiterated entrepreneurship within the article, but we get the point.

</comment></comment></comment></comment></comment></comment><comment><USER15> Really need more people to step up and decide to make a difference in their startup. Good work, Dan! Can't wait to see what do you have in store for us! Got to love J's email response. Nicely done to say the least. Haha.

</comment><comment><USER16> This clearly shows the value of Y combinator. Dan Levine gets techcrunched before he even has a company.

<comment><USER17> Or perhaps the value of working _for_ TechCrunch.

<comment><USER18> Exactly, we got covered by TC early on by knowing one of the writers (and having a great product). The adage "Not what you know ..." is oh so true when it comes to publicity.

</comment></comment></comment><comment><USER19> Congrats again to Dan + David. We're excited about their product - a real game changer.

</comment><comment><USER20> Isn't he a little old to be scrounging for the YC chump change?

<comment><USER21> I've never thought of the money as the major selling point of YC.

</comment></comment><comment><USER22> Until he said otherwise, I actually believed that Arrington was pissed about the resignation.</comment>


IPython 3.0 released - <AUTHOR> http://ipython.org/ipython-doc/3/whatsnew/version3.html <comment><USER3> This is the last release of iPython which will be called Jupyter Julia, Python and R name mash up) to show the kernel agnostic nature of the product. iPython will only refer to the Python specific parts AKA the interactive python kernel and a few other pieces. You can run iPython/Jupyter with over 30 different kernels. My favorite is R and Haskell. [https://github.com/ipython/ipython/wiki/IPython%20kernels%20...](https://github.com/ipython/ipython/wiki/IPython%20kernels%20for%20other%20languages)

<comment><USER4> Just a note in passing as many people make the mistake when writing about IPython: the name of the project is written 'IPython' instead of 'iPython'. The project maintainers would like to encourage people to avoid the latter casing, in particular to avoid any confusion with Apple products. If you don't like the 'IPython' casing it's better to just use lowercase 'ipython' instead.

<comment><USER3> I am the last person in the world that would ever want to have anything Apple seen in other projects. I will always go with IPython, BUT once again Apple steals something that wasn't theirs iX was before iMac.

</comment></comment></comment><comment><USER5> That "whatsnew" page doesn't mention it, but IPython 3.0 adds official PyQt5 support for IPython event loop integration (ie, time slicing so the text console with local kernel remains responsive) and PyQt5 support for Qt console. Spyder recently merged in PyQt5 support as well, and Matplotlib has it, too. We're getting to the point where everyday IPython users can finally move over to PyQt5.

</comment><comment><USER6> So I was super excited when IPython started rolling widgets into itself - <USER2> thought I would be using them a lot. But turns out that I just ended up using one pattern (slider + matplotlib to cycle through dataset visualizations). What I've found is that googling for IPython widget documentation or tutorials is just... really difficult. There's stuff from a lot of eras, and it's often quite tricky to figure out exactly what the

I'm pretty certain its just my poor google-fu in this case, but does anyone have a particularly good/authoritative 2.x (or 3.x if those even exist yet) tutorial or guide to follow?

<comment><USER7> Jonathan Frederic just updated the example notebooks for widgets before the release: [http://nbviewer.ipython.org/github/ipython/ipython/tree/mast...](http://nbviewer.ipython.org/github/ipython/ipython/tree/master/examples/Interactive%20Widgets/). We've also listed a few examples of cool widgets at [https://github.com/ipython/ipython/wiki/widgets](https://github.com/ipython/ipython/wiki/widgets) (though some of these may not have been updated to run on IPython 3.x). You're welcome to ask questions on the IPython mailing list or the gitter chat: [https://gitter.im/ipython/ipython/help](https://gitter.im/ipython/ipython/help).

</comment></comment><comment><USER8> I am in the middle of IPython Cookbook ([http://ipython- books.github.io/cookbook/](http://ipython-books.github.io/cookbook/)), which I enjoy a lot.

I wanted to ask which things gets outdated, but it seems that the author tries keep it up to date ([https://github.com/ipython-books/cookbook- code/issues/17](https://github.com/ipython-books/cookbook-code/issues/17)).

</comment><comment><USER9> The turtle widget [1] looks exactly like what I was looking for. It can be used to teach Python programming to kids within an IPython notebook.

[1]: [https://github.com/takluyver/mobilechelonian/tree/require- wi...](https://github.com/takluyver/mobilechelonian/tree/require-widgets)

<comment><USER10> Turtle is also part of Python's standard library. Re-implementing geometric puzzles we already solved in Scratch works well as a transition to Python for my seventh graders.

</comment></comment><comment><USER11> I'm really excited about the interactive widgets. I've been curious about the idea of creating a spreadsheet widget to provide excel-like functionality in Jypyter.

<comment><USER12> The thing about Excel is there are many 50~80% use case implementations. But none with all 30 years of Microsoft's spreadsheet experience baked in. The long tail use cases are where Excel excels, and in spreadsheets there are a lot of snowflake use cases.

<comment><USER3> The biggest thing about "Excel" and spreadsheets is the work you do is not reproducible and it is the main reason why you should program all your work. What people do with macros and spreadsheets is very dangerous and unless it is documented it has too much human error capability.

<comment><USER12> The business case for using Excel overwhelms engineering best practices up to somewhere around five or six sigmas. The big ball of mud software architecture is good enough to make money. Anyway explaining business logic to a technical programmer is also fraught with human error. TANSTAAFL.

<comment><USER13> Not necessarily. There have been a number of disasters in the last few years caused by errors that have been directly attributed to spreadsheet usage. Many financial firms are reining in excel use by their business users. Prototyping a solution is fine, but for production use they are requiring an auditable solution that has proper source code control and can't be tweaked by the end user.

Spreadsheets are great products but for production use they are really two edged swords.

<comment><USER12> Sure, but that shift is happening under the same logic that leads businesses to run ERP applications on big iron mainframes even here in the 21st century.

It's a matter of degree, but human error remains. The subprime clusterfuck wasn't based on using Excel.

</comment></comment></comment></comment></comment></comment><comment><USER14> Go to try.jupyter.org to give it a spin.

</comment><comment><USER15> I'm really excited about IPython as a tool for MOOCs. For example check out this ComputerVision class: [https://www.kickstarter.com/projects/1186001332/pyimagesearc...](https://www.kickstarter.com/projects/1186001332/pyimagesearch- gurus-become-a-computer-vision-openc)

Ultimately, instead of thousands of going thru the same material, I think small groups could break out and build an independent project in Ipython as it documents the results and source in one place.

<comment><USER7> Are you talking about a small group all working together on an IPython notebook + source files? IPython doesn't (yet) support collaborative editing by itself, but SageMathCloud ([https://cloud.sagemath.com/](https://cloud.sagemath.com/), source at [https://github.com/sagemath/cloud](https://github.com/sagemath/cloud)) has patched IPython to have Google Docs-style collaborative editing. SageMathCloud is still using the latest IPython 2.x release (updated soon, probably in conjunction with upgrading the version of IPython in Sage). Still, it's probably your best bet right now for collaborative editing in IPython notebooks.

That said, several IPython developers are working on adding Google Drive support, and I believe they are working on the collaborative editing capabilities as part of that.

<comment><USER16> Is SageMathCloud really based on the IPython notebook? I had assumed it was based instead on the earlier Sage Notebook.

<comment><USER7> SageMathCloud is a completely new thing, which is _much_ more comprehensive than either the IPython notebook or the previous Sage notebook. It provides the ability to run arbitrary services and connect to them, and provides a very easy way to launch an IPython notebook server. Log in, create a project, click "New", and then click "IPython notebook". It starts up an IPython notebook server (patched to allow collaborative editing) and tunnels the connection out so that you are interacting with the IPython notebook server it started up. Beyond that, it has a completely new Sage notebook, terminal, latex editor (all allowing real-time collaboration), automatic snapshots every few minutes, and many more things.

</comment></comment></comment></comment><comment><USER17> Such an awesome tool for my day to day work. I'm so lucky that I have a job where I can send these between myself and my GM.

</comment><comment><USER18> Anyone know how long it typically takes Anaconda to package up new ipython releases?

<comment><USER19> It normally becomes available a few days after a release. Run 'conda update ipython ipython-notebook' to check for a newer version.

</comment></comment><comment><USER20> this is really cool. I love the ipython notebook model of dev...and splitting apart those features from languages is a good idea</comment>


Google Code Jam 2013 - <AUTHOR> https://code.google.com/codejam/ <comment><USER2> Im actually going to compete this year. Usually I sign up, get busy, then ignore the challenge, however I want to see how I match up with the rest of the world when it comes to solving hard problems in a set amount of time using good data structures. Its also always good to stay sharp so that you can do well in interviews when you need to (never know!).

</comment><comment><USER3> "The Contest is void in Cuba, Quebec, Saudi Arabia and Syria and where prohibited by law."

As a student really wishing to one day work at Google Montreal this has me seriously disappointed.

Does anyone know of a way I could participate if I turn down any prize I would win?

<comment><USER4> Nothing "really" prevents you from participating, you'll just have to fill a valid address (which can be easily found online) only thing is you won't receive any prizes...

<comment><USER5> I once won a US-only Blizzard contest. When I unexpectedly won, I sent them a mail, and they agreed to ship it to my country (France).

I'm probably the only EU winner of this contest !

</comment></comment></comment><comment><USER6> Anyone else get:

"""Error: Server Error

The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it."""

When attempting to identify using a Google account?

<comment><USER7> I didn't get this error here, however I recieved the exact same error when I used my german "..@googlemail.com" mail address to register on appengine. After changing it to "..@gmail.com" it worked. If you are german, you could try that as well.</comment></comment>


Kotak Bank's ultimate idea to takeover banking in India - <AUTHOR> https://www.kotakjifi.com/default.aspx?username=Yaswanth768

<comment><AUTHOR> The bank takes 0 deposit accounts and gives indirect interest over Rs.25000 (~$400). And does everything social. I would say this will be the next 100 billion $ idea for India. If other banks follow suite then they will survive, otherwise its end of them as they see it. What are your thoughts guys?</comment>


When You Picture Someone with Mental Illness, Picture Me in a Nice Tailored Suit - <AUTHOR> http://www.huffingtonpost.com.au/osher-guensberg/when-you-picture-someone-with-a-mental-illness-picture-me-in-a_a_22082506/ <comment><USER2> I suffered in private for years with OCD and didn't know it. I honestly thought I was just slowly going crazy/was a terrible person with repetitive, disturbing thoughts. On the surface, I'm a professional, married, great family life, etc. but kept my suffering VERY private.

After finally getting fed up/building up the nerve to talk to my doctor about what was going on in my head, she clarified what OCD was doing (intrusive thoughts -> anxiety -> mental compulsions to make the anxiety go away -> intrusive thoughts get worse, more compulsions "required" to make it go away) and gave me a diagnosis of such, as well as some treatment recommendations.

I just recently wrote about dealing with OCD and posted it to social media, announcing it publicly. There was an outpouring of support, and even more satisfying, a few private messages of people discussing their own, very private battles with mental illness.

It's a huge, private struggle for most, and I think we'd all be better off if we talked more openly about it.

<comment><USER3> May I ask how you are dealing with it? My girlfriend has OCD and I find it really hard to deal with. I accept that she has these thoughts but I am at a loss how to be supportive or helpful.

<comment><USER2> Yes! Exposure-response therapy [1] has been by far the best treatment I have received. It's scary and painful, because it literally forces you to draw the anxiety out and face your darkest fears head-on without compulsions, but it's the only evidence-based treatment for OCD currently out there. I'm already noticing I'm getting my "mind" back, learning that scary thoughts are just thoughts, and I don't need to battle with them for hours.

There's definitely an element of learning mindfulness that's key too. Learning to accept the uncertainty of random "terrible" thoughts that pop into your head, learning to not engage with them and letting them pass, etc.

I recommend two books: The Imp of the Mind by Dr. Lee Baer [2] and The Mindfulness Workbook for OCD by Jon Hershfield and Tom Corboy [3]

[1] [https://iocdf.org/about-ocd/treatment/erp/](https://iocdf.org/about- ocd/treatment/erp/)

[2] [https://www.amazon.com/Imp-Mind-Exploring-Epidemic- Obsessive...](https://www.amazon.com/Imp-Mind-Exploring-Epidemic- Obsessive/dp/0452283078)

[3] [https://www.amazon.com/Mindfulness-Workbook-OCD- Overcoming-C...](https://www.amazon.com/Mindfulness-Workbook-OCD-Overcoming- Compulsions/dp/1608828786/)

<comment><USER4> Amazing, thanks. My wife has OCD tendencies and has found mindfulness to be useful so far -- I've just ordered the second book for her.

</comment></comment></comment></comment><comment><USER5> > _The part of my brain that was able to rationalise the distorted thoughts > had stopped working, and now I was believing every irrational fear that came > into my brain as if it were absolute fact.

I descended rapidly into paranoid delusions which had me convinced that the world was going to end that very day -- and I was the only one who knew about it._

Yeah that's a pretty deep low. Mine was when I was convinced that a classmate was a ghost, and seemed to be stalking me everywhere. Eventually I broke down and confessed to him, and like a smashed mirror, all illusions disappeared. In horror I took a year off my studies.

Recovery from deep holes like that may seem impossible but it's not. Accept also that there is no quick fix, no magic bullet, and that even when you're out of the tunnel, it may still take a long time to be 'normal'.

But this will also make you stronger and more empathic - and that is valuable. I don't mean it in a hippie way, but too many people lack these, and so in a way you're blessed, because your worldview has shifted and you to begin see 'more'. You will also eventually learn to make peace with yourself: it's OK to trip up, it's OK have these 'glitches'.

Final note: I cannot emphasise enough about having a good support network. Even if you have no one to trust, at the very least avoid toxic company. And by the way, you'll be surprised by what you'll get when you reach out just a little. After all, your dignity is nothing compared to your sanity, so confess to your mom, blubber on the phone with the Samaritans, break down in front of your tutor ... usually, you will find that at their core, humans are kind.

Edit: typo

</comment><comment><USER6> I can't comment about OCD medication but I'm posting this as a bipolar patient as a warning. Do not I repeat do not take sedatives antipsychotics(there are lots of antipsychotics for bipolar and schizophrenia that are sedatives) for more then a couple weeks with out planning to take it long term. Sedatives mess with your sleep function and destroy your ability to sleep naturally. I can no longer sleep with out a sedative because a drug called zyprexa destroyed my ability to sleep naturally. Zyprexa can cause both diabetes and lots of weight gain and cause other side effects. There are couple of drugs like it but just thought I should mention that a the medications themselves can sometimes bring up side effects that are almost worse then the mental illness can really mess with your brain permeantly.

</comment><comment><USER7> A similar situation arises if you're autistic (not a mental illness, but with parallels in public perception) with assumptions of Rain Man savant-like abilities and mannerisms as being the norm.

</comment><comment><USER8> I remember a discussion at work where my boss said on IRC "how do you know when you're having a nervous breakdown?"

The other four of us, his sysadmin team, we have _all_ worked so hard we had a breakdown from it. It's a hazard of the job: it draws people into overdoing it. We told him to sign the fuck off for four weeks, with possible antidepressants. (He didn't, but he did take his next two weeks off without logging into IRC.)

I've had depressive and stressed periods and I'm happy to publicly say so, so this is not secretive but normalised.

Watch your coworkers and take care of each others' well-being.

</comment><comment><USER9> Ive lost my mind before. I had a manic episode, my first and only one. Felt immense euphoria. Saw incredible detail like rainbow diffraction of water from the sink faucet. I thought I was Jesus and there were only 2 forces in the world, pushes and pulls. Gravity aka dark light pulls. Light pushes (radiation pressure.)

I felt enlightened and had an altercation with the police who ended up beating the living shit out of me causing 3 herniated discs and TMJ that cause me agony and chronic pain daily. I have to take opiates to deal with the pain - otherwise I would be unable to have an active life.

This guy didn't experience what happens in most mental breakdowns. If you can get yourself to the doctor you have truly not lost your mind. But its a cute story.

Keep downvoting me for posting the hard truth. Real discourse...

<comment><USER10> I'm disappointed by the downvotes this person is getting. I have a close friend who went through a manic episode, and can imagine how "cute" stories like this might seem.

As an observer, the most alarming thing to me about this whole "raising awareness of mental illness" movement is that it's another judgment-forbidden sort of "every subjective experience is equal" movement. It's gone mainstream, too, in the usual sickening, missing-the-point way; you now have neurotypical college students with essentially easy lives drawing posters and holding fundraisers. It's not surprising people with authentic mental illnesses are rolling their eyes.

The downvotes this person is getting are a symptom of exactly this problem. "How can this person belittle someone else's illness?" In other words, everyone's illness is equally important. We've got to be diverse and inclusive. Never mind that some cases of mental illness are actually more severe than others. If everyone's entitled to their own perspective and experience, isn't this person entitled to theirs? Why downvote that? Because it doesn't fit into the modern mental-health-awareness agenda?

I think it's important that instead of lazily saying "everyone's suffering is a problem," we discern between degrees of suffering. Partly because perspective matters, but also because being told your problems are non- problems compared to someone else's is a _helpful_ thing. The truth is, most people's problems are _to some extent_ self-inflicted/self-created, and it's never a bad time to examine the size of that extent.

<comment><USER11> > If everyone's entitled to their own perspective and experience, isn't this > person entitled to theirs?

The downvotes (not mine) aren't for their experience, they're for the dismissiveness. It's like the paradox of tolerance; you shouldn't be surprised if people don't support your viewpoint about not supporting other viewpoints.

> Because it doesn't fit into the modern mental-health-awareness agenda?

Because it doesn't actual contribute anything substantive; it invalidates the author's experience seemly just to make a point that the author already acknowledged ("It seemed the only real difference between us was that I knew something was wrong")

> being told your problems are non-problems compared to someone else's is a > helpful thing

How so? Far more often, people tell others that their problems are non- problems in an attempt to shut them up, not to help them. What actual value comes from attempting to precisely determine who has it worst?

[http://rationalwiki.org/wiki/Not_as_bad_as](http://rationalwiki.org/wiki/Not_as_bad_as)

<comment><USER10> Fair enough on the first two points. That makes sense.

 _> How so? Far more often, people tell others that their problems are non- problems in an attempt to shut them up, not to help them. What actual value comes from attempting to precisely determine who has it worst?_

Now that I think about it, I do see this on the internet a lot, and agree that it's highly unconstructive.

What I was more getting at was a critique of a pervasive idea that everyone's self-reports should be taken at face value, and treated with equal gravity.

A contrived example: imagine someone who feels depressed because they were pumped full of self-esteem as a kid, then found out in their twenties that they weren't that special; and someone who feels depressed because of chemical imbalances they can't control. Both people would use the word "depression" to describe themselves, and in our culture, you're not allowed to say that one is "real" while the another "isn't." But in fact it would probably help the first person to know that their depression isn't, in a strict sense, real: they can get out it by improving their external circumstances, while the second person can't.

(That's not analogous to the situation here; it's just a random example.)

<comment><USER12> > But in fact it would probably help the first person to know that their > depression isn't, in a strict sense, real: they can get out it by improving > their external circumstances, while the second person can't.

But that's kind of the crux of the matter, isn't it?

First off, we still know so little about mental health that we can't accurately tell which is which. And it strikes me as really harmful to categorize people's issues as 'real' or 'not real' based on vague notions. Autism, for example, was initially seriously considered a result of bad parenting, and the consequences are noticeable to this day.

Second, even if we can distinguish between, say, depression because 'raised with too much self-esteem' or 'chemical imbalance', this is mostly relevant for _treatment_ , not diagnosis.

If the person in question cannot find their own way out of the situation, the problem is by definition 'real'. The only difference might be how the situation is handled. In fact, in many cases the treatment is the same, regardless of how someone got there.

I've seen a lot of harm caused by people arbitrarily distinguishing problems as either 'nature' or 'nurture' or 'internal' or 'external'. This distinction is not only extremely vague, it doesn't actually matter to anyone except those who are developing or implementing solutions. To everyone else, I'd advise compassion, support, and avoiding judgment.

That said, you do have a point. Personally I've become more and more convinced that for various reasons, some good, most bad, our current treatment models err on the side of adjusting yourself to fit your environment, while the most beneficial solutions I've seen involve shaping your environment to fit 'you', or at the very least a combination of both. Regardless of whether an issue is 'internal' or 'external' (again, I don't think making the distinction is as valuable as it seems).

<comment><USER10> I'm guessing that where I'm maybe communicating this badly is in the word "real." I don't mean to suggest that people whose problems don't meet some arbitrary criteria shouldn't be taken seriously. And I certainly think hasty, dismissive judgments can have sinister consequences.

What I do think it's productive to do is to assess based on evidence the relative weight of people's issues. I think we'd agree that treatment depends on successfully and accurately identifying the problem. A huge part of that is figuring out what order of magnitude of difficulty you've got in front of you.

I'd say that in distinguishing between 'raised with too much self-esteem' and 'chemical imbalance,' the difference in the resulting treatment is so drastic that it may as well be a different diagnosis. Someone in the former category needs to acquire some combination of acceptance, a sense of agency, and goals to strive toward. Someone in the latter needs medication. The former is easier to solve, because the latter in some cases may not be solvable at all. This doesn't mean we should abandon compassion and start yelling at the person, but isn't it a good litmus test? Shouldn't someone who genuinely wants to get better be delighted to hear that their problem wasn't so big after all?

It sounds like you're less against judgment in general and more against lazy, dismissive, heartless judgments. But that's not what I'm advocating at all. I just have sympathy for the war veteran rolling his eyes when he hears a story about someone who got mugged getting PTSD. Of course no one should be mugged, and getting mugged sucks, but oh come on, let the guy roll his eyes.

<comment><USER12> > I'd say that in distinguishing between 'raised with too much self-esteem' > and 'chemical imbalance,' the difference in the resulting treatment is so > drastic that it may as well be a different diagnosis. Someone in the former > category needs to acquire some combination of acceptance, a sense of agency, > and goals to strive toward. Someone in the latter needs a careful balance of > medication.

Thing is, as far as I know, and correct me if I'm wrong, our knowledge of depression and it's causes and solutions is so rudimentary that we can't really make that distinction in the first place, which means we can't really argue whether treatment needs to be 'drastically different'.

I'd argue that based on this lack of knowledge, both categories should probably first try the first solution you mention, and settle for the second if that's no help. Who's to say, for example, that someone who's entire being has been shaped over decades into 'having too much self-esteem' can actually be 'fixed' without medication?

Or consider schizophrenia. Is it nature or nurture, when there's some evidence that it can very well lay dormant until it's 'triggered'.

tl;dr: what's the value in creating ill-supported distinctions on an issue that is already rife with judgment, unwanted advice, self-esteem issues (across the board, whatever you suffer from), and so on?

> It sounds like you're less against judgment and more against hasty, lazy, > dismissive, or leave-them-out-to-dry judgments. But that's not what I'm > advocating at all. I just have sympathy for the war veteran rolling their > eyes when they hear someone who got mugged telling a story about PTSD. Of > course no one should be mugged, but come on, let the guy roll his eyes.

Such a person is free to roll their eyes, but I don't see how we should have sympathy for the 'my situation is worse than yours' kind of judgment. We can tolerate it and perhaps understand it, but it's still harmful, judgmental, and pointless.

I lost my sympathy over this behavior once I realized that much of the worst judgment I've seen and, sadly, experienced, is caused by this attitude. The people with the worst attitude to the poor are often those who used to be poor but are not anymore, obviously by not being lazy like the rest of them. The same goes for the attitude of people who used to be fat, ugly, insecure, etc. At least in my experience (and overwhelmingly so).

<comment><USER10> Hm, yeah, good point. I'm not sure how much we know. Maybe you're right and we really don't know enough to make those distinctions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I don't have to picture anything, just look in mirror.</comment>


Elon Musk has launched a company that hopes to link your brain to a computer - <AUTHOR> http://www.businessinsider.com/elon-musk-neuralink-connect-brains-computer-neural-lace-2017-3 <comment><USER2> The road to hell is paved with good intentions. Elon preaches the safe AI bible but somehow misses the obvious issues with linking your brain to a computer.</comment>


Scientists Unveil New 'Tree of Life' - <AUTHOR> http://www.nytimes.com/2016/04/12/science/scientists-unveil-new-tree-of-life.html <comment><USER2> Original article: [http://www.nature.com/articles/nmicrobiol201648](http://www.nature.com/articles/nmicrobiol201648)

Link to higher-res image: [http://www.nature.com/article- assets/npg/nmicrobiol/2016/nmi...](http://www.nature.com/article- assets/npg/nmicrobiol/2016/nmicrobiol201648/images_hires/w582/nmicrobiol201648-f1.jpg)

<comment><USER3> I think you meant to link to this for the better quality image:

[http://www.nature.com/article- assets/npg/nmicrobiol/2016/nmi...](http://www.nature.com/article- assets/npg/nmicrobiol/2016/nmicrobiol201648/images_hires/w926/nmicrobiol201648-f1.jpg)

The NYT has a "super jumbo" diagram as well:

[https://static01.nyt.com/images/2016/04/12/science/11TREEOFL...](https://static01.nyt.com/images/2016/04/12/science/11TREEOFLIFE/11TREEOFLIFE- superJumbo.jpg)

<comment><USER4> Classic case where PNG would have been superior.

</comment></comment></comment><comment><USER5> I'm always surprised at how much these articles play up the surprise factor of analyses like these. Are the results actually surprising to anyone in the field? It's a cool visualization and this represents an improvement over our older dataset. But not a shocking revelation.

It's fine to play up the conventional wisdom angle, but I don't like the pretense that the scientists themselves are surprised that eukaryotes amount to a tiny fraction of the diversity of life on earth.

<comment><USER6> Well put. Carl Woese figured this out back when sequencing 20 base pairs was a feat (now 20 million is routine). This paper seems to be fine-focus of his concepts using tools he'd only have dreamed of using in the 1970's. He's a hero.

</comment></comment><comment><USER7> I had to really search on Wikipedia to understand this.

In case anyone else was just as confused as I was, have a read of:

1\. [https://en.wikipedia.org/wiki/Taxonomy_(biology)#Kingdoms_an...](https://en.wikipedia.org/wiki/Taxonomy_\(biology\)#Kingdoms_and_domains)

2\. [https://en.wikipedia.org/wiki/Domain_(biology)](https://en.wikipedia.org/wiki/Domain_\(biology\))

3\. [https://en.wikipedia.org/wiki/Kingdom_(biology)](https://en.wikipedia.org/wiki/Kingdom_\(biology\))

Humans are part of the Eukaryote domain [a], in the Animalia kingdom. [b]

In terms of taxonomy, we are Verterbrates [c] of the Synapsid clade (branch) [d] of Chordates. [e] Within this we are mammalian [f] haplorhini [g] primates [h]. Within the primate order we are of the homonid family [i] and are classified as the species _homo sapiens_. [j]

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

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

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

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

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

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

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

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

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

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

<comment><USER8> And together with fungi, we're classified in the Opistokonta clade in the article's tree.

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

<comment><USER7> Life is _awesome_ :-)

</comment></comment></comment><comment><USER9> It's interesting that the three main domains of life are considered archaea, eukaryotes and bacteria; but looking at the diagram, the bacteria seem to be split into to two major clades that are more separated than even archaea and eukaryotes are.

</comment><comment><USER8> So they've unveiled a new 'tree of life' for Bacteria.

<comment><USER10> We're in Opisthokonta, at the bottom right.

<comment><USER8> I know. I was referring to the new findings of the article.

</comment></comment></comment><comment><USER11> it's weird how they use the term genomes over and over, but their reconstruction is based on ~12 RNA genes. There doesn't actually seem to be any genomics in this article.

<comment><USER12> To do this kind of very broad genomic analysis, you need a set of markers to compare. These markers, or easy identifiable orthologs, need to be present in most/all the organisms in the comparison.

Ribosomal RNA is a well studied marker for both prokaryotes and eukaryotes, so it makes sense to use these as markers.

<comment><USER11> yes, I'm aware of this (I studied under Noller who worked with Woese on this).

To do broad genomic analysis, you don't need any _markers_ at all. markers are effectively pre-genomic sampling technology. You can obtain the rRNA without doing genomic sequencing. That's far cheaper and faster.

What you meant by "markers" are really "gene regions", and my point is that if you use 1% of the gene regions it's not genomic. And, further, the set that you want to compare is much larger than the ribosomal RNA. It should include the entire set of highly conserved genes that are common to all organisms, and even include a number of less conserved genes.

</comment></comment></comment><comment><USER13> What's with the "Loki" and "Thor" references in the image?

<comment><USER14> This seems to answer that, was wondering the same thing myself.

[http://www.science20.com/news_articles/is_loki_the_missing_l...](http://www.science20.com/news_articles/is_loki_the_missing_link_in_the_evolution_of_complex_cells-155372)

</comment></comment><comment><USER15> Loki. and Thor.?

<comment><USER16> I found this interesting too. I'm thinking that is where the Norse Gods separated from the rest of the Eukaryotes.

<comment><USER10> Though they differ from us Eukaryotes in important ways, overall the Norse Gods represent a really stunning convergent evolution.</comment></comment></comment>


Whatever you do, don't get on a Routemaster bus in London today - <AUTHOR> http://i100.independent.co.uk/article/whatever-you-do-dont-get-on-a-routemaster-bus-in-london-today--WyeOopCYEfl <comment><USER3> > According to EU rules on the welfare of animals during transport, > ventilation inside cattle trucks must ensure that the temperatures remains > between five and 30 degrees.

Does that mean cattle trucks need air conditioning if the outside air temperature is over 30 degrees?

</comment><comment><USER4> I wonder how the temperature compares to the Central Line between Bank and Tottenham Court Road during morning rush hour.

Can you get a cheap thermometer that takes ambient temperature quickly?

<comment><USER5> Its lower than the routemaster. I use the very bus pictured in the headline image and switched to the central line route that you mention (sort of, central line doesnt stop at TCR nowdays) because of the heat. Believe me, despite being able to usually sit down in the bus, the crowded tube was indeed more beareble.

</comment></comment><comment><USER6> Main quote: "The new Routemasters use a diesel-electric hybrid motor which produces around half the amount of carbon dioxide of a conventional bus, and adding air conditioning units would dramatically increase its carbon footprint."

No windows, no A/C = Very hot bus.

That's actually been a large obstacle to battery operated vehicles: they can manage to drive with reasonable range, but not with either heat or cooling.

<comment><USER7> There should be emergency exit hatches at the top of the bus that can be opened...

</comment></comment><comment><USER8> London is becoming a capital of the engineering screw-ups. First the underground trains that won't open doors unless there is a stable GPS signal, now this. I should stick to walking.

<comment><USER9> I hadn't heard about the GPS issue, but found this report about it:

[http://www.ciras.org.uk/report-library/train- operations/5213...](http://www.ciras.org.uk/report-library/train- operations/52131-issue-with-opening-class-377-doors-on-the-thameslink-route/)

I see it's from Jan '14, do you know if any improvements have been made since?

</comment></comment><comment><USER10> They are retrofitting with white-painted roof (which may help) and more insulation, which can't help. There's a heat source inside the bus - <USER2> people. Insulation will help increase the internal temperature. Sigh.

<comment><USER11> The heat source inside the bus (people) is far, far outweighed by the heat source outside the bus (radiation from the sun, convection from hot air, etc)

<comment><USER10> Wrong. The issue was, bus inside temps were exceeding outside temps. Only one way for that to happen - heat sources inside exceed those outside. QED.

<comment><USER12> > The issue was, bus inside temps were exceeding outside temps. Only one way > for that to happen - heat sources inside exceed those outside.

Wrong.

Put a closed car or bus, completely inert with no internal heat sources, in the sun. Because its traps air, so the heated air in the bus can't exchange with cooler air elsewhere (or exchange with heat sinks like the ground as effectively as outside air can), the temperature in the vehicle will exceed the temperature of the outside air. Without internal heat sources.

No, I'm not saying that this solar oven effect is _the_ problem with the busses under discussion, but its a real and easily observable effect which is sufficient to refute your "only one way for that to happen" suggestion.

<comment><USER6> That's only true if the sides are glass, so light can get in, but hot air can't.

I guess the windows count.

</comment></comment></comment></comment></comment><comment><USER13> I don't get why they can't be cooled? I've been on plenty of AC'd inner city buses where I live.

<comment><USER3> Indeed, the normal buses used in London have air conditioning. These buses are a special design which the mayor demanded.

(I haven't used one yet, but I've yet to be convinced they're worth the additional cost over standard buses, or the articulated buses they replaced.)

<comment><USER14> Out of curiosity, what was the problem with the old ones and what improvements brings this special design ? I might have to visit London later this month and these "new design" buses really scare me lately because I nearly had a panic attack in one last year due to same reason: very high temperatures (I suspect it was more than 50 C in the back), no windows and the driver intended to drive for ~3 hours to destination without AC !! After 40 minutes in a closed box under sun the people with kids were going crazy and the driver had to stop and troubleshoot the AC.

<comment><USER3> The articulated buses were used on the busiest routes, which mostly pass through poorer areas. Wealthier people, who don't use buses so often, complained that they blocked traffic and encouraged higher levels of fare evasion. (Both points have some merit, but normal buses also block traffic and have some fare dodgers.)

The people that used them liked them: three double doors and a low floor made it nice for old people, parents with children, pushchairs and wheelchair users. The three doors also made boarding and alighting faster.

The mayor appealed to tradition (red phone boxes, the design of the old red buses), said they weren't appropriate for London's narrow streets (they were obviously not routed down such streets), and replaced them with an expensive, bespoke design. These are more expensive in every way: vehicle cost, lower total capacity, and employing a bus conductor to supervise the rear platform.

There's some background on [https://en.wikipedia.org/wiki/Articulated_buses_in_London](https://en.wikipedia.org/wiki/Articulated_buses_in_London)

<comment><USER9> Interestingly, a lot of the bendy buses were sold to Malta (where they were even less suited to the road network).

Three promptly burst into flames: [http://www.standard.co.uk/news/transport/bendy-buses-sent- fr...](http://www.standard.co.uk/news/transport/bendy-buses-sent-from-london- to-malta-taken-off-their-roads-after-three-burst-into-flames-8788929.html)

</comment></comment></comment></comment></comment><comment><USER15> The Tube is absolutely brutal at this time of year, too. Glad I don't live in London anymore...</comment>


From Hello-World to Web-Launch in 2 Years - <AUTHOR> http://www.thecaucus.net/#/content/caucus/tech_blog/107 <comment><USER2> impressive even though the guy had a solid engineering background, what obviously helped quite a bit</comment>


Former Tesla workers claim they were fired for using maternity and sick leave - <AUTHOR> https://www.theguardian.com/technology/2019/jul/09/tesla-workers-terminated-claim-maternity-sick-leave <comment><USER2> > A Tesla spokesperson claimed Maggie Aranda's termination was due to > cellphone usage at work, and Carlos Aranda was terminated over a tweet that > violated Tesla standards.

Way to bury the lede: Tesla now fires people over bad tweets! Who will be the next CEO?

More seriously, I don't doubt that Tesla treats its employees badly. The company went through a self-described period of "production hell." I don't get the sense that anyone was treated well, and replaceable hourly workers tend to be the most vulnerable.

This quote is also misleading:

> Nevada is a right-to-work state, so they didn't need any sort of reason for > firing me

"Right-to-work" means that employees can't be required to join a union as a condition of being employed at a company. What she's referring to is "at will employment" which is the norm in most US states (including California.)

<comment><USER3> >Tesla now fires people over bad tweets!

Many companies, especially publicly traded ones, have social media policies now. Some go as far as to require you to provide all of your usernames.

If I wear my work badge outside of work, and someone makes a complaint about my actions or behavior while I'm off the clock, corporate security similarly investigates it.

This is nothing new. This is also why you'll see, with higher profile persons, "These views reflect my own and not that of my employer" or similar verbiage on their social media and blog bios.

[https://www.americanbar.org/groups/business_law/publications...](https://www.americanbar.org/groups/business_law/publications/blt/2011/11/01_hassan/)

PDF WARNING [https://www.americanbar.org/content/dam/aba/publications/lit...](https://www.americanbar.org/content/dam/aba/publications/litigation_committees/trialevidence/sample- social-media-policy.pdf)

<comment><USER2> I was just making a joke about Elon Musk, who is prone to tweeting things that cost him and the company tens of millions of dollars:

[https://www.cnbc.com/2018/10/16/judge-approves-elon-musks- se...](https://www.cnbc.com/2018/10/16/judge-approves-elon-musks-settlement- with-sec.html)

I'm not surprised they have a blanket social media policy. It was just ironic in context.

</comment></comment></comment><comment><USER4> I'm at one of the big tech companies. Contrary to popular belief, we still do something akin to stack ranking and managers have to pick out their "bottom" performing candidates each year to let go if needed.

I know of someone who ended up in that pool simply because they contributed less to the team, as they were out for 2 months on legitimate medical leave.

My point being - it's a known practice in the industry. Not saying it should be tolerated but remember this folks next time you consider a career decision out of loyalty. Your employer is loyal to no one other than shareholders.

</comment><comment><USER5> This doesn't surprise me at all. I use to work in a place where your work output was constantly monitored and graded. If you have vacation time banked up and took too much time off in one year, it negatively affected your ranking. Too much vacation time coupled with maternity and sick leave? Management will label you a "low performer" and they'll start looking for excuses to replace you for your "lack of commitment"

</comment><comment><USER6> Classic tragedy of the commons. Everyone wants worker's rights protections but no one wants to chip in and pay for it.

<comment><USER7> How must/can those rights be paid for?

<comment><USER8> So, I wish I had something more substantive, but that's kinda hard to do in this format. My experience in the workforce has been that the impact of someone taking leave is greatly exaggerated. Busybodies, workaholics, and managers act like it's the end of the world, yet somehow the sun rises the next day, and everything is fine.

Usually, a few people are minorly inconvenienced, but overall everything is perfectly fine. Meanwhile, the benefit to the individual is enormous. Arguably, it can actually improve productivity; people are more rested and mentally healthy. Either way, it's pretty clear to me that we can afford to give people more leeway.

There are jobs that make this more difficult, especially ones that aren't 9-5 desk gigs: Doctors, critical engineers/trades (needed to be on call for emergencies), even service jobs can be more challenging to schedule. I still think it's worth the effort to try to protect people's personal life; both from a cost/benefit perspective and an ethical one. Elon likes to talk about changing the world, but I don't think it's for the better if people have to work in hostile environments, can't raise their children, travel the world, or pursue their hobbies.

</comment></comment></comment><comment><USER9> Low wage jobs are miserable to work at and workers are being abused? Reminds me of Amazon Warehouse stories from years ago. I don't think anything really changed there even after they were raked over the coals by the media.

<comment><USER8> Much of the general public isn't hip to the reality that their "favorite brands" engage in unethical and abusive practices. They're either unaware or willing to give them a free pass, because "they like them".

This has changed a bit with the backlash against amazon, but hasn't gone far enough. Lots of people are unable to look past the convenience to them personally. You saw this with Walmart: "they have great prices, and I can get everything cheaply in one place". I have friends with extremely progressive views on employment that love Musk and Tesla.

</comment></comment><comment><USER10> I could never understand the love in the US for Ayn Rand type of social predations labeled as "right to work" (sic).

<comment><USER2> Her description of "right-to-work" had nothing to do with what the term actually means. It just means that employees can't be required to join a union as a condition of being employed at a company. What she's referring to is "at will employment" which is the norm in most US states.</comment></comment>


This explains why technical books are all ridiculously thick and overpriced - <AUTHOR> http://www.reddit.com/r/programming/comments/s04mp/this_explains_why_technical_books_are_all/

<comment><USER2> Here's the existing HN discussion for the original post: <http://news.ycombinator.com/item?id=3816050></comment>