Software Architects Need More Respect: Hacker Culture Is Overdone  - <AUTHOR> http://bernardlunn.wordpress.com/2011/05/03/software-architects-need-more-respect-hacker-culture-is-overdone/ Some people would say that I am not qualified to write about software development as I have never written a line of code in my life. But I have spent over 30 years working with some great developers on a wide range of projects and I have seen what works and what does not work.
A few years ago the art of architecting systems for scalability and extensibility started to get a bad press. I think Joel Spolsky was the first to coin the phrase "architecture astronauts", to describe those who were always designing layers of abstraction but forgetting to deliver code that actually did anything.    Then we got the lean start up movement, focusing on the constant iteration that the web enables.
This led to the hacker culture, oriented to "just do it" speed. "Hacker" used to be a term of abuse, but like "punk" it was adopted by those accused as a badge of pride.
That is all good stuff, but methinks it has gone too far. We now see too many systems where the original system has to be totally thrown away. That may be OK if you raised $ gazillions and can now compete with Google and Facebook for a big team of really great engineers. But for most startups, it is not possible. So most startups limp along with the original system. The upshot is:
Hosting bills that really start to bite into cash flow. Systems that crash too often; a few of these and your users have clicked away to a rival. Yes, we persevered through Twitter fail whales, but is your service really that addictive? New features take way too long. You either release fast or put in some QA and testing process to avoid brand-killing crashes. It does not need to be like that. The best developers can do both. They create a scalable and extensible architecture AND deliver quick feature iterations. Sometimes you cannot get one person who can do both – it is rare. One team I worked with solved this by having a 4 person team where:
1 person hacked demos, in the full knowledge that the code would thrown away. He was awesome at this and in full synch with his colleague who: created the architecture AND the working code.   35 years later, the system is still being used. 2 people who did the ancilliary stuff like testing, documentation and so on. Great surgeons have a team, same is true with great engineers. I think the problem may be with the pure architect model. No engineer likes being told "here is a perfect architecture, just code it as per that spec".  Going back to the house analogy, we need more architectural engineers who create designs that they know will work and they prove that they work by writing the code. <comment><USER2> It seems the title doesn't quite match the content and thus I was skeptical until the end: " _I think the problem may be with the pure architect model. No engineer likes being told "here is a perfect architecture, just code it as per that spec"._ "

This is _exactly_ the problem with waterfall management in general. Some elite management/architecture cabal presents a long-range plan and if things don't work out it's the fault of the grunts for not "sticking to the plan". This type of software development management is quite obviously wishful thinking and intellectual laziness. It puts a dramatic chilling effect on developer creativity and engagement.

<comment><USER3> I don't think it has anything to do with waterfall versus agile. I work in an agile process as a software architect, and "Here's the spec, implement it" is _exactly_ what I get pressured to do by product owners, scrum masters, and yes, sometimes even by developers, who naturally feel insulted by the idea of having an architect "over" them and have no desire to collaborate on design.

The biggest problem with the idea of software architecture is that it's turned into a job title. It stunts both architects and developers by attempting to divide the labor of programming. We are all programmers, and programming is really just design, from the lowest level of designing lines of code up to the highest level of designing distributed systems. Software architects who don't write code get stale very quickly. The longer-tenured architects at the company I work for are sad sacks. I've been on calls where they "reviewed" and approved "designs" that were actually questionnaires filled in by my product owner and fact-checked by me. The documents they read, while accurate, did not allow them to understand the work on any level at all. Their job was to check for things such as, what browsers will this be tested against? You get on a conference call with them, they ask some bizarre questions based on misconceptions they got from inaccurately reading between the very widely spaced lines, they don't understand the answers, and then they rubber-stamp the paperwork. That's apparently a significant part of their job.

Meanwhile, the developers are encouraged to remain code monkeys because that division of labor makes sense to management. To the developers, this seems like disrespect, and it is, though it isn't as insulting as they think, because management doesn't realize that they're basically saying that developers sucks at half their job.

I don't think "architect" should be a title. Everyone should have the same basic title. Call it "developer" or whatever. Just make it clear that we're all doing the same kind of work. Gradations are okay: junior, senior, longbeard, whatever. There are a million differentiations between different programmers in practice. Senior developers should help junior developers when they need it. Developers should consult with other developers on any difficult or momentous decisions. Some people should be focused on the big picture, but not everyone at the same time. At any moment, some developers will be working on prototypes and new projects, and other developers will be working on maintenance. People will develop expertise and ownership. The point is that every difference is _personal_. One developer may write stellar systems-level code but have unfortunate taste when it comes to designing distributed systems that work together over a network. One developer may be slow at finishing new projects but good at ferreting out bugs.

That's why you need have technical managers with power who make situation- specific judgments about who does what. And that's what this is all about: replacing personal judgment with rules and formulas. Who should design and implement System X, Doug or Sam? Doug, Sam, and their boss know their capabilities. Doug would like to design and implement System X, but their boss knows that is a stretch for Doug and is too risky for the given time frame. Sam knows she can design and implement System X, and so does her boss. So Sam should design and implement the system. Horrible! Unacceptable! Unscientific! Everyone should be assigned tasks based on their job title. Since Sam seems more capable than Doug in this situation, let's give her the title "Software Architect." She will design System X. Since Doug seems less capable in this situation, let's give him the title "Developer." He will implement System X.

What happens next release when there's a system that Doug really ought to design, to stretch his design skills or because it's in an area he knows well? Well, you can promote him, and then he'll be theoretically "assignable" to design any project. If you don't want to promote him, then Sam will do the design and he'll be stuck implementing it. Sam, of course, will be kept busy with design work and "supporting" Doug, so she won't code much, and pretty soon she'll be useless and will spend her time in meetings "representing" engineering, telling sales what's possible and what isn't and hoping that her answers aren't invalidated by things that have changed behind her back. Doug, of course, is busy changing things behind her back, because he only gets to make design-impacting decisions if he doesn't admit that they _are_ design- impacting.

Wow, this is really a subject that gets me worked up. So much for my productivity this morning. I'm an architect, and God help me, I do not want to have this title at the next company I go to.

<comment><USER2> I think you're describing what Steve Yegge called "good agile" [1]. Each task is handled by the person closest to the issue rather than by the person whose job title best matches the perceived difficulty of the task.

" _With a priority queue, you have a dumping-ground for any and all ideas (and bugs) that people suggest as the project unfolds. No engineer is ever idle, unless the queue is empty, which by definition means the project has launched. Tasks can be suspended and resumed simply by putting them back in the queue with appropriate notes or documentation.

You always know how much work is left, and if you like, you can make time estimates based on the remaining tasks. You can examine closed work items to infer anything from bug regression rates to (if you like) individual productivity. You can see which tasks are often passed over, which can help you discover root causes of pain in the organization.

A work queue is completely transparent, so there is minimal risk of accidental duplication of work._"

[1] [http://steve-yegge.blogspot.com/2006/09/good-agile-bad- agile...](http://steve-yegge.blogspot.com/2006/09/good-agile-bad- agile_27.html)

<comment><AUTHOR> "good agile" work queue sounds a bit like how good open source works and that might be scalable even for commercial and enterprise. The problem with some agile is it does not scale, so managers invent some process that is a bit waterfall-like and that turns into a kludgey mess.

<comment><USER3> Exactly. Agile does not scale to the problems management wants to apply it to, so they rip it to pieces to make it fit. We have features contractually committed before development even starts, months-distant deadlines with predetermined deliverables, products with multiple owners, and scrum teams where people have the barest understanding of the work that their teammates do. We even have inter-team dependencies that mean any change of direction by a team will hang other teams out to dry (and what is more essential to agility than the ability to change direction?) A well-managed waterfall process would beat the hell out of the travesty of Agile that we practice now.

But nothing would fix the bogus and stunting idea of a division of labor between "architects" and "developers."

</comment></comment></comment></comment></comment><comment><USER4> I have been warm to the idea of adding the roles "designer" and "finisher" from the art production world to the software world.

 _1 person hacked demos, in the full knowledge that the code would thrown away._

This is akin to the character designer in the art production world. They produce the initial sketches and ideas.

These works are generally too rough or "out there" to be used in the production and are handed off to a "finisher" who has the technical know-how to flesh out the character to be used by production artists.

In the software world the designer would throw caution to the wind to pursue the big ideas. They would produce software that "works" but would in all likelihood need revision to be useable and maintainable by a team.

The finisher would take this rough code and apply their deep understanding of good software and revise the code to be maintainable, stable, and scalable.

But maybe this is an artificial division of responsibility. In practice I've been on both sides. I start with an idea and get it to a point where it works correctly. Then I switch gears and refine it so that it's stable and most importantly: _maintainable_. However, that switch is always a big one and elucidates many different feelings (usually one of excitement to one of dread and fear of boredom). The work can be done by one person, but I like to think I could increase my output if I stayed on one side of it.

</comment><comment><AUTHOR> Thanks for all who commented and sorry for all who got annoyed by this. I am not a developer and certainly don't understand hacker culture, but I really enjoy working with smart developers and have a deep respect for the mix of craft and science. I am absolutely NOT a believer in waterfall management, that is stifling creativity. But I am noticing a trend too far in the opposite direction. The only thing I have seen that works is a really, really small team (2-5) of really, really smart developers who are willing to follow the lead of one person who is also willing (indeed eager) to code and not just pontificate.

</comment><comment><USER5> When you work for someone, you have to do what they pay you for. For a 'software architect', that often means doing things someone else's way. It's tougher, and often less than optimal, but that's what you're paid for.

I think it's one of the reasons so many programmers start their own project and just work for themselves. It allows them the freedom to do it however they want.

Personally, I like the structure of a company above and around me. I like being told what to work on and how it should end up.

In my free time, I work on projects for myself. This allows me that freedom that I don't get during my paid hours, and I end up with something -I- want instead. Eventually, I expect one of those projects will become popular, and I'll deal with that if it happens, but for now I get to do anything I want on them.

Going back to 'respect'... If you do your job, and you get paid a fair wage for it, where's the lack of respect?

However, if you're complaining about your paycheck-supplier complaining that he's not getting his way, you're disrespecting him, not the other way around.

</comment><comment><USER6> Well, if the title is the problem, what's would be a better title?

Significant software projects need a technical person at the top, who's not a manager. If that technical person doesn't have a cool title, he's going to get implicitly demoted by the other stakeholders. That's the way it is.

Architect is just a cool title that gives some authority, so that person doesn't get stomped out by the other non-technical people in the mix. I've been called other things besides Architect (e.g. tech lead, lead developer, etc.), but those titles don't have enough weight. They imply that technology is somehow a second rate activity. When the "Architect" walks into the room, at least they get the attention of the CXO or executive level stakeholders. Otherwise, those types will just focus their attention on the non-technical managers in the room.

What else would you call the lead technology person who knows the nuances of everything about the project, but who doesn't want to be the manager of it?

</comment><comment><USER7> Now I am conflicted. I agree with this article just as much as I agree with this one that says "Architecture has no place in software", also posted today: <http://hhgttg.de/blog/?p=352>

</comment><comment><USER8> The problem is that software usually needs a good architecture but solving this by creating a job for a software architect isn't always the best way of addressing this.

</comment><comment><USER9> Architects do bridges not software.

</comment><comment><USER10> Is it just me, or does this author have no understanding of hackerdom? Starting, of course, with the terminology and history, but also in the assumption that a staged model will always produce a better design than rapid iteration and refactoring.

<comment><AUTHOR> Guilty as charged your honor! But I do understand punk culture ie just do it, end result matters more than credentials. Any relation? But I do NOT believe in a staged/waterfall model. It is not an either/or. Or at least some people hope there is something that avoids the perils of each,\\.

<comment><USER10> If you're interested, I think PG's "Hackers and Painters" (<http://www.paulgraham.com/hp.html>) does a good job of expressing the concept, and "The Power of the Marginal" (<http://www.paulgraham.com/marginal.html>) has some good insights.

Also of interest is ESR's "Basics of the Unix Philosophy" (<http://www.catb.org/~esr/writings/taoup/html/ch01s06.html>) which gives some idea of how to produce quality code as you go, without separating out architecture.

</comment></comment></comment><comment><USER11> _"Hacker" used to be a term of abuse, but like "punk" it was adopted by those accused as a badge of pride._

Yowzers. Epic culture disconnect fail.

Unfortunately, the rest of the article is equally misinformed. Hacker culture predates startups by some 30 years... it certainly did not appear as a result of Eric Ries' Lean Startup writings!...

There could be some truth to the points this guy is making, but the post is too misinformed for the points to stand.</comment>


Amazon Seller Can't Pursue Trade Libel Claims in TM Dispute - <AUTHOR> https://www.law360.com/california/articles/1256607/amazon-seller-can-t-pursue-trade-libel-claims-in-tm-dispute <comment><AUTHOR> By Tiffany Hu

Law360 (March 25, 2020, 5:08 PM EDT) -- An Amazon third-party seller who was booted from the platform for allegedly selling counterfeit network products can't bring trade libel claims against a Wi-Fi device maker after a California federal judge found that "even fraudulent, deliberately false" statements may be protected by state law.

In an order Tuesday, U.S. District Judge Josephine L. Staton granted Wi-Fi device maker TP-Link USA Corp.'s bid to throw out counterclaims brought by Brooklyn-based Careful Shopper LLC after it was sued by TP-Link in early 2019 for trademark infringement.

Careful Shopper had contended that TP-Link pursued a "maliciously and intentionally" false complaint with Amazon, even after the seller told the device maker that its products were authentic. The "scheming accusations" against Careful Shopper counts as libel, the seller said.

But Judge Staton was unmoved, finding that TP-Link's statements to Amazon were protected by litigation privilege under California state law, which covers certain communications that are relevant to the present case.

"Even fraudulent, deliberately false, or other types of tortious communication must be susceptible to coverage by the litigation privilege; if that were not true, the privilege would be unable to achieve its purpose of ensuring that fear of being subjected to derivative tort suits does not prevent open communication and the "utmost freedom of access to the courts" and other channels of redress," the judge wrote.

"Defendants cannot avoid the litigation privilege by alleging that TP-Link engaged in knowingly false, prelitigation communication," she concluded.

Judge Staton also struck down Careful Shopper's counterclaim for interference with the seller's business relationships and per se violation of the antitrust laws, though she gave Careful Shopper 21 days from the order to amend its antitrust claim.

Counsel for the parties did not immediately respond to requests for comment Wednesday.

The companies' dispute started in 2016, when Careful Shopper sued TP-Link in New York federal court over claims of libel per se and defamation. According to Careful Shopper, its "commercial and financial ruination" was brought by TP Link's false report against it though Amazon's internal process for adjudicating disputes with third-party sellers.

Careful Shopper had notified TP-Link that the products were authentic and bought directly from Amazon, but the device maker chose not to withdraw its complaint, leading to the seller's expulsion from the platform, it said.

In January 2019, TP-Link lodged its own lawsuit against Careful Shopper, claiming that it has been using its trademark to sell networking products since at least 2008. Careful Shopper began selling products beginning in 2016, it said.

TP-Link's lawsuit was put on hold pending the resolution of the device maker's bid to dismiss the New York case for a lack of personal jurisdiction, which the court granted in September 2019, according to court documents.

TP-Link is represented by Heather F. Auyang, Joe H. Tuffaha and Prashant Chennakesavan of LTL Attorneys LLP.

Careful Shopper is represented by Mark Schlachet of the Law Office of Mark Schlachet and Christopher J. Hammond of LA Law Group APLC.

The case is TP-Link USA Corp. v. Careful Shopper LLC et al., case number 8:19-cv-00082, in the U.S. District Court for the Central District of California.

\--Editing by Alyssa Miller.</comment>


Protesters at Middlebury College shout down speaker, attack him and a professor - <AUTHOR> https://www.washingtonpost.com/news/volokh-conspiracy/wp/2017/03/04/protesters-at-middlebury-college-shout-down-speaker-attack-him-and-a-professor/ <comment><USER2> Free speech goes both ways. From the NYTimes article:

> Bill Burger, a spokesman for the college, said in an interview: "There are > people who are eager to portray college students or the entire higher > education establishment as hopelessly out of touch, a bastion of liberal > indoctrination, and I think that's fundamentally false. However, events like > last night's do feed that false narrative."

Couldn't have said it better myself. They're only hurting their own cause.

<comment><USER3> _They 're only hurting their own cause._

As with the UC Berkeley protest at Milo Y's appearance, did anyone ID these people to confirm that they're students at the university?

</comment></comment><comment><USER4> This is disappointing. Everyone should have the right to speak freely, without fear of violence or intimidation, regardless of their message. It's that simple.</comment>


We found the perfect VP of sales, and we didn't hire him - <AUTHOR> https://medium.com/an-honest-startup-story/we-found-the-perfect-vp-of-sales-and-we-didnt-hire-him-2f9403c0931d <comment><USER2> Good post, but in your opinion WHEN should you hire a VP of sales, as it seems like you don't have any immediate plans to hire a sales executive. And what's the difference between a VP of sales and a sales manager?</comment>


Why Ruby App Servers Break on MacOS High Sierra - <AUTHOR> https://blog.phusion.nl/2017/10/13/why-ruby-app-servers-break-on-macos-high-sierra-and-what-can-be-done-about-it/ <comment><USER2> Greg Parker, who works on the Objective-C runtime, has a blog post that goes into more detail: [http://www.sealiesoftware.com/blog/archive/2017/6/5/Objectiv...](http://www.sealiesoftware.com/blog/archive/2017/6/5/Objective- C_and_fork_in_macOS_1013.html)

<comment><USER3> So, basically Objective-C doesn't like the RAII pattern if the resource is a process? Ouch.

I got the gist of his summary but his writing is a bit... awkward. Is English not his first language?

<comment><USER4> C has this same problem. Most of the C standard library is unsafe to use between fork and exec of a multithreaded program. This usually includes malloc and printf.

<comment><USER5> How so? After fork() you are guaranteed to only have one remaining thread in the child process, and the parent process doesn't care if there was a fork() or not.

<comment><USER4> malloc() and printf(), for example, have mutexes internal to their implementation. Suppose the parent process has two threads. One is about to do a fork, and the other is in the middle of a malloc(). The fork occurs. The parent process continues on as normal. In the child process, there is only one thread -- a clone of the forking thread, but the memory state of the child process is a full clone of the parent (except for the return value of fork(), of course).

The single thread in the child calls malloc(). But the malloc mutex is already held, because in the parent process, a thread was executing there. Unfortunately, since that thread does not exist in the child, it will never be able to release the mutex. The thread in the child is deadlocked.

<comment><USER5> Well, I haven't thought about locked mutexes. It makes sense.

</comment></comment></comment></comment></comment></comment><comment><USER6> This issue has been addressed on ruby-head

[https://github.com/ruby/ruby/commit/8b182a7f7d798ab6539518fb...](https://github.com/ruby/ruby/commit/8b182a7f7d798ab6539518fbfcb51c78549f9733)

<comment><USER7> It's been addressed, but it's a hack. To be safe, apps must stop all other threads before forking.

The only correct fix I can see is to have pre- and post- fork hooks in every library, which make that guarantee.

<comment><USER8> In Puma, we emit a warning if we detect any additional threads running prior to fork.

</comment></comment></comment><comment><USER9> > This cryptic error

Well....I don't think I've seen many programmer-to-programmer errors that are less cryptic than the one described in the article. It's actually quite amazing how much explanation you sometimes get from Cocoa!

<comment><USER10> It's only cryptic if you don't read it, right?!?

</comment></comment><comment><USER11> Python suffers from the same issue but the response there has largely been to stop using modules that use objc.

<comment><USER12> I was thinking about Python when reading this, the real culprit is not objc but the third-party modules.

If I understand correctly, this problem is caused when you call initialize in another thread, and while that is running, you fork.

It affects these app servers because this is triggered at "require" (or "import") time. This is madness, no module should run code just when you import it. OK, I have been guilty of that, too. But if absolutely neccessary, keep it to a minimum. It breaks all kind of things when module imports are not side-effect-free.

Launching a thread and (indirectly) taking a mutex is definitely not something you should do on module import!

<comment><USER13> As far as I understood, the module isn't launching threads at import time. On the contrary, the problem is that since pg is linked against macOS's Kerberos and LDAP frameworks, as soon as the Objective-C runtime realizes that NSPlaceholderDictionary initialize method was called after fork(), it crashes:

 _One of the rules that Apple defined is that you may not call Foundation class initializers after forking._

<comment><USER12> In that case, the new behavior doesn't make sense. You could call `fork` as the very first thing in a program, and then do all the stuff in the subprocess, and I wouldn't expect it to make a big difference.

Maybe there is an internal `mark_exec_as_called()` function that you could exploit, if you are forking without exec...

</comment></comment></comment></comment><comment><USER14> This is so incredibly Apple :)

The breakage, I mean. To clarify a bit, for better or for worse, this is what Microsoft does, totally different psychology: [https://blogs.msdn.microsoft.com/oldnewthing/20031223-00/?p=...](https://blogs.msdn.microsoft.com/oldnewthing/20031223-00/?p=41373)

<comment><USER15> So Unix people had this function called `gets` that was defined like this:

        char *gets(char *at);

In the early days, if someone wanted a string you could do:

        x = gets(sbrk(0));brk(x + strlen(x) + 1);

And this is perfectly safe, but it is perhaps the only safe way to use `gets`. See, most people wanted to write:

        char buf[99];
        x = gets(buf);

And is this _not_ safe because `gets` doesn't know that `buf` only has room for 99 bytes.

The API has a choice:

a) They can make it harder to do the wrong thing; make `gets` generate errors, warnings, crash if you use it, etc. This requires people fix their programs. That's what GNU did for `gets` and it's what Apple is doing here.

b) They can change the rules: It's possible to modify the ABI and require markers or a mechanism to detect where the edge of the buffer is. This requires people recompile their programs. I think Zeta-C had "fat pointers" so gets should be safe there[1]

c) They can work around: If you have enough resources, you can look at the programs using this API and figure out what their buffer sizes are and hardcode that into the API provider. Microsoft has famously done this for SimCity[2]

That's it. They can't really do anything else: The function is difficult to use right and programmers do the easiest most-obvious thing they can. _oh i need to get a string, so i 'll use gets... but i need two strings so...._

Anyway, I'm not aware of any good rules for choosing which way to go: Less total effort seems like a good metric, but this is very hard to estimate when you live on an island and don't know how other people use your software.

Memory corruption is serious though: It's often very easy to turn into a security hole, so I generally advocate doing _something_. All of the people just disabling this security feature make me nervous. I wonder how many of them run websites that I use...

[1]: [http://www.bitsavers.org/bits/TI/Explorer/zeta-c/](http://www.bitsavers.org/bits/TI/Explorer/zeta-c/)

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

<comment><USER16> Surely that gets(sbrk(0)) will not work since sbrk(0) returns a pointer to unmapped memory. Maybe you wanted sbrk(BUFSIZ)?

<comment><USER15> Well, no actually: That still limits you to a gets of BUFSIZ.

Just as we often grow the stack with page faults, you could grow the heap with page faults: Modern UNIX doesn't because this is another one of those "almost certainly a mistake", but:

        signal(SIGSEGV, grow);
        void grow(int _) { sbrk(PAGESZ); }

should work.

</comment></comment></comment></comment><comment><USER17> Interesting discussion. If these were user-space threads, like FreeBSD ~20 years ago, there'd be no problem. When fork() is called, the whole user-space threads package would be forked, along with all the threads.

So the obvious question is whether it's _fundamental_ that with kernel threads the fork() system call doesn't clone all the other threads in the process? Yes, that's not how it's done, but could Apple choose to implement a new fork_all() system call? I imagine it wouldn't be easy - you'd need to pause _all_ the running threads while you copied state, but is there a reason it's actually not possible?

<comment><USER15> Is this what you want most of the time?

If you're just going fork() && exec() then why would you copy all that state just to run some subprogram?

Is that what you want _any_ of the time?

This prefork implementation is silly. Either do prefork after initialisation so you can take the benefits of COW, or don't bother: Just use SO_REUSEPORT and run 10 copies of your server. This distributes the TCP traffic _and_ provides you an excellent way to upgrade-in-place (just roll up the new version as you roll-down old ones).

<comment><USER17> I agree - most of the time, the current fork() implementation is what you want, so it's the right choice. The conventional wisdom is that you shouldn't spawn threads and then fork(), and so long as you stick to this, you're fine.

Today though, everyone loves threads. It's hard to know precisely what happens in some low-level library, so it's hard to be sure that you don't have any threads left running after initialization. This is the subject of the OP.

My question though is broader - if we chose, _could_ we add a version of fork() that did clone all the threads? I'm not entirely sure what it would be used for, but I'm sure there would be uses. Likely some of those would be for increased security, as processes provide stronger isolation.

<comment><USER15> > I'm not entirely sure what it would be used for, but I'm sure there would be > uses.

I suspect strongly there aren't.

One of the biggest problems you have to contend with is around mutexes (and the like) and their state. If you copy them, we double-book an external- resource (like storage or something), and if you don't we almost certainly deadlock.

Another is any thread waiting on a resource (like reading a file descriptor) or writing to the disk (do you write twice?) and so on.

</comment></comment></comment></comment><comment><USER18> Do developers just call whatever function seems to work without reading the docs? It doesn't work for low level programming.

      ~ man fork

CAVEATS: There are limits to what you can do in the child process. To be totally safe you should restrict yourself to only executing async-signal safe operations until such time as one of the exec functions is called. All APIs, including global data symbols, in any framework or library should be assumed to be unsafe after a fork() unless explicitly documented...

<comment><USER19> Welcome to the stackoverflow era of programming, where technical specs don't matter and frameworks are life.

<comment><USER20> This has been around since well before stack overflow

Here are a plethora of examples from the Windows 95 days: [http://ptgmedia.pearsoncmg.com/images/9780321440303/samplech...](http://ptgmedia.pearsoncmg.com/images/9780321440303/samplechapter/Chen_bonus_ch02.pdf)

</comment></comment></comment><comment><USER21> fork() _fundamentally does not make sense_ as the de-facto method of starting a new process. Why aren't people using posix_spawn() by default?

<comment><USER22> implementation of fork is defined by the POSIX standards. Apple should respect it. There are tons of apps that have been written using fork, are you going to change all of them to use posix_spawn()?

<comment><USER23> Posix standard says you can't call anything but async functions after fork() in a threaded program. Application developers should respect that.

</comment></comment></comment><comment><USER24> for other fun low-level High Sierra issues, see the PostgreSQL msync() thread: [https://www.postgresql.org/message- id/flat/13746.1506974083%...](https://www.postgresql.org/message- email@example.com)

<comment><USER25> Interesting. Mapping 64k at a time seems a bit excessive. If I call mmap it's to map everything I'm going to need, but maybe I am missing context.

<comment><USER26> PostgreSQL still supports 32-bit platforms, heap and index files can get large enough that it's not feasible to mmap them into a 32-bit process. As far as the specific number of 64k though, I don't know why they choose that, writing 8 pages to disk at a time (especially sequentially) doesn't really take advantage of modern hardware well.

</comment></comment></comment><comment><USER27> The discussion on the Ruby core team issue tracker is also very informative: [https://bugs.ruby-lang.org/issues/14009](https://bugs.ruby- lang.org/issues/14009)

</comment><comment><USER28> I've hit similar issues with uwsgi in recent memory (though pre high-sierra), where an OS upgrade caused it to start segfaulting when using the `requests` lib inside CoreFoundation somewhere (though of course entirely unrelated to the new forking changes).

Maybe this? Though the resolution was to disable uwsgi proxying globally... [https://stackoverflow.com/questions/35650520/uwsgi- segmentat...](https://stackoverflow.com/questions/35650520/uwsgi-segmentation- fault-when-using-flask-and-python-requests)

</comment><comment><USER29> What does Linux do right now?

<comment><USER13> If you fork after launching threads, your program is an unexpected state, so it may corrupt data or crash.

The same happens on macOS, it's just that Apple added a contract that you can't initialize ObjC classes after forking.

</comment></comment><comment><USER30> Why do people run applications servers on macOS?

<comment><USER31> [https://www.apple.com/uk/macos/server/](https://www.apple.com/uk/macos/server/)

<comment><USER32> I've mostly seen it for managing multiple Macs in a classroom environment. Not sure I've seen it used heavily in production to run web servers though. Was curious and was able to find sites that do let you rent Macs that you remote into, interesting setup since you know exactly the hardware you're getting into.

</comment></comment></comment><comment><USER33> LOL. mac osx breaks fork() to avoid state inconsistency in threaded applications. How about pthread_atfork() semantics? But ,as usual, apple heavy hands userspace and breaks things. Nothing new to see here, move on.

<comment><USER33> What you don't like the fact that apple sucks for breaking userspace (as usual) or that pthread_atfork() type approaches should be in every programmers toolbox?

<comment><USER34> POSIX has deprecated pthread_atfork because it is unworkable. In particular, atfork handlers can only call AS-safe functions, which means they're useless.

<comment><USER33> As you say except I explicitly noted '..type approaches' and '..semantics'. If a library designer does things in a way that makes you doubtful of state then don't fork. If you do fork block signals and exec. It doesn't help the race but it does help your peace of mind (i did what i could).

Apple still sucks BTW. Heavy handed nonsense. Let developers deal with the consequences of their actions.

</comment></comment></comment></comment><comment><USER35> I agree the bug should be fixed. But, why not just use docker, then run rails like its on ubuntu/linux on your mac? It miserable having windows/mac/etc specific issues.

<comment><USER36> Docker grows to >8GB. I have 13GB free, 486GB used. My free space fluctuates by as much as 20GB depending on how much RAM I'm using. (And by "I'm" I mean "Chrome.")

I've never felt the need to install docker on my local dev environment. It's great for production, and I'm sure it's great for people who can afford the disk space. But when space became tight, Docker was the first to get the axe. I haven't missed it yet.

<comment><USER37> I'm just curious how you would deploy on a container production environment if you can't test all the platform-specific issues while developing on Mac instead of using Docker to develop for a container platform. Isn't the whole point of using Docker to minimize the differences between production and development?

<comment><USER38> Deploy to a container test environment first? I hope no one is going from development -> production.

</comment></comment></comment></comment><comment><USER39> I love this geek-porn stuff, and the Phusion guys never fail to deliver it ;)

But my question is: is this really that important? I mostly use macOS for development, don't feel that the preforking model has that impact in the development cycle.

<comment><USER40> It is important for dev-prod parity. You will want to test whether your code is compatible with preforking, which you will likely use in production.</comment></comment>


Ask HN: How do you remain anonymous on the internet? - <AUTHOR> Edit for a little more clarity: I thought about using a VPN just to have a little less of a footprint online, but it was just annoying to setup due to the provider I used being marked as spam. I also read later there was little to no point in doing this.
It probably had little effect in light of recent NSA news, but I also switched to Linux to have a little less minimal spying done on compared to Windows 10.
In short, I understand some trail is a necessary evil and this may end up being "if they want you, they'll find you", but I wanted to see what steps are generally taken to avoid leaving gaping holes of myself on the internet's virtual floor. <comment><USER2> I personally don't, but I'm sure it can be done. Here is just some things you can do:

1\. Use a fake name.

2\. Use an email that isn't personally identifiable.

3\. Get yourself a P.O. Box and have everything sent there (for when you order packages on Amazon) (you can still be identified offline, as there's no way to get a P.O. Box nowadays without actual proof of identification and residency)

> USPS has good deals.. I'm paying about $5/month for a small box (purchase of > an entire year) ... as a web app developer with a business, I really didn't > want my home address to be known, so this worked for me to at least keep my > address somewhat anonymous, but they are all mostly inexpensive, and even if > it doesn't fit into your mailbox, they'll just hold it at the Post Office > for you with a notice on your mailbox to pick it up at the counter

4\. You will have to buy gift cards at Walmart so you can purchase at Amazon and other websites.

</comment><comment><USER3> Your browser leaks a lot of information about you: [https://panopticlick.eff.org/](https://panopticlick.eff.org/) Have a look at the detailed stats from your browser on that site. Incognito mode don't help for these.

<comment><USER4> Heh, my ad blocker prevents me from opening one of the URLs that redirects to.

</comment></comment><comment><USER5> Don't use any social media.

Don't use the same handle/screenname twice.

Don't allow javascript.

Do use unique 'throw away' email addresses.

Do use unique/long passphrases for everything.

Do use Tor browser with all plugins disabled.

Do use an OS like Tails if you're worried about leaking your true IP.

</comment><comment><USER6> A few good ideas:

don't use the same name on websites. unique username and strong password for each of them.

Use a browser like Brave if you can, or use Ghostery/ublock/etc.

Don't use _anything_ Google at all.

Avoid Facebook the best you can.

I think the VPN is a good idea, and I haven't had one being marked as spam ever. PIA has been decent and has end points in the state that I'm in.

If you want to be a little more obscure, do all of the above but from a virtual machine running Linux. Periodically wipe & restore the virtual machine.

It depends on how anonymous you want to be.

</comment><comment><USER7> The other commenters have given you some good technical advice. privacytools.io provides a basic overview, which is commendable.

However, it's worth investigating in detail what exactly it is you worry about, and what privacy goals you have. Once you have a clear definition of those, write it down and think long and hard about whether it should inform your behavior. I used to be obsessed with privacy but after using this method I understood that I was in fact responding to a different set of emotions which manifested themselves into this. This led me to abandon my previous concerns and take the calculated risk between the convenience of internet services and the potential but nebulous harm that might come to me as a result of data trails.

</comment><comment><USER8> Depends how paranoid you want to get: pay only cash, don't use credit/debit cards, wear sunglasses and a hat in public to avoid being "digitized" by cameras and mobile phones. Don't drive a car (use a cab off the street), don't use a cell phone and use only public computers (like in a library)...

</comment><comment><USER9> It would depend on WHAT/WHO you are trying to remain anonymous from.

<comment><AUTHOR> I updated the OP, but in short what I can with some effort.

</comment></comment><comment><USER10> try using Abine's Blur to create alias credentials EVERY time you sign up for something. www.abine.com disclaimer: i'm a co-founder.

</comment><comment><USER11> VPN, TOR browser, no?</comment>


Particular.net release their Dist. Systems course free, it's normally expensive - <AUTHOR> https://learn.particular.net/courses/adsd-online-free <comment><USER2> Free until may 15th, you posted this on may 17th.</comment>


Humanity and Machine Learning [video] - <AUTHOR> https://a16z.com/2019/02/08/better-together-humanity-machine-learning-chen-summit/ <comment><USER2> I gave a lecture at the University of Toronto last year with a similar point to what the speaker was getting at. Namely, we should be focusing on augmenting human intelligence, not chasing some sort of future robot overlords. See [https://adamdrake.com/novel-results-considered- harmful.html](https://adamdrake.com/novel-results-considered-harmful.html)

This was the approach Douglas Englebart took in the lead up to the Mother of All Demos (MOAD) and it's unfortunate people have forgotten that bit of history.

There is so much that can be done to improve the lives of people if we simply focus on how to optimize a variety of things that have to happen every day. This doesn't mean we should forsake longer-term goals like fully autonomous vehicles or other things, but it does mean that some of those who are most capable of making a very real and significant impact in the lives of thousands of people are forsaking that opportunity.

There is also often the argument that such near-term thinking will lead us to a local optimum in terms of technology advancement, but I don't see that there has been significant evidence to support that claim. After all, Englebart's demo of version control and collaborative editing (among other things) was over 50 years ago and that didn't seem to stall technological progress.

<comment><USER3> > we should be focusing on augmenting human intelligence

Who's we? I can throw machine learning at practical real world problems right now.

Augmenting human intelligence? I'm not aware of _any_ work in this area.

<comment><USER2> Great! We (technologists) should be using machine learning approaches to practical real world problems, particularly those problems whose solutions allow humans to be more productive. That's what I mean by augmenting human intelligence/capabilities.

</comment></comment></comment><comment><USER4> Would someone be willing to provide a brief summary for those who cannot watch the video at the moment?

<comment><AUTHOR> The video walks through interesting uses of ML in industry (mostly outside normal FAANG applications like optimizing your news feed) e.g \- precision farming \- blood delivery using drones \- monitoring construction sites \- writing more diversity-friendly job descriptions \- collecting relevant legal documents

Speaker also argues that we should focus on leveraging ML-human collaboration to surpass human performance, instead of falling into a "robots will replace us" narrative

<comment><USER5> > Speaker also argues that we should focus on leveraging ML-human > collaboration to surpass human performance, instead of falling into a > "robots will replace us" narrative

I didn't watch the full video, so I am only responding to your summary. These kinds of sentiments, where technologists profess that technology will always make everything OK, while not at all addressing how our current economic system will fail large swaths of our society if automation comes to fruition (beyond "new jobs will come up!" or "ignore the luddites!") strikes me entirely as a "Let them eat cake" attitude.

Here's a thought experiment: What would happen if, by the end of 2019, true, 100% self-driving cars became a reality. I know this is not going to happen, but it no longer seems a far-fetched fantasy. In the US, driving is the number one job for the majority of states. What are all of these people supposed to do, become self-driving car programmers?

I am a big believer in technology but I am very worried for the future of society.

<comment><USER6> > Here's a thought experiment: What would happen if, by the end of 2019, true, > 100% self-driving cars became a reality. I know this is not going to happen, > but it no longer seems a far-fetched fantasy. In the US, driving is the > number one job for the majority of states. What are all of these people > supposed to do, become self-driving car programmers?

In the "let them eat cake" scenario, those people will have plenty of free time to stage a revolution and take their piece of the cake by force. Below the threshold of civil war, you get a Wild West where armed bandits hold up trains of self-driving trucks and loot them, creating a thriving job market for security guards protecting the trucks.

Of course both of those scenarios are highly undesirable, so it's more likely that some kind of tax will be introduced to take automating jobs from extremely profitable to barely profitable, with the proceeds used to pay for unemployment benefits and retraining for the displaced workers. (With the amount of retraining depending on how many other jobs haven't been automated yet.)

That said, some people are going to see their standard of living decrease without any way to escape. Such people have existed since forever, and they usually end up homeless if not dead. Automation doesn't create any _new_ problems in that regard, it just makes them large enough that they can no longer be ignored easily.

<comment><USER7> If i were to play the devil's advocate, these "Skilled" jobs have always been on the line. Look at what Uber and Lyft have done to F.T. cab drivers in all major U.S. cities. I have been using Scoop(Bay area wide Corporate Car share app). Its only a matter of time FAANG dumps their "Google bus" in favor of their employees scooping to work by incentivizing and subsidizing it. So there goes the cushy "Google bus" driver job. Not by automation but by a variation of mass transit. In such cases, the employers have to pick up the tab by offering those "skilled" workers displaced OJT/retraining and funneling them into more "non-skilled", knowledge-based jobs. It is not going to be easy and Corporate America finally has to acknowledge its Corporate responsibility. If not Mayhem will ensue and everyone stands to lose.</comment></comment></comment></comment></comment>


I went to a huge cryptocurrency hackathon in San Francisco and brough my camera - <AUTHOR> https://www.youtube.com/watch?v=TlHMpjE0lvk&feature=youtu.be <comment><USER2> awesome! thanks for sharing :)</comment>


A Century of Controversy Over the Foundations of Mathematics  - <AUTHOR> http://www.cs.auckland.ac.nz/~chaitin/cmu.html <comment><USER2> Absolutely fascinating read. I think I feel the same way prehistoric man would feel looking at nature. Its a daunting task, but it feels like our journey has just begun just like our ancestors; and its getting more beautiful. I wanna hear Bach now.

</comment><comment><USER3> I've been wondering about the Russell Paradox...

      S = the set of all sets not members of themselves
      x = 1 / 0

Isn't the problem for x the same as for S? Not all mathematical expressions are well-defined, and likewise for all "set expressions".

Aside: There was a wonderful quote in Jaynes' _Logic of Science_ , decrying the kind of airy mathematics that Chaitin is doing...

 _Should one design a bridge using theory involving infinite sets or the axiom of choice? Might not the bridge collapse?_

<comment><USER4> The problem is that there is no X for which "X / 0" is defined, at least in the sort of traditional mathematics you're talking about.

But "the set of all sets which meet criterion X" _is_ well-defined and is an extremely common thing to encounter. Similarly, "X is a member of itself" is well-defined and is fairly common.

So you end up with this definition -- the set of all sets which are not members of themselves -- which just puts together these two common, well- defined (at least, we _hope_ they're well-defined) concepts and ends up at a contradiction.

<comment><USER3> Mwell, I'm not really satisfied by your answer. Both "1" and "0" are well- defined expressions; division is also well-defined, but, in order to avoid logical contradictions, we cannot meaningfully define the division of 1 and 0. To me, that sounds exactly like what you described above, and I thought that the axiom of choice was the analog of the "you can't divide by 0" rule.

<comment><USER4> Maybe look at it this way:

There is no X for which "X / 0" is defined.

There are many, many, many X (in fact, potentially all X such that X is a set) for which "X is a member of itself" is defined.

In other words, division by zero universally leads to contradiction no matter what you put in for X. But self-membership is perfectly well-behaved for lots and lots of values, and only starts to get troublesome on certain particular cases. This is curious: why should something which works well in many, many cases end up at a contradiction based not on the logical form of the statement, but rather on the particular values we substitute in place of its variables?

</comment></comment></comment></comment><comment><USER5> Thank you, a very interesting lecture. The process physics he is linking to are maybe even more interesting. Everything based on random fluctuations ... hmm I'd better learn the statistics good!

</comment><comment><USER6> Great link! I've read about a lot of this stuff in text books etc, but it all fits together so much better when put in its proper historical context like that. If I understand it correctly, his main result in algorithmic complexity theory implies that it is impossible to prove the absence of a pattern in data. Does this thus imply that there is no way for us to know when we know everything?

</comment><comment><USER7> "So 'this statement is false' is false if and only if it's true, so there's a problem."

I don't understand this. This seems to assume that the meaning of a phrase is contained within the phrase itself. But if you instead assume that the phrase is a pointer to meaning that is contained somewhere else then the paradox goes away.

<comment><USER8> Well, that's a pretty large assumption. At least in american English, the phrase 'this _____' is commonly understood to be self-referential in some manner unless some other context has been previously established. For example:

This sentence contains ten words and is a true statement.

If you haven't read _Godel, Escher, Bach_ , now is the time.

<comment><USER7> Self-referrential to the words themselves, or to the meaning of the words?

<comment><USER4> Depends on what sort of metaphysics of propositions you accept, whether you want to deal with an extensional or an intensional language, and a whole bunch of other stuff that generally only philosophers and some mathematicians have cared about.

If you're interested, though, let me know and I'll see what I can dig up for you from back when I was studying this stuff.

</comment></comment></comment></comment><comment><USER9> Is this correct in set theory?

ω/ω=1

1/ω=ε

ε*ω=1

ω=1/ε

If we assume for every positive number there is only one negative number then this must be true: +∞/-∞=1

<comment><AUTHOR> why is 1/ω=ε ? would it not tend to 0. perhaps I'm misunderstanding you, I don't really grok set theory.

<comment><USER9> Sure it tends to zero which is ε, being ω the largest and ε the smallest possible.

Never mind, just trying to understand Cantor's brilliant mind.</comment></comment></comment>


Datasets : Open to Interpretation - <AUTHOR> http://vijayanands.tumblr.com/post/1177576740/open-to-interpretation

<comment><USER2> I do a different type of data analysis (one of my core job responsibilities), not anything web related and each of the points made in the article are so true to the one that I do.

At the end of day, I guess, all data analysis is similar, its a tool to discern various aspects of reality (or the truth, if one is more philosophical).

And the interpretation of the truth is only as good as the tools used to arrive at it and how well they are used.</comment>


Surprising Stats from Mining One Million Tweets About #Syria - <AUTHOR> http://miningthesocialweb.com/2013/09/09/surprising-stats-from-mining-one-million-tweets-about-syria/

<comment><USER2> Awesome repo here: [https://github.com/ptwobrussell/Mining-the-Social-Web-2nd- Ed...](https://github.com/ptwobrussell/Mining-the-Social-Web-2nd-Edition)</comment>


Orcale begins using Linux to give life to old POS Workstations - ian-bateman https://reformingretail.com/index.php/2019/08/08/micros-officially-updates-effort-to-reuse-old-res-hardware/ <comment><AUTHOR> Is Orchard specific to restaurant solutions or would it work in any retail situation? How does it handle multiple stores in multiple states with different tax rates and pricing?</comment>


Show HN – The Missing Link Between AWS AutoScaling Groups and Route53 - <AUTHOR> https://github.com/cirocosta/auto53 <comment><USER2> How is this solving the problem in a better way than Elastic Load Balancer?</comment>


Mars One Finalist Explains Exactly How It's Ripping Off Supporters - <AUTHOR> https://medium.com/matter/mars-one-insider-quits-dangerously-flawed-project-2dfef95217d3 <comment><USER2> Much previous discussion, claim and counter claim. Here's a search of previous submissions (plus additional hits of other topics):

[https://hn.algolia.com/?query=mars%20one&sort=byDate&prefix&...](https://hn.algolia.com/?query=mars%20one&sort=byDate&prefix&page=0&dateRange=all&type=story)

<comment><AUTHOR> i actually assumed this link was already submitted so I used the YC bookmarklet to +1 and read comments but since it didn't exist it got submitted. sorry bout that</comment></comment>


Show HN: I created a platform that gives indie games a better chance at exposure - <AUTHOR> http://gamehunt.co <comment><USER2> Product Hunt doesn't give indie startups a better chance at exposure, so the juxtaposition does not make sense.

<comment><USER3> [https://www.producthunt.com/topics/indie- games](https://www.producthunt.com/topics/indie-games) looks very similiar to the concept. With a bigger audience attracted through the variety of products, Parent hunt could potentially be better for indie startups to attract larger and more diverse crowds other than just gamers who know about an indie games website. Some Venn diagrams would clarify what I'm getting at here. Nonetheless, Cool project!

</comment></comment><comment><USER4> Talk to a lawyer before investing in this domain/product name. It likely has a risky overlap with Product Hunt.

</comment><comment><USER5> [https://www.producthunt.com/games](https://www.producthunt.com/games) \- Top 2 games listed today are indie games.

And it looks like you posted this 2 days ago: [https://news.ycombinator.com/item?id=11793777](https://news.ycombinator.com/item?id=11793777)</comment>


JEP 230: Microbenchmark Suite - <AUTHOR> https://openjdk.java.net/jeps/230 <comment><USER2> This is about integrating JMH ([http://openjdk.java.net/projects/code- tools/jmh](http://openjdk.java.net/projects/code-tools/jmh)) with better ergonomics

<comment><USER3> No I don't think that's the case.

This JEP is about writing a suite of benchmarks that _use_ JMH, but it looks like JMH will remain a normal build-time dependency and will not be integrated.

> The JDK build system will need to be able to download or in some other way > access to a binary version of JMH

<comment><USER2> You are right, that is what this is.</comment></comment></comment>


The paradox powering Earth's magnetic field - <AUTHOR> https://www.newscientist.com/article/mg23331080-200-the-paradox-powering-earths-magnetic-field/ <comment><USER2> (paywalled)

<comment><AUTHOR> The free account can read it.</comment></comment>


My experiences in tech: Death by 1000 paper cuts - <AUTHOR> http://juliepagano.tumblr.com/post/46206589124/my-experiences-in-tech-death-by-1000-paper-cuts <comment><USER2> Software has apparently become some sort of social cause, instead of an engineering discipline, and my patience with this constant caterwauling about it is at its end.

I too am dealing with death by a thousand cuts of unprofessionalism:

\- People swearing in presentations, and then people whining about swearing in presentations.

\- Presentations that aren't backed by research or papers or anything of particular __engineering __note, but instead are a platform for social butterfly developers to build a larger popularity platform.

\- Conferences named after beer drinking.

\- Constant whining about some sort of offense that someone dealt you, or some social situation that you were unable to handle like an adult.

\- Constant wheel re-invention of 1990s engineering dressed up in fancy websites with funny names like "unicorn" or 'nyan rainbow cat daemon'.

\- Conference blow-ups about things that _SHOULD NOT MATTER_. Like dongles. Multiple people losing their jobs and articles in CNN.

\- Drama-fests about workplace behavior, cancelled talks, "triggers", t-shirts that make people cry.

I'm sick of this. _THIS_ is what a real conference with real papers look(ed|s) like:

<http://static.usenix.org/events/usenix01/technical.html>

[https://www.usenix.org/system/files/tech- schedule/atc12_proc...](https://www.usenix.org/system/files/tech- schedule/atc12_proceedings_0.pdf)

Maybe this is just what happens when a fringe group like technology is re- integrated into the mainstream, but I would like to go just one day without hearing about some other act of stupidity, sexism, tweets, or social anxiety, and instead focus on what actually matters, which is real, hard, respectful, careful, and attentive _ENGINEERING_.

<comment><USER3> _Software has apparently become some sort of social cause, instead of an engineering discipline_

I liked this.

 _My patience with this constant caterwauling about it is at its end._

I didn't like this, because it implies that the problem is the caterwauling. You then go on to make it clear that the problem is that people can't handle the industry or the culture, not the industry or the culture.

Well, the correct way forward is for everyone to suck it fucking up and start acting like adults, including respecting each other. Some of that includes being less dramatic about problems, but there is also a HUGE responsibility to eliminate those problems in the first place.

Absolutely nobody should be losing jobs over dongle jokes, but then again, nobody should be making dongle jokes. This isn't an either-or blame situation, just an observation that everybody wins if we don't make dongle jokes.

<comment><USER4> 'suck it fucking up and start acting like adults, including respecting each other.'

Agreed.

'nobody should be making dongle jokes'

What have we come to where I can't sit with a friend and shoot the shit about dongles? I can tell you that some of my best 'that's what she said' moments were in the midst of another woman, who had some of the best of all.

<comment><USER5> 'What have we come to where I can't sit with a friend and shoot the shit about dongles?'

Well, it sounds to me like you've come to a professional environment, such as a workplace, or a technical conference.

</comment></comment></comment></comment><comment><USER6> Being a software engineer means whatever you choose for it to mean to you. Sorry to hear your choice of analogy. Not my choice for sure.

I'm not going to try to compare my pain with your pain or anyone else's; I just want to say that I've been shit on by almost everyone important in my life from the earliest age. But I found refuge in building software. It became my escape from all the other pain. I found a way to tune out all of that and focus on only 2 things: my customers and the tools they needed. And I found a great equalizer. Not because I had anything to prove, but because I found a natural solution: build what the customer needs and nothing much else matters. Don't build what they need: same thing.

Forget about the conferences (you don't really need them anyway). Forget about Facebook, twitter, Hacker News, reddit, etc., etc., etc. They're definitely more of a distraction than a help. Learn how to separate issues from details (it's amazing how little really matters). Try to tune out the negativity. I know it's hard, but just think of it as "systems analysis applied to people". Once you focus on what's really important to your customer, block out the distractions, and build what they need, all the bullshit will fade into the background.

Please don't allow your aversion to the negativity of others overwhelm your love of building software. Let the love defeat the hate. I did and I know you can too.

Best wishes and please keep us posted.

<comment><USER7> The blind-upvoting of celebrities on HN is sometimes appalling. This comment totally sidesteps the point of the article. OP is not asking for advice.

You are not being helpful here. She clearly points out "That no matter how tough I get, how thick my skin, the paper cuts still hurt." So telling her to get thicker skin really just adds one more papercut to the pile (and the rest of this thread will heap on a few more).

OP your post is well done and paints a clear picture. Hopefully you and others like you will continue to inspire folks to change.

<comment><USER8> He is allowed to share his life experiences and offer his advice to the readers of an online discussion forum, even if the author of the article linked at the top of the thread didn't solicit personal advice. He doesn't need anyone's permission.

Women aren't fragile creatures who need constant protecting. The author of the article is not your personal damsel in distress. She is a human who feels she has faced challenges.

So is edw519.

<comment><USER9> He's using his life experiences to explain how "if I can pull myself up by the bootstraps, you can too." He's essentially denying her experience, and he even implies that the two of them have had the exact same experiences in tech when he says that death by 1000 cuts wouldn't be his choice of analogy.

<comment><USER10> I don't think he's denying her experience. I read it as advice on how to deal with how things currently are.

The problem is change in the industry takes time, and so without changing how she personally deals with things currently, she is going to continue to be unhappy. Obviously this is a bad situation and we need to make things better in our industry, but arcing up at people trying to help other people cope with current conditions is hardly helpful.

<comment><USER9> _> The problem is change in the industry takes time, and so without changing how she personally deals with things currently, she is going to continue to be unhappy._

Yeah, I'm not going to argue with an obvious concern troll. Next time, try to be more subtle.

</comment></comment></comment></comment></comment></comment><comment><USER11> Geez people, why can't we just take this as a moment of reflection. Read this story and say "damn, that's not cool someone feels that way, I wonder what I can do to make life better for the people around me?" It doesn't matter if you think she's over-reacting, or thin skinned, or any other judgement you've made of her after reading her post. Be a decent human being and realize that by being aware, you can make our industry a better place to be for all people. If you think she's just being "moody", there are plenty of guys who see and hate this behavior of our industry and would love for the environment t to improve. As someone who spent 8 years as a car salesman(a 95%+ male industry), the vitriol towards and objectification of women in tech is just about as bad. It's time to wake up.

<comment><USER12> I want an example of a time when there was "vitriol" toward women in the tech industry. I've certainly never seen it.

<comment><USER13> Were you away from HN during the "PyCon Event"? It was only a couple of days ago, and was a startlingly clear example.

<comment><USER12> I was here. "I'd fork his repo," right? That was "vitriol against women"?

<comment><USER14> No, the vitriol would be calling her a cunt, threatening rape, doxing her, threatening death, implying that she's hysterical, cheering her firing, etc, etc.

I say that because the nice interpretation of what you say i that you genuinely missed most of the story. But it's hard not to think you're just being an ass.

</comment></comment></comment></comment></comment><comment><USER15> One source of these "paper cuts" is that we live immersed in a highly sexual culture. "Booth babes" are provided for men to oggle at tech conferences, but the idealized female body is also used to sell beer, cars, and hamburgers to us on TV. Cleavage shots are common on highway billboards. "Dongle" jokes are on Family Guy, the Daily Show, HBO, CBS, NBC, and even PG movies (I remember a penis joke in "Shrek"). When guys make sexual comments, they are simply participating in the culture that they live in.

While tech has some attitudes that are undeniably sexist, comments that would happen in _any industry_ are perceived as more threatening because the gender ratio is so out of whack. If females felt safer in tech, then they wouldn't notice as much the background noise of cultural hyper-sexuality.

It feels unfair or unreasonable to many men to check their American culture at the door in order to make females feel comfortable in tech, which is the source of the recent shitshow over PyCon. Most men are willing to fight blatantly sexist shit - the groping and nasty comments reported from tech conferences over the last few years. I am 100% on PyCon's side with the code of conduct and support resources for women.

But males in tech simply don't know how to have a conversation without "that's what she said". That's what they hear at night on "How I met your mother".

We have a sexually libertine culture. That is viewed as "progress" by some, including many feminists, but it is not without costs. And there is no easy way to silence it.

<comment><USER16> I think this is a very important point. Why is it that we accept grossly sexual comedy and imagery as means to advertise to the masses. Yet in the work place this same culture is seen as totally unacceptable.

Personally I think we have gone way to far with what we accept in the media and it's only getting worse.

<comment><USER17> > Personally I think we have gone way to far with what we accept in the media > and it's only getting worse.

Personally I think we have gone way too far with what we deem "unprofessional" or "inappropriate".

I'm with Louis CK when I find myself being offended by hearing some white lady with nice hair saying the phrase "the N word" on CNN.

<comment><USER18> Not only that, I think Americans in particular are _way_ too prudish and offendable when it comes to sex, and this starts bordering on religious influence in my mind. I've had enough rodeos down this line of discussion to know that this will be my only vague comment on these feelings.

I think that's the polar opposite view of walms's comment, but I might be wrong.

<comment><USER16> Not really the polar opposite, my personal views are that using human sexual drive as a means of marketing and mass entertainment is corrupt on many levels. But my point was more, the double standard is stupid. Why can we use half naked women in the media but not expect men to think of women as sexual objects? We are told they are all the time.

I'm not American so I can't comment on how prudish people are there, but I think you are correct people do get offended way to easy. But we live in an age that tells women to value them selves based on their sexual appeal and men to value them selves on the sexual conquests. And saying that is wrong to me has nothing to do with being prudish.

<comment><USER18> Initially read you as applying a prudish view to "sex sells" instead of looking at it more academically, hence my comment. Thank you for clarifying.

We are in different paragraphs on the same page. Well written.

</comment></comment></comment></comment></comment></comment><comment><USER19> "Microaggression" is the accepted term for all those things that are totally not a big deal and why can't you take a joke.

Very useful concept, particularly if you're not someone who has to suffer them daily and can't understand why one individual little incident is still an issue.

<comment><USER20> I've experienced things from women in the workplace that would have resulted in _instant_ termination had she been a man. But men have a higher threshold for not complaining about shit that doesn't matter.

<comment><USER13> So have I - I've had a morbidly obese Nurse Unit Manager with the hots for me come in and lean all over me - heavy and annoying. My female tech lead volunteered to provide evidence for a sexual harassment complaint if I wanted to. (I'm male, the NUM was female)

I didn't want to. The NUM came in maybe three times a year, for only a couple of minutes. It was just a passing discomfort, but the important thing is this: I never lost tangible power. I didn't work in an environment where it was commonplace. I never felt like I couldn't escape or verbally correct or even physically overpower her if things went too far. There was never a culture of undermining my power that it contributed to. I wasn't seen as more of a 'junior' because of it; it didn't diminish my status.

Separate to that, I wouldn't say men have a higher threshold for not complaining about shit that doesn't matter. In some senses they do, and in others they don't - the recent PyCon event showed vast amounts of men in tech providing plenty of vapid, shrill complaints over stuff that really didn't require that level of passion.

</comment></comment></comment><comment><USER17> "The heavy drinking makes some of us feel unsafe."

Equating rape culture with alcohol-consumption culture doesn't solve the root problem, it only alienates the vast majority of those of us who enjoy drinking occasionally who have never raped or assaulted anyone ever.

The solution to "some people are alienated" is not "alienate the dominant group right back".

<comment><USER15> The point of alcohol is to lower inhibitions. More Bad Things happen per person hour under intoxication than sober, by design of the substance.

Recently, I've had the thought that feminists and hardline social conservatives ought to find common ground around the alcohol/party culture. Feminists should also ask themselves - for whom and by whom was this culture made in the first place? Does it work in women's favor? It's unrealistic to think that we can reduce sexual aggression while leaving this culture the same.

I wonder what percent of sexual assault occurs while both parties are sober?

<comment><USER21> _The point of alcohol is to lower inhibitions._

So even when I'm at home on my own watching a great documentary on netflix, and I have a beer or two, you're saying I can only be doing it to lower my inhibitions?

</comment></comment></comment><comment><USER22> In one job, the women used to complain that the boss literally could/would not hear the women when they spoke - at least when they were speaking seriously, offering suggestions, analysis, etc. (He was great for sharing beers, shooting the breeze, discussing current events, etc.) The other men always insisted we were being paranoid/militantly feminist/attention-seeking, etc. One guy finally "saw" it - but not until he had given his 2-weeks' notice. I guess that's when he finally felt comfortable taking the blinders off - or finally acknowledging what he had always seen. I used to say that even mosquitos got more respect from our boss than we did, because he had swatted at them when he heard them.

<comment><USER14> "It is difficult to get a man to understand something when his salary depends upon his not understanding it!" -- Upton Sinclair

Of course, when he said it, "man" meant "person".

To be maximally fair to the guys, this stuff is really hard to see. Part of it is just that everything is hard to see unless it's somehow personal for you. But the bigger part for me was that really seeing it required a trip down the rabbit hole to seeing all sorts of privilege. All sorts of _my_ privilege, really. Who wants to know that a chunk of one's sense of self-worth is false? It's real work, and I feel lucky that my circumstances disposed me to seeing it more easily than most.

</comment></comment><comment><USER23> I don't think that "my wife doesn't understand why I like technology" is a sexist comment. Substitute husband and it would read just the same.

<comment><USER9> Haha, once again, the Geek Feminism wiki addresses this EXACT argument.

\-----

"Suck it up and deal" is a common response to examples of gender discrimination. For example, suppose "Bob" asks "Alice" for an example of why female students may feel unwelcome in computer science classrooms, and "Alice" says, "Suppose you walk into a classroom and the first thing you hear is the lecturer saying 'we need to make our systems so usable that even your mom could use them'; would you feel more or less welcome?" It's common for "Bob" to respond that he wouldn't feel unwelcome in such a situation if he were a woman, because he would just suck it up and deal; after all, "Bob" would say, computer scientists frequently use "so easy your mom could use it" as a benchmark, and anyway, why would he let that stop him from being interested in computer science?

As a rhetorical device, "Suck it up and deal" serves as a double bind: if you fail to give examples of sexist comments or behavior, you're accused of inventing a problem. If you do give examples, almost any example can be dismissed as something women would be able to deal with if they weren't oversensitive / overemotional / not really interested in technology anyway.

"Suck it up and deal" is also a convenient way of disregarding the emotional labor required to, in fact, suck it up and deal (something almost any woman in a technical career already does frequently just to get through the day), the toll that such labor takes on a person over time, and the energy it drains that could otherwise go into work. Like the Male experience trump card, "Suck it up and deal" is a way for people who have never had sexist comments aimed at them to deny the reality that such comments have an effect.

Source: <http://geekfeminism.wikia.com/wiki/Suck_it_up_and_deal>

<comment><USER24> I have used the "mom" example a few of times. My mom is quite capable, so most anecdotes I have of times I've gained insight into how people use computers when they aren't familiar with them are of other people in my life. But I do have a few anecdotes about her that I've used.

One day someone was Wrong On The Internet and I really wanted to make my point and found myself making my point with a "mom" example that had never actually happened with her. Initially it made me a little uncomfortable, and I thought the discomfort came from representing my mother as less capable than she is. But I figured I'm anonymous, and since I could be anyone,I'm not really talking about my mom specifically. "My mom" could be any mom and I was conveying something I figured might happen to lots of moms.

So I posted it anyway. It wasn't until later that I realized how extremely obviously sexist and ageist it was. The ONLY reason I was using "mom" in that example was to enlist the stereotype that older women aren't adept with technology. That made me further realize that even when I was using true anecdotes from my life, I was likely motivated to do so because enlisting the stereotype strengthened whatever point I happened to be making.

When I read the girlfriend/wife line from the OP I thought the same thing as many responders here do: There's nothing wrong with someone sharing a true fact about their experience being in a relationship with someone that doesn't care as much about technology. But that can still be sexist if you are unknowingly choosing to share the fact because the point you are making is made stronger by enlisting a stereotype that women don't care about technology.

</comment></comment></comment><comment><USER25> I hope you don't let your negative experiences push you away from working in (software) engineering. The field in general is already over-saturated with men and I could imagine it being an intimidating field to get into when you're the only female programmer in the office. (My office of about 150 people has only 2 or 3 female programmers, the other 5 or so women are payroll, receptionist, etc.)

It's easy for us as men to feel welcome and comfortable in a group composed almost entirely of men, and I suppose it ends up being sort of self-fulfilling at that point to "keep women out", even if we don't all intend for that to happen. I know that walking into an interview and sitting across from 3 women scares me a little bit, but I can't even imagine how I would feel in an office full of women; definitely out of place.

TL;DR: Please stick with it! The best way to help the female students and interns to be more comfortable in the field is to get as close to a 50:50 gender split as possible.

</comment><comment><USER26> I don't know Julie much, but I have met her at least once or twice and have seen her around the Pittsburgh software community events on several occasions. As an organizer of the Pittsburgh Python group I feel a sort of camaraderie with her and the other members of our little community. I can't truly understand her experiences as a woman in this industry, but I know she is hurting now, and I won't ever forget that.

These women are our people. They are tinkerers and geeks and perfectionists and builders and creators and geniuses and artists. They are who we are and who we aspire to be. There is plenty of imperfection to go around on both sides of the gender divide, but what we all have in common is a desire to be better... Better at our work or our craft, better at our fun. I think if we took just a little bit of that energy and aimed it at being better at relating to and respecting one another, we would all be better off.

We can make progress on this issue of sexism. We can start by practicing a bit more professionalism, even when we think no one is watching. We can make progress by thinking about others first when we think or act. We can make comments with real value, rather than shock value. We can acknowledge that there is no inherent connection between boldness and rightness. We don't need to start treating women differently... We are already doing that and it is only making things worse. We need to hold ourselves to a higher standard when dealing with everyone.

What if we all went to work today and encouraged every good idea, and were constructive toward every bad idea? What if we talked about software like it was software, not a swimsuit model? What if we stopped being so impressed with ourselves at every turn of off-color phrase, and started being impressed with the great things that the men and women we work with are doing to drive our products forward?

What if we spent just one week focusing on that. Maybe some of Julie's paper cuts would get a chance to heal. Maybe then we would learn what we can really accomplish together. Maybe we would never look back.

</comment><comment><USER9> This is a fantastic article. Of course, I'm disappointed (though not surprised) that commenters here continue to deny this person's experience.

<comment><USER27> Actually given the norm for HN, this is pretty supportive and that is sad

</comment></comment><comment><USER28> Treating coworkers with respect should always be the first responsibility of all employees. Many of these situations you describe are gender discrimination, but even at a higher level they are just an example of coworkers not showing respect for one another. I've worked for 2 places in a row where not showing respect for your fellow coworkers is literally a fireable offense. These places exist. Many of the behaviors you mentioned in your post would be so far over the line of appropriateness that it wouldn't even been a question or issue. If you brought them up to your manager immediate action would be taken.

So I'd encourage you just to keep looking if you continue to run into these issues. All tech companies are not like this.

</comment><comment><USER29> Sounds like a shitty work place, and she was a woman. Those guys sound like assholes. She should find another job; not everything in "tech" is like this. I don't feel this way at my current position.

<comment><USER30> She should disrupt her life and tear down her most important professional relationships to go somewhere that doesn't exist?

<comment><USER31> I was in a negative situation at a workplace (despite being a straight male) and yes, I did exactly that, and found a new job that was a hundred times better.

Sometimes it's a good idea to leave and find something better. Sometimes it's worth it to stay and try to change the situation. It's difficult to say when each action is appropriate, but you can't say that either one is strictly a poor choice.

In other words, yes, she absolutely should if it makes sense.

</comment></comment></comment><comment><USER32> " I've had people claim minority-only safe spaces are sexist. "

What is a minority-only safe space? Is it just a segregated area that implies safety in homogeneity, or is there some other mechanism to ensure "safety"?

I can imagine segregating all of a particular minority into their own area of the office for their own "safety". Hopefully that's not what this is.

<comment><USER33> I was alluding to groups (in person or online) that are limited to only a specific minority audience, usually with the intent of creating a space where those people will feel safe to speak freely. For example, the Devchix mailing list is only open to women-identified people.

<comment><USER18> Not trolling, I'm genuinely asking:

Would you consider it sexist if someone started a developer list only for people that identify as male? Would you consider it racist if white people started a conference where only white people could attend?

I can't make the leap to consider female-only developer lists not sexist or exclusionary without setting aside hesitation regarding the concept since my brain wants to consider it a double standard. Even in the face of privilege, another concept I can't really wrap my head around, but which even daring to question or seek explanation of inflicts the wrath of people who hate my privilege. ( _Nothing_ has come easy to me in my white male life. Nothing. I hate when people tell me I'm privileged, as it makes me feel like life is pretty hopeless, given the painful career and personal life I've experienced thus far. My life should be easier if I am privileged, right?)

As a man, I'd look down on a male-only mailing list, just like I somewhat look down on female-only mailing lists. How about a mailing list for human beings? I just don't get it. Why do we have to identify so hard with what we are?

Maybe I have a different perspective on privilege because I'm fat and ugly, and only the attractive white men get it, or something. But seriously, if I have privilege, how do I take advantage of it? Is there something I have to do to make it happen? Because I'd sure like to see it since everybody tells me I have it.

(I genuinely loathe "oh, you're a white male, life must be easy for you," just as much as you surely hate people snubbing your gender. I wasn't born into money. I wasn't born attractive. I wasn't born in a great town. I have a felony conviction. This is my second career. I've had to claw my way to success just like everybody else.)

\---

EDIT: Thanks for having a shot at this, men. I'm interested in OP's answer.

<comment><USER34> _Would you consider it sexist if someone started a developer list only for people that identify as male? Would you consider it racist if white people started a conference where only white people could attend?_

From the perspective of contemporary social justice theory, such things would indeed be considered sexist and/or racist because they are used to support privilege, whereas a women-only context or Black-only context would be used to deconstruct privilege.

(Some people consider this standpoint is completely insane, while others consider it a self-evident truth.)

<comment><USER18> You rephrased my comment's discussion of privilege and wrote it back to me. The parenthetical is what I'm asking about.

<comment><USER34> My personal answer would depend on whether I were talking candidly with my buddies at the bar, or taking a mandatory seminar in order to get rubber stamped for "diversity education" for my HR file.

<comment><USER18> I'm intrigued that you'd give a different answer for each scenario.

<comment><USER34> You need to know your audience, and know what they are prepared to hear. No sense in risking your career over a meaningless political point.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> This isn't really a unique story. Understand that it sucks to be treated like that but the same can be said about women dominant workplaces. Sexism and not being taken seriously can be found everywhere. I've been called "sweetie", "honey" with a demeaning tone on daily basis, I've heard about fucking so and so and drama that goes with it, my opinion was dismissed and I was left out from the "club" more times than I care to remember and females usually got better treatment simply by being a female countless time.

This shouldn't be news, this is just life.

<comment><USER14> I'm amazed that you can also experience painful discrimination and conclude that nobody should notice that.

Isn't a better response to say that discrimination sucks, and that we should work to end it everywhere?

As a guy in tech, I have it good. But I have never forgotten how, back in the day, being a nerd among normal people sucked. That is part of why I work to end sexism in tech.

<comment><USER35> We all have different goals and limited amount of time. I will speak up in the case of injustice if it arises but it's not my duty to fight sexism, end world hunger, fight for peace or adopt Nigerian children.

<comment><USER14> As a guy, I think it _is_ my duty to fight sexism, because I have benefited from it.

But even given what you say, it doesn't match with your earlier point. Saying that sexism isn't news is to suggest that not only do you not want to talk about it, but that we shouldn't either.

</comment></comment></comment></comment><comment><USER36> Really well-written article. Thanks for sharing.

</comment><comment><USER37> I find this Scalzi piece a useful point of reflection:

[http://whatever.scalzi.com/2012/05/15/straight-white-male- th...](http://whatever.scalzi.com/2012/05/15/straight-white-male-the-lowest- difficulty-setting-there-is/)

<comment><USER15> That's what we need, another article that treats all members of <class> as piece of a homogenous whole.

</comment></comment><comment><USER38> I'm beginning to wonder if this is actually universal. I've lived and worked pretty much all my life in India, and something like what the OP describes would be pretty much unthinkable there.

Disclaimer: I grew up in urban and small-town India, in a lower middle-class and middle-class environment. I have no first-hand knowledge of how it is in rural scools. Also, anecdotal evidence, so feel free to take it all with heavy dpo

Math and the sciences in school: Every memory of school I have has girls and boys in equal measure doing well in math and science. The teachers's pets are all the kids who do well in class, the well-behaved ones who were focused on studying. In our early teens though, you could actually see the girls doing better than the boys in every subject. This pattern continued through college as well. Most guys handled this situation by relying on their female classmates for notes and help with schoolwork. I did the same.

College: My engineering class had something like a 40% female to 60% male ratio. This varied by specialization. The mechanical engineering department had a grand total of 3 female students and a 100 male students. (This was because Mechanical Engineering was perceived as something physically demanding, and the jobs involved factory floors in far-flung remote towns and villages.) The computer science department had somewhat more than a 50% female student ratio. On the whole, apart from the Mechanical Engineering department, every department was hovering around a equal distribution of females and males. Note that this was not deliberate on the part of the administration. Engineering school admissions in India are purely a function of score in State-level and National-level entrance exams. For that matter, the faculty was also a fairly even mix of male and female teachers.

From the OP's post : "At an old job, someone in authority pats me on the head to dismiss an argument I'm making about something at work." In an Indian setting, this would be near impossible because Indian culture is terribly touchy about men touching women in general. So the condescension would probably be expressed in some other manner, possibly verbal.

Plus, with close to half the employees being female, there's never really a sense of female co-workers as a minority in the workspace. And even in the few all-male teams I've been a part of, most of the men have spouses or sisters who work in tech. This means that no one thinks of male techies as the norm over female techies.

Conferences: Just like the workplaces, there's a good mix of men and women at these. And alcohol is hardly ever an issue because no one serves alcohol at these events in India, not even beer. It's a bit of a social taboo.

Another thing to note is that in India, engineering, and specifically, software, is something of an aspirational field. It's considered one of the most desirable careers, and everyone wants in.

</comment><comment><USER39> I had a job where people were really mean to me too. It was like constant, never ending pressure! One time I got fired, cause my boss didn't like me, although he wouldn't say it to my face. That really hurt.

</comment><comment><USER12> Overdramatic paranoia. Get over yourself.</comment>


Show HN: Watchdog - PHP tool to monitor and compile Stylus, SASS, and LESS - <AUTHOR> https://github.com/cballou/Watchdog

<comment><AUTHOR> I built this command line tool because I needed an easy way to work with our frontend devs who run either Ruby or nodejs envs.

Watchdog is a PHP class implementing inotify which watches for changes to files in any given number of directories specified in the input. It will not recursively check directories, so you must implicitly specify each directory you want watched.

Although it was developed for the purpose of monitoring dynamic css files for changes and auto-regenerating their output, it can easily be transformed into a watchdog for just about anything.</comment>


Krugman on the current economic mess: It's Reagan's Fault - <AUTHOR> http://www.nytimes.com/2009/06/01/opinion/01krugman.html?em

<comment><USER2> Why does it matter if there is growing inequality if everyone comes out better? I'm so sick of this line of thought. Bill Gates having $50 Billion dollars does not make any poor person worse off. In fact it is quite to the contrary - the services that Bill Gates makes money off of makes poor people better off by improving the production of goods and therefore lowering the costs for basic necessities.</comment>


Amazon will stop taking orders from Dash buttons at the end of August - <AUTHOR> https://www.theverge.com/2019/8/1/20750814/amazon-dash-buttons-discontinued-orders-august-31st <comment><USER2> RIP</comment>


Creative Mornings with Ben Chestnut, CEO of Mailchimp - <AUTHOR> http://vimeo.com/34081566

<comment><AUTHOR> just stumbled upon this through their yearly report (<http://mailchimp.com/2012>, discussion: <http://news.ycombinator.com/item?id=5060552>) and thought I'd share this, since it is one of the funniest and inspiring talks I'v seen. Should easily be in every aspiring entrepreneurs must see list of talks.</comment>