Leaked Apple emails reveal employees' complaints about toxic work environment - <AUTHOR> https://mic.com/articles/154169/leaked-apple-emails-reveal-employees-complaints-about-sexist-toxic-work-environment#.zw8upJ7sg <comment><USER2> Absolute BS. She sent an email to the entire company about this "incident", which I'll include here (names redacted).

> 8:53:41 AM Person1: so am I the only one who thinks of the Bed Intruder > auto-tune song everytime Person2 warns us of undisclosed persons in the > building?

> 8:54:47 AM Person3: hide yo wife?

> 8:54:57 AM Person1: and yo kids

> 8:56:02 AM Person3: well, you're not any more

> 8:56:13 AM Person1: #winning

> 9:02:13 AM Person5: hilarious. Now the song is stuck in my head!

> 9:08:08 AM Person4: -_-

> 9:09:43 AM Person4: No

> 9:11:10 AM Person4: Could do without having songs referencing sexual assault > mentioned.

> 9:12:04 AM Person1: fair enough

> 9:13:39 AM Person4: Especially joking about it. -_-

> 9:18:25 AM Person4: Does not exactly endear me to working during the day > when the first thing I see is someone joking about rape in work chat.

> 9:18:46 AM Person1: my appologies

> 9:33:18 AM Person4: It's completely unacceptable, and creates a very toxic > atmosphere.

> 9:36:45 AM Person1: obviously that wasn't my intention. it won't happen > again.

> 9:37:24 AM Person4: Compounded by the fact I am the only woman in the [org], > and I have several guys joking about it as well, in work chat.

> 9:37:32 AM Person4: It would be unacceptable even if that weren't the case.

And then claims to still not feel safe coming back to work after taking a month off due to PTSD from the above incident.

There is undoubtedly sexism in the tech industry, and we should all strive towards eliminating it. This, however, is stirring up drama in response to a joke made in poor taste.

<comment><USER3> Person 4's fascist solipsism is astounding. She has transferred the "toxicity" and "unacceptability"in her own mind onto the whole team.

A song was referred to but there was no actual mention of sexual assault. The song is not "completely unacceptable" as it is obviously commonly known and legally sold. It is therefore acceptable in the workplace, referred to as it actually was.

<comment><USER4> It's also clear that she has listened to the song enough to know the words too. So she was happy offending herself.

<comment><USER5> I'm aware of lots of offensive things that don't belong at work.

<comment><USER3> The question here is was what was written in that email offensive and not to be written in the workplace...

<comment><USER6> Well, this was a chatroom. I do think it's important to recognize the level of planning which goes into what someone is saying and adjust expectations accordingly.

Now that our communication tools are capturing everything we are saying in real-time, do we truly expect 30,000 people to never make a comment that could possibly offend someone else?

I do wonder if just reading a comment like this in a company chatroom (along with an immediate apology) requires taking a month off, if perhaps there isn't a reasonable accommodation that could be made here to help Danielle be successful at Apple.

</comment></comment></comment></comment></comment></comment><comment><USER6> The time that I worked at Apple was brutally hard work. If we're talking about work environment, I think many people reading that article have no concept of how difficult a job it is, how high are the expectations, and how many hours the average engineer is putting in there.

This is a _very difficult job_ which can be extremely stressful for a long duration of time. As a society we tend to laud grueling hard work rather than recognize that it's probably the worst aspect of the work environment by far.

As far as TFA goes... it appears to be reporting on "leaked" emails telling a one-sided narrative with no attempt to validate the claims. Not to diminish the claims being made, but I think this is technically called "storytelling".

Taking it a face value though, it seems tame in comparison to other 'scandals'. I simply do not expect that people will constantly remain professional. They will need to blow off steam, and sometimes the way they do that will not be fully inclusive, or necessarily politically correct. Yes, sometimes men actually complain about their wives at work -- this is not shocking to me. I don't like that employee complaints seem to be poorly handled; all employees should be valued and listened to at least.

None of what I read in TFA I really understand to be a hostile work environment, as the term is defined. Is "toxic" supposed to be a new term to describe feeling uncomfortable or not getting the promotion you wanted? Apple's work environment is certainly extreme, but I think for reasons very much apart from gender.

<comment><USER7> Not to diminish any of the other claims but I found this one to be a bit of an eye roller -

 _Describing another incident, she wrote, "I was walking back to my cube from the break room and passed a group of managers exiting a meeting. The Area Manager told me to smile as I walked past."_ _" While this is a small thing, it was notable as this is one of the most commonly reported forms of subtle sexism."_

No matter how hard I try, I can't fathom how that could possibly be construed as sexist.

<comment><USER8> Would you ever say that to a male colleague? Would anyone?

<comment><USER9> _Would anyone?_

Yup. Back when I was dealing with depression, I heard it all the time.

"Smile" and "Cheer up" are still two of the most rage-inducing things anyone can say to me. It's just one of those things about appearance I have to roll with. I also don't get to show up barefoot, with no t-shirt and just wearing boardshorts. So I play along and part of that is acting much happier and more amenable than I really am.

The main difference is that I don't have people constantly telling me this is caused by an oppressive societal structure pushing me to conform. (I mean, it is, but it's not treated as one. I'm certainly not constantly told I need to be to rejecting. By media that makes me weaker to it, and teaches me to suffer even harder when effected by those social structures.)

<comment><USER10> > "Smile" and "Cheer up" are still two of the most rage-inducing things anyone > can say to me.

I'm not dealing with clinical depression but I can see what you mean. If I'm upset enough about something that it is visible, the last thing I want is someone telling me to "cheer up."

I guess I'm fortunate never to have worked with the kind of people (commissioned sales people? politicians? child molesters? I mean, I can't even imagine) who would notice I'm upset and tell me to "smile."

<comment><USER9> _I guess I 'm fortunate never to have worked with the kind of people [...] who would notice I'm upset and tell me to "smile."_

It's not only some demanding command to modify your mood, it can be a good natured suggestion to try and keep your chin up. The person who said it to me most was my mother.

<comment><USER10> > The person who said it to me most was my mother.

Wow. If you're curious as to why some view it as a condescending thing to say to a colleague you really could start there.

edit: I'm surprised by your reply... only because it seems incongruous with the statement I replied to. interesting.

<comment><USER9> _edit: I 'm surprised by your reply... only because it seems incongruous with the statement I replied to. interesting._

Just because people were well-intentioned didn't make it any less infuriating. I've gotten it in the "cheer up" sense and the "be more presentable" sense and the "comply with norms" sense. Not a huge difference in how it feels, non family ones are a bit easier though.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I'm risking a lot here...

Apple employee here:

I only want to provide context. None of us want a toxic environment. We, at Apple, pride ourselves on the fact that we are accepting of all backgrounds, nationalities, genders, religions. I, personally, have struggled with ensuring a diverse set of folks on my team or all backgrounds. We love the fact that we're helping to lead the industry with regard to diversity. And "Danielle's" case is unfortunate.

Danielle is of course an alias to protect the original identity. And I sincerely thank Mic for doing so. In an internal chat, someone made a reference to the "Hide Your Kids Hide Your Wife" meme about something technical. But this wasn't the intention of the sender. Danielle, a gay transgender male, explained that this was an inappropriate reference, the offender apologized immediately and said that this comment was not to make fun of rape.

Danielle in this case had a unique set of circumstances that made her especially sensitive to this kind of comment. And we should all be careful about what we say. And I completely agree with her that this kind of content has no place at Apple.

This thread was meant to be forwarded to Tim Cook, but was accidentally sent to a large internal group. This is how it was leaked.

I wish Mic would release the full emails with names redacted so that you all would see what was actually said.

The lesson here is: think about what you're saying. Sexual assault destroys humans.

<comment><USER12> > We, at Apple, pride ourselves on the fact that we are accepting of all > backgrounds, nationalities, genders, religions.

Reads like a PR boilerplate.

<comment><USER13> Right? Like no one could actually be proud to work in an inclusive environment.

</comment></comment></comment><comment><USER14> Is it just me or is this ultra-political correctness a new and intresting phenomenon? I'm really interested to watch where it's all going.

Pretty much all jokes are going to offend somebody. You can't ask people to smile, comment on thier clothes or belongings. You can't interact causally in the workplace at all.

Perhaps we'll see workplaces where all communication is in writing and on topic.

Do we want our workplaces where people gather together as friends as they work, or do we want our workplace relationships to be strictly professional?

I think I would prefer to work in a culture where, if you don't like the people you work with, you go find a new job. You don't complain, you get over it or you leave.

(Because even telling me my jokes are offensive is a form of harassment itself.)

I don't want to work in an office where I can't make friends, tell jokes, or laugh and enjoy life. Life is too short to sit in a room full of people you dont' know, don't like, or don't care about.

<comment><USER15> I spent nearly 20 years working in a Northern Irish company in which in-office discussion of politics, religion and most sport was banned, on pain of disciplinary action. On occasion people were asked to stop bringing their choice of newspaper into the office, too, as this could be construed as a subtle political signal.

After a few months one adapted to restricting the domain of conversation without much effort, and the main problem was when we had visits from overseas staff who would stray into the verboten topics. One became adept at moving the conversation to safer ground.

<comment><USER4> Politics and religion were particularly touchy in Northern Ireland, but why sport?

<comment><USER16> I'm not familiar with the situation in Ireland but in Scotland the Celtic / Rangers rivalry has a strong religious element to it.

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

</comment></comment></comment></comment><comment><USER17> Why are most of these articles about harassment in the office associated with American companies? Are women from other countries afraid to speak about this? Or are American women just overreacting?

In this specific case I understand that insinuating a rape scenario — which by the way is not against women but _" everybody"_ — in a work environment is bad, but without knowing what other toxic comments or behavior happened in the same department where this woman was working, I cannot sympathize. Knowing how sensitive are people nowadays (specially in the United States) I wouldn't be surprised if the previous comments were things like _" Man, did you see [female name]'s dress today? It's so ugly"_. They are probably worse than this, but again, without knowing the alleged previous incidents I cannot sympathize with this specific woman.

Also, why did she quit? Why not stay and fight for the rights of her other female co-workers? If what I understand from this story is correct, the other women do not report these incidents either because they are afraid of retaliation, or because they learned how to take (or ignore?) a _(very stupid)_ joke.

EDIT: On a side note, imagine if the genders were switched. If the people making the bad _" joke"_ were women, and the person reporting the incident was a man. He could have reported this to the CEO but do you think the story would have been published in this website or other? I don't think so. I am glad to have worked remotely for several years, to avoid these incidents with my co- workers.

<comment><USER18> > Why are most of these articles about harassment in the office associated > with American companies? Are women from other countries afraid to speak > about this? Or are American women just overreacting?

There's some other possibilities too, like it's worse in America than in other countries.

<comment><USER19> As someone who's spent a fair bit of time in Germany and Switzerland, lol no.

<comment><USER20> How bad is it there? Care to share?

<comment><USER21> Nothing to share on companies, but women couldn't even _vote_ everywhere in Switzerland until _1991_.

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

</comment></comment></comment></comment></comment><comment><USER22> Anonymous throwaway. I believe that more context for the rape joke is warranted.

At Apple, it's important to cover confidential materials when undisclosed persons are present. An employee wrote that this process reminded them of the viral song Bed Intruder [1]: "hide yo wife, hide yo kids."

"Danielle" objected to the joke because the song references sexual assault. The person apologized and promised to not let it happen again.

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

<comment><USER13> In that case, Rockwell's "Somebody's Watching Me" seems like a funnier joke while simultaneously avoiding the whole rape thing.

</comment></comment><comment><USER23> Problems like this can happen in any company and this includes Apple as well. Since Apple is one of the biggest Tech companies people are going to make a big deal about it.

But it is a big failure if managers/management fail to take actions. The immediate manager should be fired in this case since he or she failed to take any action or involve HR or upper management

<comment><USER24> Why does it seem like every time someone gets offended about something there are calls for people to get fired? There are other ways to address workplace conflicts than to put heads on sticks. As reported in this article, none of these incidents are grounds for termination- not even close.

<comment><USER25> I like how Atlassian handled an incident that was different, but also included calls to fire the engineer:

[http://blogs.atlassian.com/2014/06/failing-values-team- indus...](http://blogs.atlassian.com/2014/06/failing-values-team-industry/)

> I know the engineer responsible well. I hired him. I know the slide does not > reflect his values any more than it reflects Atlassian's, and he is as > deeply sorry as we are. It was an error in judgment, but one the company > shares responsibility for making.

> As Atlassian, we don't stand behind the slide – but we stand as a team. When > we do good, and when we do bad. Today, we failed as a team. We will help him > learn from this, as we all must. Our engineer, our event, our issue, our > learning, our growing – as a team.

<comment><USER26> What was wrong with that slide?

It specifically mentioned "[his] girlfriend". Although potentially cringe- worthy, there was no generalization. The contents could have been entirely factual.

</comment></comment></comment></comment><comment><USER27> Danielle doesn't seem like a person I'd like to work with.

<comment><USER28> After reading the chat transcript, I would probably quit my job if I had to work with someone like her. Mentioning a song, get accused of harassment and promoting rape culture, having coworker take medical leave for a month for PTSD? Over someone mentioning a song? Wow.

</comment></comment><comment><USER29> Reading stuff like this always feels weird to me. I'm the founder of a 30+ year company and, to my knowledge, this has never happened at my company. It's possible it happened and no one told me, but given my position, I would think it would eventually come around to me (I'm the COO now).

I have to wonder if behavior like this follows from bad leadership. I'm not saying Tim Cook, given the case of Apple, but middle managers. I just cannot believe that a person above the woman in TFA didn't know about this, and just let it ride, because it was just "boys being boys" or some BS like that.

I can tell you if I ever saw or heard of anyone doing this in my company, I would crack down very quick and hard. But more than that, I think the people we have lead by example and I just can't believe anyone would ever do something like TFA outlines.

<comment><USER30> The actual transcript of the discussion that "Danielle" objected to has been posted in this thread:

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

I'd be interested to understand your take on this situation. Does it really warrant more than the apology that was already provided? It sure seems to me from the transcript that "Danielle" was going out of her way to find offense. ("Danielle" since not her real name)

<comment><USER29> I agree. From the TFA it seemed like it would be way worse than that. To me, that doesn't rise to the level of creating a hostile work environment.

One thing we don't know about Person4: what led up to this? Was it the last straw? Was it the first incident (she alleges it's not in the transcript, but who knows)?

</comment></comment></comment><comment><USER31> Telling someone to smile feels closer to trying to cheer them up than any harassment.

<comment><USER18> Don't ever do this to a woman. It's not going to cheer them up. They've been putting up with that crap their whole lives, and all you accomplish by telling them that is to add to the load of crap.

<comment><USER32> Don't do it to a guy either. I've put up with this crap and frankly you are just another brick in the wall.

People often have resting faces that look unhappy.

</comment></comment></comment><comment><USER33> > Fed up, the woman quit her job at Apple, trading her position at one of the > world's most iconic companies in favor of a job riding a bicycle.

At least it has a happy ending.

</comment><comment><USER34> It's like the penny-arcade d __kwolf joke over again. Or the spiderwoman crawling pose.

From the article feels like they were joking about everyone getting raped, including men.

Anyway, rape is a serious crime, no doubt about that and the joke might have crossed a line.

But were do we draw a line by getting offended or not? These lines are pushed further out every time and sometimes limiting freedoms.

Also, men can be sexist, that's true, but we are still in a position where women have an advantage, a powerful tool to call out someone being sexist and inconsiderate and get that said person into trouble and brand him so his future prospects are completely destroyed.

Is being offended about a joke enough to cripple someones future and life?

Looks like men always have to be extra careful about what they say and what they do. I wonder when this whole gender gap won't spill over to become from a male dominant society to a female dominant one.

It's hard to find equal grounds apparently.

<comment><USER5> Rape jokes should not be told at work, period.

<comment><USER34> Rape goes both ways. Men and women can get raped. Someone telling rape jokes can be disgusting and inappropriate, but it will stay as a joke.

Agree, a workplace is not a good place to tell these. In fact there might not be a good place for it.

Also, if we go further down the rabbit hole and say that rape jokes promote rape, then we can start saying that video games promote violence, etc...

My concern is to have someone getting fired or prosecuted for a joke. Getting his career broken because of a stupid joke.

You can feel disgusted or even violated, but with the counter actions you can do more damage to the other person compared to the one you received.

<comment><USER35> If you don't want to get fired for making a rape joke at work, there's a pretty easy solution to that. (Spoiler: it's "don't make a rape joke at work.")

<comment><USER34> Ah, now you ruined it for me. I was just in the middle of telling one to everyone.

</comment></comment></comment></comment></comment><comment><USER36> "The running joke is Foxconn has nothing on Apple."

Because joking about modern day slavery is so much better! _Especially_ when they're your slaves.

<comment><USER37> You'd be surprised what people are willing to put up with, even when they're not literal slaves. Ben Farrell was just the tip of the iceberg. AAPL is just AMZN with better press and intra-organizational warfare that puts Ballmer-era MSFT to shame.

<comment><USER38> Doesn't this sort of stuff happen at every big company? Or is Apple in a different league?

</comment></comment></comment><comment><USER39> > theoretical foundations of design patterns

There are theoretical foundations of design patterns?

<comment><USER6> Well, yes, of course there are. A design pattern you just pulled out of your ass wouldn't make for much of a pattern.

So, that form of expression I just used, I'm just wondering if that one is still allowed? It seems pretty colloquial, but these things do change over time.

</comment></comment><comment><USER40> >>> "But this rape joke was the final straw: The next day, Danielle escalated her complaint about the offense to the very top: Apple CEO Tim Cook."

That isn't the route. In such a large organization, even a very very good and proper one, such issues are not to be accelerated to the CEO. If you have thousands, tens of thousands of employees, then complaints like this will and should be a daily issue (not always a rape joke, but similarly serious complaints). That's why you have HR and legal departments.

And the next day? Workplace complaints take days or weeks to evaluate. Do not ever expect answers on the order of a day. In a really horrific situation you can ask your immediate supervisors for help, such as by transferring the alleged offenders elsewhere temporary, but do not ever expect heads to roll by next business day. The more serious the complaint, the more time one must expect before action is taken.

<comment><USER41> What? If you have a grievance HR or legal is the last place you should turn to as an employee. No matter what your position is it basically starts the process of getting yourself fired.

<comment><USER42> HR's primary mission is to protect the company from its employees.

<comment><USER24> No- HR's goal is to protect the company's best interests. Sometimes this coincides with an employee's own best interests, and sometimes this goes against it.

</comment></comment></comment></comment><comment><USER43> If someone, of either gender, whom I was hiring as a designer, went into "advanced learning theory and the use of metaphor and semiotics along with the theoretical foundations of design patterns," my response would be to consider them non-technical and not hire them.

And "technical," for a designer, means CSS, JavaScript, HTML, and similar.

Most of the examples in the article seemed baked.

</comment><comment><USER44> I know three ex-Apple employees, they all describe it as akin to the film Office Space.

My theory is that the whole point of the new UFO campus is to jolt the working environment out of the 1980's. Sort of like replacing, rather than updating, the Mac Classic OS, in a way.

[am I getting downvoted for knowing people who worked at Apple, or for having a theory?]

</comment><comment><USER13> It's almost hard to read the comments on here.

"It's a stressful environment---people have to blow off steam."

"Is X comment really that offensive?"

"Joking around is important to office culture."

"The real damage is punishing people who said the offensive thing when he/she didn't mean anything by it."

It's really not that complicated. Act professionally at work. Working at a job isn't easy, but part of the responsibility of work is to _act_ professionally, and delivering genius code doesn't give anyone a pass to act unprofessionally. When you feel an impulse to talk or joke about physical appearance, politics, religion, sex, gender, rape, racial issues, nationality/ethnicity, etc., just hold your tongue! Or write it in a little book and save it for when you're at the bar with friends. If you do say something, and inevitably get that little "I shouldn't have said that" prickle in the back of your brain---simply immediately apologize and move on! If you don't get that prickle, and a co- worker or manager says something, just take it at face value that what you said was not professional, because professional actions never raise the possibility of personal offense. That is the bare minimum you are required to do.

If you're a little more social justice oriented, you might even become aware of the ways women and minorities are treated unfairly, and take special actions to fix this. Take notice the next time you're in YAAMM -- "yet another all male meeting" \-- and think about whether there are any women who could contribute but were not invited. If you hear a good idea, give credit to the originator when you repeat it. It's actually not that hard.

<comment><USER9> _When you feel an impulse to talk or joke about physical appearance, politics, religion, sex, gender, rape, racial issues, nationality /ethnicity, etc., just hold your tongue!_

Going to such extremes to guarantee never offending anyone is a great way to wind up unhappy and alone at work. It's fine if that's what you want - when I don't like talking to my coworkers in the first place I happily implement that strategy.

Chances are that anyone using that strategy and isn't also miserable has a fair number of unspoken assumptions about acceptable behavior, and isn't actually using that strategy. They're just slightly more guarded than in their normal behavior.

<comment><USER13> Don't see how it's going to extremes. I sit at a table with 6 others and manage a team of 8, have followed this for years and enjoy constant conversations and have good relationships with all my co-workers. Maybe I just have a richer personal life than others, and have plenty of other things to talk about?

<comment><USER34> OK, sorry but this part...

This was such a self-promoting bs.

Richer life then others? You can't be serious! This is literally offensive to others. You just contradicted yourself right here.

Good job!

<comment><USER45> As crazy as it sounds, yes, it's possible to have positive interactions in professional settings without making jokes about people's race/religion/gender/appearance/etc. That's not being PC, that's literally just being a grown-up.

<comment><USER34> Oh god, being a grownup. Yeah because grownups are immaculate. They never do or say anything stupid.

If this were true we would live in a perfect world and we couldn't make any rape jokes, because rape as a crime wouldn't exist in the first place.

From the article, who was the grown-up? The guy making a mistake by telling the rape joke and apologizing afterwords, or the lady who literally had a rage fit about the whole situation and ran directly to Tim Cook and because she didn't got her way left the company?

So tell me then? Who was the grownup?

And the comment I replied to?

@daughart bragging about having a richer life and acting with a 'holier than thou' attitude? Literally being offensive! And lecturing us about how not to be offensive in an office environment?

Really? I bet this is a fun person on parties. Also I would love to talk to that team of 8. Just asking them how fun it is to work together with a person like this.

</comment></comment></comment></comment></comment></comment><comment><USER46> This stuff happens at almost every tech company. Seems like they're focusing on Apple to draw pageviews.

<comment><USER47> Can you really blame them? The article is a net positive for the industry, and Mic has covered sexism issues at plenty of companies less prestigious than Apple.

In any case, I feel that there's little to be gained by questioning their intentions.

</comment></comment><comment><USER48> Seems very likely to be true, since it is part of the wider culture.

<comment><USER36> I highly doubt people are frequently being promoted on the basis of gender at Apple. Whoever was quoted as saying they were didn't really provide any evidence other than people being selected directly for the job without it being opened for applications were men, and then used a bunch of buzzwords to make it sound more dramatic than that.

</comment></comment><comment><USER49> Rape jokes certainly are not appropriate and should not be so common, but that language is toxic? Side note: women are always wanting to be more "equal" with men. Maybe they were talking about it so much as a twisted way to include her.</comment>


My Bootstrapped startup webapp would like beta testers and feedback - <AUTHOR>

My first attempt at a startup could use some beta testers - http://padseeker.com/accounts/new<p>Would love feedback from fellow hacker news members. Long story short padseeker is like weebly for real estate. It's mainly residential rental properties. It still needs work but I would love to hear from fellow developers what you think. Please make the feedback honest, and if necessary brutal. <comment><USER2> It could use design work. Pay a student at the local university or college because even their basic work will help out the landing page you linked me to. It looks kinda fly-by-night right now. I'd even prefer the Twitter Bootstrap over it. :-/

<comment><USER3> Agreed. I'm going to be blunt, with a site looking like this, most people won't bother creating an account. Just use bootstrap if you're out of money. Heck, I didnt sign up because of this!

<comment><AUTHOR> fair enough - it aint pretty. I need to refine the signup page too.

</comment></comment></comment><comment><AUTHOR> That's fair, I would agree - the landing page is lacking. I did use Bootstrap for the dashboard, but I've neglected the landing page. I may have to consider that.

I noticed you picked some of the earlier templates I developed, I either need to improve them or push them out. I really do appreciate the feedback. Thanks for giving it a shot, I will definitely work on the landing page.

</comment><comment><USER4> Yeah fix up the look first; grab a template somewhere and modify it from there.

</comment><comment><USER5> A short blurb explaining what the website does wouldn't hurt.

<comment><USER5> Also - upon sign up why not just log the user in and take them to the dashboard instead of requiring them to log in again.

Seems pretty straightforward and I was able to figure it out easily - you sign up, set up buildings, add units, publish a site, and then voila people come to your site and search, request building units for rent or lease or whatever.

However I suspect your average building landlord or property manager might have a harder time figuring it out. Lots of tabs, lots of fields to fill out, and the navigation is a bit clunky.

In summary - I got the crux of the service and it seems pretty solid for an MVP. The design and ux need a lot of work and your landing page should do a better job of summarizing what the web site does.

Cheers

<comment><AUTHOR> thank you so much, the is the best quality feedback yet. Yeah, its solid for an MVP. The design needs work.

I'm glad you found it straightforward - that is the most important thing. I agree that the average landlord will have a few issues. It needs lots more help icons/popovers (via bootstrap). Also it makes sense to hide some of the tabs until a user has data in there. The tabs are clunky, something I may be able to improve using bootstrap.

The biggest consensus is the landing page sucks. Not that I am hearing it I would agree - but I think it was a blind spot since I've focused on the code and functionality for so long. I have my list of priorities now, and improving the landing page is now #1.

</comment></comment></comment><comment><USER6> the logo is really bad. better to just write in a normal font than to do this.

<comment><AUTHOR> ouch

</comment></comment><comment><USER7> Download a template from Themeforest and use that instead of what you have now. Also, you need to describe what is the website about. Add some Header text.

<comment><AUTHOR> Are you referring to the landing page or the site templates?

The landing page might work, but for site templates that could be a potential issue even if I pay for a theme. The concern I am selling something, as the prices for themes go up when you resell someone else's work.</comment></comment>


Tarsnap outage post-mortem - <AUTHOR> http://www.daemonology.net/blog/2012-07-04-tarsnap-outage.html <comment><USER2> Acunote is a customer of tarsnap and so am I personally. The professionalism and transparency that you can see in this RFO are a big reason why I use it and recommend it. The quality of the product/solution is the bigger reason.

What's not mentioned is that throughout the outage the customers were getting timely emails from Colin letting us know what's going on. We didn't have to go to a blog, twitter, facebook or some other ungodly place to find out what's happening. This is how it should be done.

<comment><USER3> The source code is very nice too. For people who want to see an example of simple, high quality C source code, I highly recommend reading Tarsnap. It's small too, so it's very easy to get all the way through it.

<comment><AUTHOR> ... and if you find anything wrong in the source code, you can win bug bounties too!

</comment></comment></comment><comment><USER3> My power just came back on today. Amazing levels of damage from the storm here in Virginia. Some homes are expected to be without power for another week or more. To add to that, every day the temps are in the mid 90s with 50% humidity. It's been miserable but a good learning experience. I need to build an outdoor camp shower and a latrine. Believe it or not, having those would have been a great luxury.

<comment><USER4> The following kits might be of interest to you. Scale to as many people/days as you are interested in. (Be careful, though, campingsurvival.com can be _very_ addictive)

<http://campingsurvival.com/porcamtoil.html>, <http://campingsurvival.com/redodopl.html>, <http://campingsurvival.com/hottaptrsh6.html>

<comment><USER3> Thanks for those links. I have the luggable loo thingy that fits a 5-gallon bucket and the doodie bags. I just need a place where they can be used outside privately and during bad weather. I rigged another 5 gallon bucket with a spigot and a water hose for a quick shower. That worked OK for the most part, still needs more privacy though.

<comment><USER5> I feel like I'm missing something. Why is a portable shower preferable to a cold shower in the bathroom?

 _edit_ (since I can't reply below) I didn't realize portable showers were commonly heated, and didn't think about the possibility of gas-powered heating. That makes sense.

<comment><USER4> Admittedly, in 100+ degree weather, a cold shower is pretty darn nice. But in the morning, when you just want to get clean (at least for me - maybe this is a personal preference) nothing beats a hot shower + soap + shampoo.

When camping, I usually bring a Solar Shower (<http://campingsurvival.com/casoshbag.html>) - left out in direct sun for a couple hours, that things gets _hot_.

The advantage of the gas powered shower, of course, is that you can use a lot more water than you can fit in a solar shower bag. The _downside_ of those gas showers (I have a coleman one) is the zillion warnings telling you not to use them indoors. Maybe if you had really good ventilation (or could run the water hose from the outside?) then you could use your internal shower stall + Hot water from outside?

This is where all the people who have Solar Powered Hot water heaters must be chuckling - though, in a broad power outage, I don't know if they have pressurized water in all locations right away. And definitely not always water that you can trust without boiling.

That's the other thing that almost _no_ people are prepared for - Day 3+ without water for hygiene (A lot of people have their emergency drinking supplies, but never even think about what they would do if they can't flush/shower - things get grim pretty quickly)

</comment></comment></comment></comment></comment><comment><USER6> I love reading about Tarsnap. This is the sort of post that exemplifies someone who has a deep knowledge of his craft, a responsibility to his customers, and probably most noteworthy, a measured perspective and appreciation for life outside of just the business and web service he runs.

</comment><comment><USER7> _For many of us, a datacenter losing power is the only effect we will see from this storm. For most of the people who were directly affected by the storm, it's the least of their worries._

Very well put. Good to put things in perspective.

</comment><comment><USER8> One thing that sticks out for me about the post-mortem is that Tarsnap is heavily relient on Colin being able to diagnose and fix problems with the product. He is a single point of failure for the entire system. If anything were to happen to him it seems like any data stored in Tarsnap could easily be lost forever.

<comment><USER9> That's probably true of a large number of services people rely upon, but those services hide the fact by using the royal "we" and oblique references to the "team" in their announcements and press releases.

<comment><USER10> Maybe, but a well run team should have a "this is what you need to do if I get hit by a bus" document that is actually the "this is what you need to do when I get a better job" document.

</comment></comment></comment><comment><USER11> Tarsnap is a _great_ product, but I worry that I'm not paying you enough money for it. It's super cheap for what we get from it. The very last thing I want is for you not to be making enough from the business to warrant putting in the kind of effort and energy that you do, and to then have the service go away. If the current pricing structure achieves that, then brilliant, but if it doesn't, please raise your prices and keep kicking goals.

<comment><AUTHOR> Don't worry, Tarsnap isn't going anywhere.

</comment></comment><comment><USER12> What design improvements are you considering to make this go faster, should it be necessary again?

<comment><AUTHOR> The first step is simply to merge my temporary-hack fixes (e.g., removing the I/O rate limiting during recovery operations) into the main Tarsnap server codebase. I lost about 3 hours to those.

The second step is to change the order of S3 GETs and adjust the parallelization of those; I think I can easily cut that from the ~20 hours it took down to ~5 hours.

The third step is to parallelize the third (replaying of log entries on a machine-specific basis) stage; that should cut from ~10 hours down to ~1 hour given a sufficiently hefty EC2 instance.

After that it's a question of profiling and experimenting. I'm sure the second stage can be sped up considerably, but I don't know exactly where the bottleneck is right now. I know the first stage can be sped up by pre- emptively "rebundling" the metadata from each S3 object so that I need fewer S3 GETs, but I'm not sure if that's necessarily the best option.

In the longer term, I'm reworking the entire back-end metadata store, so some of the above won't be relevant any more.

<comment><USER13> Will those changes also finally speed up client restores? The extremely slow restores are one of those things that remain terrifying as a customer.

We've had to consider moving to a different backup system for disaster recovery. Tarsnap covers the cases of fat-fingering and versioned backups nicely, but not disaster recovery of large-ish data sets.

<comment><USER14> The simplest mitigation to this is to store your primary systems in a different location to your backup. This way the likelihood of both your primaries and your backups becoming unavailable at the same time are significantly reduced.

<comment><USER13> I don't see how that mitigates the issue at all. The case I'm talking about is when your primaries totally bite the dust. It's obvious that a backup system shouldn't be in the same physical location as the primary system.

The issue I'm referring to isn't about lack of availability of tarsnap's backups, it's that it's very slow to restore backups if you need to do a complete restore (rather than just grab a few accidentally trashed files).

</comment></comment></comment></comment></comment><comment><USER15> Thank you.

That's a nice post-portem and reinforces my trust in tarsnap.

<comment><USER16> This post makes me want to do business with them. :-)

</comment></comment><comment><USER17> Here file system corruption is mentioned and I read the amazon posts on the issue mentioning that they let customers check EBS disks for potential corruption in a read only state (I think it was).

Is there some kind of guide to this process? I feel like I am underprepared if my EC2 instances get hit by a similar failure.

</comment><comment><USER18> Great description and I have to say I really liked the broader context of the outage. The severity of the storm was something I had been curious about but hadn't looked up myself yet, and so I appreciated the extra education!

</comment><comment><USER19> I have a cron job that emails me the results of nightly tarsnap runs. I noticed two failures, the first and only time tarsnap has ever failed for me.

And I was OK with it -- I knew Colin would be working to bring it up as soon as possible. I further knew that the envelope for minimal downtime was determined by Amazon, who were also working to repair matters as soon as possible.

Natural disasters happen. Somewhere in the world there is always an unprecedented disaster going on. Living with it is part of life in a strictly uncontrollable, unpredictable universe.

</comment><comment><USER20> Somewhat offtopic:

> off-site backups (which Amazon S3 counts as, since it's replicated to > multiple datacenters)

I'm not sure if I read that right, but isn't that like saying RAID counts as backup since it's replicated multiple times? What happens if data (on S3) is corrupted as a result of a logical error?

<comment><USER21> The idea is not consitency but availability when it comes to an off-site backup. (Yes, it _should_ be consitent in-and-of being a back-up, but the point of off-site is so that you have access to it in the event your main server area is gone.)

</comment></comment><comment><USER22> I really admire how well written this outage report is, and how transparent the whole process is. +1

</comment><comment><USER23> "...after which Amazon wrote in a post-mortem that "We have also completed an audit of all our back-up power distribution circuits""

Not saying this was unpreventable, but there is a tone of disingenuous doublethink in the Amazon status's recently. Fail-proof is failing.

<comment><USER19> My old man has been working in radio and electronics for decades. We discussed the Amazon outage and when I told him two generators had failed, he smiled grimly and muttered "Murphy's Law".

No matter how much you test, you simply cannot _know_ how a system will behave in a critical state until that state is reached.

The other thing too here is availability bias. We see the outages, but we don't hear about the near-outages. We're not seeing a true baseline for the occasions where the system behaved resiliently according to its design.

<comment><USER24> "How complex systems fail" by Dr. Richard Cook makes exactly this point – all complex systems are, by definition, running in a degraded mode, with catastrophe just around the corner. They are keep up through a series of gambles – and you never hear about the good ones.

Interesting it is written by a doctor about medical environments, but works for any complex system.

The essay is reproduced in _Web Operations_ by John Allspaw and Jesse Robbins with a web ops spin on it, and is also available online at [http://www.ctlab.org/documents/How%20Complex%20Systems%20Fai...](http://www.ctlab.org/documents/How%20Complex%20Systems%20Fail.pdf)

<comment><USER25> Point 7 is a new idea to me: "Post-accident attribution accident to a 'root cause' is fundamentally wrong."

<comment><USER19> I disagree with that nostrum -- I wrote about it in nauseating detail here: <http://chester.id.au/2012/04/09/review-drift-into-failure/>

</comment></comment></comment></comment></comment><comment><USER26> Why put all your eggs in one basket? Seems mighty strange to have everything hosted with one company, without a backup. Especially for a backup company.

<comment><USER27> That's one way to view it, but realistically the typical Tarsnap client has _not_ put all his/her eggs in one basket.

</comment></comment><comment><USER28> Great work going on at tarsnap. I've known about it for a while; should start using it.</comment>


Software engineering manager interview questions - <AUTHOR>

software engineering manager interview questions - any suggestions <comment><USER2> You might want to post this as an Ask HN: story, and provide some more info on what you're looking after, to get useful responses.

</comment><comment><USER3> Agree with ricardobeat, but if I am a manager myself, I imagine I would ask for a question like have you ever made any software? Open-source or commercial. Or any experience in developing any open software.</comment>


Speed up Xcode debugging by using sounds - <AUTHOR> http://qnoid.com/2013/06/08/Sound-Debugging.html

<comment><USER2> I like the idea—assign sounds to breakpoints, and use this to understand how the code works while it's running. Too bad it seems to be Xcode-only.</comment>


VirtualMIDISynth - <AUTHOR> http://coolsoft.altervista.org/en/virtualmidisynth <comment><USER3> A really good version of this for Mac is: [http://notahat.com/simplesynth/](http://notahat.com/simplesynth/)

And if anyone's interested in diving into MIDI, I took this class at CMU and it was incredible, all the slides and material are available online here: [https://www.cs.cmu.edu/~music/cmsip/resources.html](https://www.cs.cmu.edu/~music/cmsip/resources.html)

<comment><USER4> That course is exactly what I have been looking for. It's too bad they don't have video lectures available.

<comment><USER3> They definitely filmed at least some of the lectures, and they're worth watching since the prof is fantastic (he made Audacity). Unfortunately I don't have my CMU email anymore so I don't think I can access them.

</comment></comment></comment><comment><USER5> On a Mac it's probably easier to just use GarageBand. Same for iPhones.

<comment><USER6> Isn't GarageBand a sort of DAW for creating music? That would be way overkill to just be able to play a .midi file, no? Also, I'm sure if you just want to remap some midi devices, you would prefer a 1.2 MB tool that does that, rather than an entire creation suite of tools... Unless you have a need for the rest of it!

<comment><USER7> Yes, but GarageBand actually has a host of synth sounds that don't sound like hot garbage - (in fact, they're bloody impressive) - I think this was a bit of the author's point.

Another point, however, is the software synth's filesize - and indeed, GarageBand or Logic's full instrument library can range from 5-90GB.

(Yes, you read that range right - depending on your choice of installation optionals, including loops and the recently-included 'Alchemy' library, you could be looking at 80GB).

<comment><USER8> The backing track to one of Lady Gaga's hits was a sample track from Garageband.

There's a video of her sitting on the floor in a million-dollar studio - <USER2> just Garageband on her Mac.

<comment><USER7> I did the same thing on my upcoming mixtape, except I'm using Logic. ¯\\_(ツ)_/¯

They're royalty-free for a reason.</comment></comment></comment></comment></comment>


Unladen Swallow Retrospective - <AUTHOR> http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html <comment><USER2> Somewhat relevant to the topic - Mike Pall discusses (2009) the usage of llvm for lua - he's not ditching the approach, just pointing out the difficulties, and why he took on making luajit the way it is:

<http://lua-users.org/lists/lua-l/2009-06/msg00071.html>

<comment><USER3> A big one Mike misses (because it isn't as critical for Lua AFAIK) is escape analysis. For PyPy our aggressive escape analysis can bring huge wins on things like numeric code and some types of string processing, but no static compilers really do this type of optimization, because it's not very important in C-type languages.

<comment><USER4> Out of curiosity what makes this such a big win for Python, but not so much for Lua or C-type languages?

<comment><USER3> I honestly don't know why it's not such a big deal for Lua, but given LuaJIT's performance, and knowing that it doesn't do escape analysis I know it must not be a big deal :) In Python it's a big deal because everything is boxed, and your inner loops just get bogged down with allocations, which are expensive compared to arithmetic operations.

<comment><USER5> LuaJIT being a trace compiler, escape analysis in implicit. As long as a value stays (say) int or float, the code to handle it stays int or float. If for whatever reason it switches type, the code will change to accommodate that -- but as long as the types (and/or values) stay the same, the machine code to handle them will take advantage of that.

<comment><USER3> It's absolutely not true that escape analysis is implicit in tracing: [https://bitbucket.org/pypy/extradoc/raw/63e4617062b2/talk/pe...](https://bitbucket.org/pypy/extradoc/raw/63e4617062b2/talk/pepm2011/bolz- allocation-removal.pdf)

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> See also Collin's comment on the post: [http://qinsb.blogspot.com/2011/03/unladen-swallow- retrospect...](http://qinsb.blogspot.com/2011/03/unladen-swallow- retrospective.html?showComment=1301186609242#c5054925394205960815)

</comment><comment><USER6> The points about LLVM being designed for "static C-like languages" isn't totally on-point. There as an impedance mismatch between Python and LLVM, but it's less about dynamic versus static than it is about the nature of the stack frame.

In LLVM, most optimizations operate on SSA values (the Value class in the LLVM IR). There is some support for CSE-ing loads, etc, but the effectiveness of that depends heavily on your alias information. So to get good optimization out of LLVM, you've got to represent things as Value's.

This is hard to do in Python. Python's lexical scoping semantics are a little bit wonky and there are lots of scenarios in which the thread's stack frame is reified as an object. So without some heavy analysis, you end up keeping your local variables in an activation frame object on the heap, and at that point you're toast. The local variables themselves won't be represented as SSA Value's, and most of the LLVM optimizations won't do anything with them.

This is not a "dynamic language" thing per se. Lisp, which is also a dynamic language, actually maps quite cleanly to LLVM. Every binding introduced by LET is already in SSA form unless it is either closed-over, assigned-to, or both.

1) If the value is just closed-over, you demote it to the function's environment and replace uses of the variable with a load from the environment vector.

2) If the value is just assigned-to, you just demote it to a stack slot via ALLOCA and LLVM's mem2reg pass will take care of re-promoting it to a Value. This latter technique is exactly what Clang does for all C local variables, so LLVM is highly-tuned for handling this scenario. In C, variables that have their address taken cannot be promoted, but this cannot happen in Lisp so every assigned-to value demoted to an ALLOCA should be promotable.

3) If a value is both assigned-to and closed over, you demote it to a heap- allocated box and replace all uses with heap references.

After this transformation, nearly every Lisp variable is an SSA Value, and the optimizers can work with them. Even if you use function calls to do generic arithmetic, etc, LLVM will happily CSE them for you as long as you mark those functions as readnone (ie: pure).

Now, there are some things LLVM won't do for you. It can't const-propagate generic arithmetic because it does't know the semantics. It can't do reassociation, etc, because you're not using the ADD/SUB, etc instructions. I don't see anything that would prevent you from doing it yourself in a custom pass, however.

In short, the criticism isn't so much that LLVM has an impedance mismatch with dynamic languages as it is that it only handles the bottom of the optimization stack. You still need to do the high-level language-specific optimizations before handing things to LLVM.

<comment><USER7> I think the deeper problem is not that stuff like arithmetic is done by function calls, but that it is done by method calls. This requires points-to- analysis and a lowering to function calls first. Since this analysis will be very conservative for performance reasons, you want to steal more tricks. Tracing seems to be en vogue today.

<comment><USER6> Global type inference (which is what you'd be doing if you used a points-to analysis to figure out what methods would be called) is a fragile optimization.

Runtime type feedback (observing the actual type at call sites and doing optimistic compilation based on that) is more robust and predictable (your points-to analysis doesn't suddenly fail just because there is a single polymorphic use somewhere in the code). That in itself is orthogonal to tracing. Runtime type feedback was developed on whole-method compilers, after all. Tracing is neat, and it's in vogue because it gets you to a "good" optimizer with relatively little development cost, but you can do all the things tracing does in a whole-method compiler with more engineering work. On- stack replacement (necessary for doing optimistic compilation) is arguably easier in a tracing compiler, and is definitely the major thing missing in LLVM for dynamic language implementations.

But all of this is one step beyond the threshold problem. Even all these tricks don't help you if you can't reify your local variables as SSA values --- all that fancy LLVM machinery won't see anything to optimize.

</comment></comment></comment><comment><USER8> The blog post touched on it briefly with regards to PyPy but I wanted to ask here since I'm sure someone knows a lot more than I do on this. I didn't follow unladen swallow very closely, but it seemed like an exciting project from the get-go. Its sad to see it go, but it appears its not in vain.

I want to ask: What lasting effects did the work that went into Unladen Swallow have on any Python implementations (or any other languages)? What "legacy" was left?

<comment><USER3> The primary legacy of Unladen Swallow (this was something that everyone agreed on at the VM summit at PyCon) were: a) improvements to LLVM for all users of its JIT, things like valgrind and GDB integration, lifting that 16 MB of machine code, and fixing various bugs, b) developing a cohesive set of benchmarks for the Python community, and c) drawing more attention to the idea of a fast Python.

<comment><USER9> B is especially important for python people - it is my understanding that a lot of pypy current benchmarks are coming from unladen swallow.

</comment></comment></comment><comment><USER10> > Our potential customers eventually found other ways of solving their > performance problems that they felt more comfortable deploying.

Just curious, what are the "other ways"?

</comment><comment><USER11> _"Most Python code at Google isn't performance critical."_

What about AppEngine? The primary 'cloud' platform at Google.

<comment><USER12> You would think that such a product would in fact be an excellent candidate for high performance but I believe that group strives more toward process scalability than any particular low level optimization.

</comment></comment><comment><USER13> "Our potential customers [within Google] eventually found other ways of solving their performance problems that they felt more comfortable deploying."

I wonder how much this includes teams within Google that have since started using Go for writing performance sensitive applications...

<comment><AUTHOR> Not very many, as far as I've been told.

</comment></comment><comment><USER14> Are we talking about an african or european swallow?

<comment><USER15> It's definitely unfair to mod this down. It's a very pertinent question when Python is discussed.

<comment><USER15> sigh... There was a time most HNers would get the joke.</comment></comment></comment>


Ask HN: how can I learn about real-world software/system design? - <AUTHOR>

I've been coding professionally for a few years now, with solo responsibility for quite a bit of code. As the systems I work on have gotten bigger, I've realized how lacking my skillset is. I have a CS degree, but never had any formal practical software engineering training. I don't really have any sort of mentor here, so I've mostly just figured stuff out on my own. the problem is, I'm sure I'm missing quite a bit.
for example, I routinely find myself wondering how to design something, jumping from idea to idea until I accept that I really don't know and just pick the path of least resistance. other things that regularly come up are database scheme issues, how to properly set up a test environment, proper logging/error handling practices, writing fault-tolerant network code, and more. things I never saw in coursework. I can bang out code for sure, but I know I can do better.
I've tried looking at a couple books (code complete, design patterns) but couldn't get much from them. I've tried looking at open source code, but that's missing the back-and-forth dialogue I'm looking for. assuming I don't have access to any experienced developers, what can I do at this point, save for posting non-stop questions to stack overflow? <comment><USER2> Hi,

I think this is a hard one without working on a big project with senior people. I struggled with this for years and still do but have gotten a little better thanks to senior developers guiding me. I think besides reading books and attending lectures or listening in on talks online, I think you need to find a problem sizable enough and build it from scratch. My work with senior guys has shown me that designing on paper and the white board is essential to tackling the problem for understanding and eventually building it. The patterns will reveal themselves as you go through this exercise if any patterns are needed at all, and I think this is something you definitely will not learn overnight but overtime by getting your hands dirty. If you have not visited this site infoq.com, please do so. It has tons of experts speaking on it. I have been able to incorporate some of what I have learned from here to the job. A quick link to how YouTube was built: [http://www.youtube.com/watch?v=ZW5_eEKEC28&feature=youtu...](http://www.youtube.com/watch?v=ZW5_eEKEC28&feature=youtube_gdata_player)

Really good talk with lots of jewels. Another good book for you: [http://www.amazon.com/Scalable-Internet-Architectures- Theo-S...](http://www.amazon.com/Scalable-Internet-Architectures-Theo- Schlossnagle/dp/067232699X/ref=sr_1_1?ie=UTF8&qid=1294329526&sr=8-1)

Hope this helps.

</comment><comment><USER3> I advise you to check out a couple of frameworks if you have doubts about software architecture. I'm a fan of PureMVC because it's language agnostic, has an active community and has plenty of tutorials with good documentation.

</comment><comment><USER4> Personally, I've learned a lot by attending user groups and conferences. There is no substitute for hands-on learning but interacting with people who have the skills that you're looking for is as close as you can get.</comment>


Dropbox Files Confidentially for U.S. IPO - <AUTHOR> https://www.bloomberg.com/news/articles/2018-01-11/dropbox-is-said-to-file-confidentially-for-initial-offering <comment><USER2> Congratulations to the team and of course YCombinator!!

3 things I'm looking forward to knowing.

1) What is their profitability? I think they might surprise some people here, like Google did when they were private, hiding just how much money they are making.

It will be nice to see a cash flow positive tech company going public!!

2) What sort of share structure they are looking for. I think after SNAP its going to be a tough sell to get away with no voting control,

3) Can they go public at a valuation larger than the rumored $10+ billion they were valued at without resorting to cheap tricks like only floating 5% ala Groupon.

As a side note, it looks like JP Morgan and Goldman Sachs decision 4-5 years ago to start offering more services to private companies is starting to pay dividends

<comment><USER3> From TFA:

 _Unlike money-losing Snap, Dropbox will come to the table with annualized sales of more than $1 billion, Chief Executive Officer Drew Houston said in an interview last year. It's also been profitable, excluding interest, taxes, depreciation and amortization. Those benchmarks are the product of more than two years of focusing the company, expanding its product suite for businesses and reining in expenses, Houston said at the time._

<comment><USER4> Doesn't "profitable, excluding interest, taxes .." mean not profitable?

<comment><USER5> Not necessarily. Excluding interest, taxes, depreciation and amortization (EBITDA) is a common financial metric. It can demonstrate a business model is working, before taking in to account capital structure or other semi-external factors.

<comment><USER4> This is a ten year old billion dollar company. How can they not have figured out a viable business model?

<comment><USER6> Amazon was a 20 year old company before it was reliably profitable by accounting metrics. Is their business model viable? That's how a growth company works.

<comment><USER7> > _Amazon was a 20 year old company before it was reliably profitable_

Amazon's decision was quite obviously a choice. Snap and Twitter are more natural comparisons for Dropbox if it's still unprofitable.

<comment><USER8> I don't think that's true. Snap's and Twitter's consumer-facing product is free, while Dropbox charges for theirs.

They played the long game here. I'm still not a paying customer after almost ten years (partially because I got a lot of free space via referrals and trying out their apps). But if I ever max it out and decide to start paying someone for space, it'll be them unless there's something out there that does what they do at a price that's low enough to make the effort to switch worthwhile.

And, more notably, the freemium model means that they're able to invade the business world in the same way that the iPhone did with BYOD. And there's a lot more money there.

I'd be stunned if Dropbox wasn't very successful already, and I'm happy that someone outside of the Big 5 is doing what Dropbox is doing. It's a fantastic and indispensable product for me.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Dropbox Team: Congrats on this great milestone! I think I was one of your first users back in the day, and your product has transformed my life - it's been the single greatest productivity tool I've used in the past 10 years!

I know some people will scoff at that, and there is always the "yeah but google drive/box/oneDrive is better", but you guys did it first and still do it best! I've been a Pro member for a long while now and I'll be with you guys until the end - good luck and I'm excited to see what the future holds.

</comment><comment><USER10> I recently did a purge of nearly all my software subscriptions and Dropbox was among the few that survived. Say what you want about storage being a commodity, I think they have built an outstanding service that continues to deliver a huge value to their users. I hope the employees see a nice windfall.

<comment><USER11> There are plenty of options out there for file storage services with decent phone client and being able to easily share file with non-techie friends and family. There are also plenty of file storage services that have clients for the desktop and command line Linux. But Drop box is the only one I've found that works across both of those very well with first party clients.

After all that, I'm not a paying Dropbox customer though. Unfortunately their pricing left me behind when it went to $10 a month for 1TB and nothing between that and free. So instead of I deal with the wonkiness of Google Drive when I need to on Linux and it works well enough everywhere else and the $2 a moth for 100GB is plenty.

<comment><USER12> What do you think of Mega? [1]. I switched from Dropbox to Mega because of that same pricing issue. I'm not a power user but it certainly works well for syncing files and photos across by Linux and Android devices.

[1] [https://mega.nz/](https://mega.nz/)

<comment><USER13> Mega is awesome and also end-to-end encrypted.

<comment><USER14> Mega is the second iteration of megaupload, funded by piracy and shut down by the FBI some years ago. The founder is shady and has under many ongoing trials and extraditions claims. [https://en.wikipedia.org/wiki/Kim_Dotcom](https://en.wikipedia.org/wiki/Kim_Dotcom)

Seriously. Don't hold your personal files on mega. They can be shut down any minute and delete all your data. That's what happened last time.

Dropbox is a respectable business. It's not comparable.

<comment><USER13> AFAIK mega.nz was founded by Kim, but later bought out by investors.

It is fully laws and DMCA compliant. It is not about piracy anymore.

<comment><USER14> It's as compliant as megaupload was. Don't get it wrong, the vast majority of the traffic is piracy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> To me, the interesting thing about Dropbox going public is how comparisons to Box could/will drive Dropbox's valuation. Any investor can easily check out Box's financials [https://finance.google.com/finance?q=NYSE%3ABOX&fstype=ii&ei...](https://finance.google.com/finance?q=NYSE%3ABOX&fstype=ii&ei=eLJXWsnzJYzwjAGxpbCgDQ) and easily compare Dropbox's numbers to that.

So Box suffered the pain of being the first in the easy consumer/business online storage category to IPO -- but Box's numbers are now driving valuation of their competitor.

<comment><USER16> Some napkin math:

Dropbox: $1B in revenue / $10B valuation (10x)

Box: $400M in revenue / $3B valuation (7.5x)

The real question is earnings(which we don't know yet for Box) and whether Dropbox has a compelling case that it grow faster than Box to justify the higher multiple.

<comment><USER17> I estimated theri EV/R's (substract debts add cash to valuation) and I get Dropbox 9.0 - 9.5 and Box little over 6.

The real issue for me is that file storage is ultimately low profit margin business when the growth maxes out. The end game comes in next 5 - 10 years during a downturn and Amazon, Google, Microsoft, Facebook, or some Chinese company buys one or both of them out and gets the brand and the customers.

<comment><USER18> You have your definition for Enterprise Value flipped - it should be (Equity Value + Total Debt - Cash & Equivalents + Non Controlling Interest). If you are subtracting debt and adding cash, you are typically looking to get equity value from EV.

Your Box multiples look to be correct - looks like they trade at 6.1x on a trailing twelve month revenue basis, and ~5.0x on a next twelve months revenue basis.

Given that Dropbox has a $10BN valuation and a $600MM line of credit from the big banks, I would expect that their trailing revenue multiple is ~10.0x.

</comment></comment></comment></comment><comment><USER19> First YC company to go public ! Congrats

It's always fun to look at the comments at the time the MVP was posted here on HN:

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

<comment><USER20> I apologize for calling this person out, but I found this funny:

> For a Linux user, you can already build such a system yourself quite > trivially by getting an FTP account, mounting it locally with curlftpfs, and > then using SVN or CVS on the mounted filesystem

"quite trivially"

<comment><USER21> Probably a significant chunk of the world's economy is from taking an already existing product and making it more accessible.

<comment> wh-uws You should put this quote on of those startup tshirts or posters and sell it.

<comment><USER21> You do it. A good chunk of that is copying an alraedy existing product.

</comment></comment></comment></comment></comment><comment><USER22> I tried using Dropbox as an alternative to Google Drive. However, just like the other alternative cloud providers it was quite slow.

With Google Drive I can max out my Gbit Fiber (I downloaded with 920 Mb/s last time), while Dropbox was slow 8 Mb/s. Though I am not sure if Dropbox isn't rate limited for the free accounts.

<comment><USER23> I don't see that much benefit paying for Dropbox or Google Drive. At work my company pays for OneDrive. Personally I use OneDrive because it already comes with my Office subscription.

For $8.25 a month I get Office on all my devices and 1TB per 365 user.

I have gigabit internet and there isn't much difference in OneDrive or Google Drive.

<comment><USER22> Are you using the OneDrive file stream? I forgot what it is called.

</comment></comment></comment><comment><USER24> Congrats to Arash for getting to this point. He has been very helpful when I reported security flaws nearly half a decade ago. I'm still wearing their sweater from time to time.

</comment><comment><USER25> First YC company to go public. Congrats everyone!

<comment><USER26> Wow didn't realize it was the first...not sure if that's more depressing than exciting tbh!

<comment><USER27> Build a company to build a company, not to IPO.

<comment><USER28> An exit (IPO or acquisition) is the goal of a VC backed startup. If you want to build a company to build a company, do it a different way (debt, savings, bootstrap, investors).

<comment><USER29> Terrible way of looking at it. Perhaps for investors, sure, but not for employees

<comment><USER30> Who cares? They're replaceable cogs that shouldn't expect anything but wages.

</comment></comment></comment></comment></comment></comment><comment><USER31> I don't understand. What does it mean to file 'confidentially' if now the entire general public knows about it?

<comment><USER32> It seems it doesn't really refer to their announcement being public or private, but rather what they have to submit in financial statements. They have much looser guidelines, so they don't have to disclose/document as much. They can be more "confidential" about what they submit, and that data is not released to the public until a much later date. This is how I understand it.

</comment></comment><comment><USER33> Dropbox stands out as having one of the most bizarre brand redesigns I've ever seen: [https://dropbox.design/](https://dropbox.design/)

<comment><USER34> I mean, have you been on the Bloomberg site?

[https://www.bloomberg.com/politics/404](https://www.bloomberg.com/politics/404)

[https://www.bloomberg.com/politics/500](https://www.bloomberg.com/politics/500)

This is what the general 404 page used to be:

[https://imgur.com/gallery/0MoqU4Y](https://imgur.com/gallery/0MoqU4Y)

[https://www.bloomberg.com/features/elon-musk- goals/](https://www.bloomberg.com/features/elon-musk-goals/)

<comment><USER35> I like Bloomberg's redesign. It's bizarre but fun.

Moreover, Bloomberg is a media company (well, at least the magazine). They have much more license to be insane.

Dropbox is a productivity company and the redesign seems...unwanted? What corporate executive is looking at his Dropbox and thinking that you know, this needs some Sharp Grotesk

<comment><USER36> Yeah -- I... well, I'll stick with the bubbly bootstrap 5-second template look please, if this is what's going to be popular next. It's genuinely and actively hard to look at.

</comment></comment></comment></comment><comment><USER37> Dropbox has come a long way... Kudos to them!

My YC app: Dropbox - Throw away your USB drive [https://news.ycombinator.com/item?id=8863](https://news.ycombinator.com/item?id=8863)

Dropbox launches (YC summer 07) [https://news.ycombinator.com/item?id=134405](https://news.ycombinator.com/item?id=134405)

</comment><comment><USER38> This is definitely the best Show HN I've had the pleasure of watching evolve! Dropbox is a cool technology started by a cool person. That's what I like to see succeed.

Too bad we didn't have the opportunity to buy some "DBCoin" back in 2007. I'd have bought a lot!

Congrats dhouston & co on building a company that improves the world in a significant way.

</comment><comment><USER39> Question: since an IPO is going to be a matter of public record, why would you want to file it confidentially? What's the advantage?

Thanks.

</comment><comment><USER40> First YC IPO! Congrats Drew, Arash and team!

</comment><comment><USER41> Dropbox has always been a successful company with great mindshare. While not quite a household name, if you worked there and told your family there's a chance they would know what the company is (how many of you can do that?). Yet still, dropbox was founded in 2007. It's been over 10 years to reach IPO. Just a friendly message to any engineers out of school who see the tempting offer to work at a small fast moving startup, you may get the payout like dropbox is about to, but you might have to wait a decade.

<comment><USER42> Waiting a decade is not necessarily a bad thing unless you're just looking for a quick payout. As a customer (and honestly as an employee most of the time), I like to see a company that built a business for 10 years and wasn't rushing to a huge infusion of cash that comes with a big burden attached.

<comment><USER43> There's no reason not to look for quick payouts if you're fresh out of college and looking to dive into the world of Silicon Valley style startups.

Money today is worth more than money tomorrow, and often the lump sum of money you get at the end of a startup's liquidity event as an employee is not much greater than someone who earned money through a more traditional route, if you even get it. I know people who chased the startup life for years with nothing to show for it.

A decade later when they finally give up and resign to a more traditional career path, their cohorts who started down that path a decade ago are now impressively far ahead of them in life. I'm talking big houses with long hallways and a baby or two keeping them up at night while they ascend the ranks of a "real" company during the day.

So when playing the startup game, the only thing on your mind should be "fast money, fast money, fast money!". If you like to see businesses that have been around for way longer than 10 years and building strong revenue that most startups can only dream of, don't look for startups.

<comment><USER44> People should keep that in mind when getting into it, but the other part is that some people (myself included) enjoy working for small companies far more than they enjoy working for large companies, so it's not an apples to apples comparison. I generally also prefer not to work with people who have a strictly mercenary mindset.

</comment></comment></comment></comment><comment><USER45> Huge! congrats Drew and Arash on the first YC IPO

</comment><comment><USER46> Please check box's financials [1]. They have annual revenues of $500M and can surely show a profit with non standard accounting practices (all the BS employed as disclaimers by Dropbox to spin a loss as a profit). Box's valuation is around $3.2B.

Personally, anything over a $6.5B valuation for Dropbox is grossly over valuing it, by using Box as a benchmark from the open market

[1]: [https://www.google.com/search?q=NYSE:BOX#wptab=COMPANY](https://www.google.com/search?q=NYSE:BOX#wptab=COMPANY)

<comment><USER47> You can look at the relatively standard metric of EBITA (which Dropbox says is positive) right here [https://www.marketwatch.com/investing/stock/box/financials](https://www.marketwatch.com/investing/stock/box/financials) and note that it was -$100M in 2017. You can also see their revenue in 2017 were $400M, not $500M so you're kind of pulling numbers out of nowhere...

</comment></comment><comment><USER48> Less work for the company because the process is simpler, and allows them to "test the waters" and back out if response is cooler than they imagined it would be.

[https://www.inc.com/christine-lagorio/public-offerings- how-c...](https://www.inc.com/christine-lagorio/public-offerings-how- confidential-ipos-are-changing-the-market.html) is a good read.

</comment><comment><USER49> I don't know much about the stock stuff so I am wondering why they are doing it secretly? Just because they are not ready to announce yet?

</comment><comment><USER50> Sorry dropbox, I was one of your first few paying customers, but then you started taking features away one by one and I had to just cancel.

<comment><USER51> Out of curiosity, which features did you lose?

<comment><USER50> Public folder was a huge one that was axed. Then there was a photo gallery thing that was removed.

</comment></comment></comment><comment><USER52> Would be great to know what day the IPO will be.

Why is there no easy place to see this?

<comment><USER53> It isn't set yet. This is basically a leak -- the process isn't done yet.

The day gets set much further down the line.

</comment></comment><comment><USER54> i probably gonna get downvoted but i don't get their product. anything they offer you can find better/cheaper elsewhere (google docs, photos etc) or not really needed (paper)

<comment><USER49> Dropbox is the only major cloud drive service that offers _official_ Linux app. That beats everything else for me.

<comment><USER55> They even offer it as just a daemon for linux if you want to install it in a server.

And for me, even on windows, the Dropbox client just seems so much more stable than Drive. It's very common for me to see Drive with a little "dead" icon, saying that it couldn't connect, and stopped trying, and I have no idea why.

</comment></comment></comment><comment><USER56> I still want to understand what makes Dropbox different from Box. Box almost never had a good time since it's IPO.

<comment><USER57> Name too close to dropbox, and Dropbox became a well-known name first.

</comment></comment><comment><USER58> I know I'm not being original when I say I'm really not optimistic about their future. There service is extremely easy to replicate, as seen by all the giant companies who have done so, and all of these giant companies can give better service for free just as an incentive for people to increase their dependancy on their ecosystem (like microsoft and apple do quite aggressively, and google, to a lesser degree)

<comment><USER59> To back up your point, for the same price as 1TB of storage on Dropbox you can get MS Office 365 (for 5 devices), which comes with 1TB of storage on OneDrive. Not everyone uses Office of course, but if you do you'd be nuts to pay for Dropbox. It's IE bundled free with Windows all over again.

<comment><USER60> I'd rather pay Dropbox more and not have to have the overhead and constant nag of the Microsoft ecosystem -- not to mention Microsoft's questionable privacy policies -- i.e. [https://news.ycombinator.com/item?id=7369163](https://news.ycombinator.com/item?id=7369163)

Or the privacy mess that is Windows 10...

1TB on Dropbox is $9.99 per month. That's a bargain. I'm not really one to use an inferior product just to save a few dollars.

<comment><USER58> you're likely a dev, so a very special case of super performant user with strong ideas about computers, not very representative of the average consumer, who knows and likes the Office suite. Same goes for icloud and the iOS/Mac ecosystem, and Google drive, etc.

</comment></comment></comment></comment><comment><USER61> What will YC's final cut be?

</comment><comment> brian-armstrong Well, congrats to them for doing it. All they had to do to get there was bring a Bush admin war criminal on board. Hurray for state surveillance!

<comment><USER62> So adding an ex-government official to the board automatically means Dropbox is surveilling you? How does that logic work?

<comment> brian-armstrong When the official has advocated heavily for it, yes that's probably safe to assume

[http://www.drop-dropbox.com/surveillance.html](http://www.drop- dropbox.com/surveillance.html)

<comment><USER62> What kind of relationship do you think the person in question has with the current federal intelligence community?

<comment> brian-armstrong Stellar, considering she spearheaded the warrantless wiretap program.

<comment><USER63> I downvoted your first post because, much as I dislike Condoleezza Rice, what on earth does that have to do with an IPO? Even putting aside that it was factually wrong (no, her joining isn't "all they had to do", they have 10 years of work to show for it).

I downvoted your second comment because it's complaining about downvotes, and is making the completely incorrect (and really quite narcissistic) assumption that you getting downvoted means surveillance/privacy has lost priority.

Here's your context.

</comment></comment></comment></comment></comment></comment><comment><USER64> Does this mean they'll remove the constant nag to upgrade my account to get more space? I have 2 GB out of a total of 20GB free on my non-paying account. It's so infuriating that I've uninstalled the client. How did I get 20 GB free? By getting lots of friends onto the service in the early days, and this is how they thank me?

<comment><USER65> So you are not one of the normal users. Do you think they will write special logic for you?

<comment><USER66> Dropbox must have expected people to play their invite game. Not agreeing with original poster though

</comment></comment></comment><comment><USER67> I'm surprised they didn't go the ICO route with DropCoin or something.

<comment><USER68> I'm genuinely curious to know why you're surprised or what would they have to gain from it.

<comment><USER69> It would be foolish to ICO now. Go public first then pull a Kodak.

<comment><USER70> Can you explain the "pull a Kodak"? I'm a bit lost with that.

<comment><USER69> Launch a coin, sell some Bitcoin mining gear, etc.</comment></comment></comment></comment></comment>


Ruby is alive and well and thinking about the next 25 years - <AUTHOR> https://www.techradar.com/news/ruby-is-alive-and-well-and-thinking-about-the-next-25-years <comment><AUTHOR> Wanted to share this article. I'm currently enjoying Ruby/Rails more and more again and I really appreciate all the effort people like Matz, Tenderlove, DHH and many others in the community are putting into the ecosystem.</comment>


Ask HN: Friendly Debate over Application Configuration - <AUTHOR> My perspective is clouded by my line of work (enterprise applications) but a lot of the applications I work with are HEAVILY configuration driven. When they were originally built the standard practice was the app.config. There are 2-3 competitors in this field and I have worked with all of them. These apps cross multiple business domains from the front to the back office. That means that there are literally hundreds of configs for everything from data connections to report definitions to key connections between tables/entities. That ends up being a nightmare to maintain when doing customization and implementation or migrations. Afterwards, it ends up being reasonably static and will "just work".<p>I still think its clunky, and am curious what other folks do for highly configurable applications that require a lot of configuration. I think that aside from the bare necessities to stand up an environment, a database is a great way to store and maintain configuration. I dont think its without flaws or drawbacks, but the number of times I have to debug "the given key is already in the dictionary" error messages (which by default the .NET framework wont even tell you what key that is) when a database could immediately spit out that an insert failed due to constraint failures with the values is so much more convenient. What are some better practices to configure apps? <comment><USER2> Without getting into the details of the specific technology (app.config, etc.), I would argue that config should go into files instead of databases. For all the problems with poorly-structured file-based application configuration that OP points out, the same practices but using a database lead to far worse consequences. One important advantage of files is that their lifecycle can be managed separately from user application data (which tends to be in the database) and potentially even be put under source control.</comment>


Instapaper 4.2.2 with Background Update Locations - <AUTHOR> http://blog.instapaper.com/post/24293729146

<comment><USER2> It's ridiculous that iOS doesn't offer an API for scheduled background tasks. The clever tricks developers use to solve this problem (geofencing, silent audio[1], etc.) shouldn't be necessary.

[1]: <http://www.148apps.com/news/silence-golden-pastebot/>

<comment><USER3> I tried to get a friend to use XMPP/Jabber for free (private, secure) text messaging but it failed because of this. Improved my impression that iOS is not capable of much while being pretty good at what it can.

</comment></comment><comment><USER4> The lack of background scheduled tasks in iOS is turning into same origin policies for JS in web browsers. Everyone gets around it with ridiculous hacks (JSONP) to the point where the restriction is meaningless and it just causes more work for devs and problems for consumers.

It is neat that people are finding these loopholes, though. Any Downcast devs reading this? Hint hint hint...

<comment><USER5> Despite the hacks (unnecessary since cross-domain xhr), the security benefits of same-origin remain.

<comment><USER6> I couldn't agree more. Same-origin is one of the most important components of browser security.

JSON-P doesn't mean that same-origin is a waste of time just because there's a work-around - it demonstrates that sites should be allowed to opt-out of same- origin protection if they have a reason to, leading to the development of CORS.

Without same-origin protection, I could run JavaScript on any website which silently used XMLHttpRequest to steal information from a web server running on your company's internal intranet. All I'd have to do then is trick you in to visiting my site.

</comment></comment></comment><comment><USER7> So neither the instapaper blog post (linked here) nor the news.me blog post ([http://blog.news.me/post/21643399885/introducing-paper- boy-a...](http://blog.news.me/post/21643399885/introducing-paper-boy- automatically-download-your-news)) comes right out and says it, but the point here is that since iOS doesn't let an arbitrary program schedule itself in the background or on a time-based schedule, but the iOS geofence APIs do let an arbitrary program schedule itself when you cross a geofence, you can abuse the latter to simulate the former?

</comment><comment><USER8> Is there any way to just do this when it is on a wifi network (that I choose), or does it have to go via cell tower? I guess if I'm on my home or office cell tower, I'm almost always also on wifi.

<comment><USER9> Instapaper has a setting to restrict downloads to wifi. I'm assuming this new feature respects that.

 _edit: Apparentley Instapaper = Instagram when I am on HN way too early for a Sunday._

<comment><USER10> It's an Insta_paper_ feature, not an Insta_gram_ feature.

<https://www.instapaper.com/>

</comment></comment></comment><comment><AUTHOR> This is an interesting way to approximate running in the background on a timer.

<comment><AUTHOR> Which Marco says he first saw in News.me

<https://twitter.com/marcoarment/statuses/209073534289448961>

Cool, Ive never seen that before.

</comment></comment><comment><USER11> How is this implemented without effecting the battery life?

<comment><USER12> Geofencing works off cell towers. Since the cell hardware is already tracking towers anyway, the additional cost is minimal.

<comment><USER10> Geofencing works IMHO with all localization features available on iOS, i.e. it's not limited to 3G/UMTS.

<comment><USER12> But it only works on devices with a cell radio, so it's obviously being triggered by that even if it might hit up other facilities once triggered.</comment></comment></comment></comment>


Of Course ML Has Monads - <AUTHOR> http://existentialtype.wordpress.com/2011/05/01/of-course-ml-has-monads/ <comment><USER2> > The default basis library does not attempt to segregate effects into a > monad, but it is perfectly straightforward to do this yourself, by providing > your own layer over the standard basis

This comment is somewhat silly. The whole notion of segregating effects is about what a programmer _cannot_ do, and not about what they can.

In ML, maybe _you_ can segregate effects, but it is of limited value, as all of the code you use _might_ be hiding procedural effects behind the seemingly innocent types.

In Haskell, when I read an API, I _know_ no effects lurk behind the pure type signatures.

<comment><USER3> > In Haskell, when I read an API, I know no effects lurk behind the pure type > signatures.

I wonder how often unsafePerformIO : IO 'a -> 'a is employed

<comment><USER4> unsafePerformIO is not nearly as useful for introducing effects as one might think it would be. Because Haskell is lazy, any effects you might want would have to be grounded in the toplevel IO monad anyway.

To answer you directly, I've read code in various Haskell packages, everything from mime to snap, and AFAICT, it is typically used when you need to call a C library. Suppose you need to use OpenSSL's digest algorithms, for example. Because we technically don't know whether or not that library will have effects, we have to use unsafePerformIO.

<comment><USER5> Actually you can interpret unsafePerformIO as: "Dear compiler, I know you can't prove that it's safe to call this function here in a lazy setting. Please trust me that it is. Sincerely, the programmer."

<comment><USER6> Precisely. The burden is on the programmer to provide the evidence that the conditions for calling `unsafePerformIO` are satisfied. (That is, that any side effects are hidden).

Most languages have `unsafePerformIO` on every single computation :-)

<comment><USER4> It's like there's a spacesuit full of nuclear waste in every single computation!

<comment><USER6> _The horror!!_

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> You could analogously explain how of course Lisp has types, you just implement Hindley-Milner and slot it in in front of the standard library. Only, if the author wrote _that_ , I'd think I was hallucinating.

</comment><comment><USER8> Also of note, a syntax extension for OCaml adding do-notation to the language: <http://www.cas.mcmaster.ca/~carette/pa_monad/></comment>