When did we stop caring about memory management? - <AUTHOR> http://www.hanselman.com/blog/WhenDidWeStopCaringAboutMemoryManagement.aspx <comment><USER3> I think this quote summarizes hackers today: ``[T]ime spent sweating memory is time you're not writing your app. The hard part is developing the experience is that you need to know when you need to care."

Not having to worry about memory is now a luxury we can afford in the age of plenty. While writing an efficient spellchecker would have been a great feat in the 80s, there's no point of that when you can load the whole dictionary file in memory.

In other words, memory management is a #highclassproblem for many developers-- you worry about efficiency once you have a lot of adoption. (Within reason; if your app is unbearably slow that isn't good.)

<comment><USER4> We also live in the age of plenty in regards to how many things we have running at the same time, or how many tabs there are open in a browser. Things can add up pretty quickly.

And why settle for "without optimizing it's slightly faster than things used to be when people had to optimize", when you can have "optimized, it's orders of magnitude faster than things used to be"?

> you worry about efficiency once you have a lot of adoption.

Sometimes things can be tricky to refactor if you didn't move carefully at every step. Initially not worrying about efficiency at all might mean having to rewrite from scratch once you do.

Of course, this can't be generalized. Sometimes it really, really doesn't matter, unless you care about craftsmanship as a value in and of itself -- taking 10-20% more time to write code that makes you happy and proud might very well make you _more_ effective in the long run.

<comment><USER5> If you can sell it as faster than the alternatives, it makes sense to optimize.

But in the web-focused marketplace, adding 6 months to your launch calendar to get something fast to market may mean someone else's good-enough solution becomes the entrenched, de-facto standard that you are now fighting to prove you're superior _enough_ to that it justifies people's time cost to move their data to your solution.

That's the risk tradeoff.

<comment><USER4> It really depends, avoiding some pitfalls isn't always that much more work, but merely requires knowing (and caring) about them in the first place.

<comment><USER6> It's easy to point out the places where you could've done a bit more optimization after the fact. And, yes, sometimes those optimizations don't cost an arm and a leg, but it's very easy to fall into the premature optimization mode that kills the product and the company. Not everybody has tons of funding in the bank. For some startups shipping a day later can put you in the death spiral trajectory. Timing is a huge factor in a startup success.

It's easy to think why not just do it right in the first place. Aside from the timing you, as a startup, don't really know what "it" is or "it" is constantly moving. Committing to perfection at that stage can be a sure way to kill the company. Even if "it" is known and it's not changing you still need to keep in mind the Gall's Law.

</comment></comment></comment></comment></comment><comment><USER7> To answer the headline, we stopped caring when a bunch of off-the-shelf solutions became available.

For a lot of problems, once you have this off-the-shelf solution, you're just not going to have a memory issue. It's like cooking without having to manage where the pots, pans, and plates are. Say you hire some guy to clean up for you, and the guy just implements some simple strategy. It's a lot more pleasant, and if you have a large enough kitchen, it won't make a difference to the quality (and timeliness) of the food. In some cases you may have to consider the guy running around, but most of the time you net win anyway.

For things that are truly performance sensitive, you still need to think about cache issues and such, and you definitely still care about memory management.

<comment><USER8> Complete agreement with the last sentence.

I can think of two projects in my past five years that really showed performance sensitivity. I knew that at design time so I chose to care about where data sat in memory and how it would behave in multilevel caches.

All other projects, couldn't care less where the kitchen dude stored my pots, and he never lost one.

None of those projects jumped from performance agnostic to performance sensitive overnight.

</comment></comment><comment><USER9> If your closet or garage increased in volume at the rate of Moore's law, you'd pay less attention to how you put stuff away.

<comment><USER10> Especially if you had a robot that would organize and cleanup your garage for you.

<comment><USER11> yc2017 anyone?

<comment><USER12> It'd be a cool idea to sell warehouse storage with drone delivery of individual items if needed, that way you dont need to care as much about how much you can fit into your apartment at any one time

</comment></comment></comment></comment><comment><USER13> This article conflates two separate issues: Automatic memory management, and Virtual Machine runtimes. People often make the mistake of thinking that some sort of garbage collection strategy (such as reference counting[1] collection (ARC) or tracing collectors) implies that you must be running in a VM (which typically employ some kind of JIT to achieve reasonable performance). This is not true - see Haskell, OCaml, SML, and Swift (for reference counting collection).

In my experience, many of the issues with debugging performance issues are not related to memory management, but understanding JIT heuristics which are moving targets (especially in the dynamically typed languages).

I think we need to collectively separate the idea of some kind of automated (or semi-automated) collection strategy, from a language level JITed Virtual Machine. You may have one without the other.

[1][https://www.cs.virginia.edu/~cs415/reading/bacon- garbage.pdf](https://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf)

<comment><USER14> I reread the article after seeing your post, and could not find where they made this conflation.

I've not worked on performance critical code running under a JIT, but have worked on performance critical code running under a GC, and having an intimate knowledge of memory can be vital to understanding the performance of your application.

<comment><USER13> The article divides programming languages into two groups: Those that require you to manage memory manually and those that rely on language level managed memory. However, the examples of the managed memory languages also rely on language level Virtual Machines and/or JITs (which are critical to achieving excellent performance in those respective languages). Then, the article points out that the people using these "garbage collected languages" (which are also JITed (in a VM likely)) tend to have problems debugging performance issues. If he's right, then the examples aren't making the case very convincingly because the realm of languages with garbage collection isn't divided granularly enough in his analysis. The result is attributing the problem to a common language feature that they all share, without acknowledging that they also all share other very important features.

I'd never claim that understanding memory usage/allocation/freeing isn't important. It's important to understand how memory is used whether that be understanding how your collector handles generations of memory in a GC'd language, or whether it be understanding how your programming patterns cause a waterfall of destructor chains in a manually managed language. Often, understanding these things is difficult.

My claim was that, in my experience, the _biggest_ difficulties in debugging performance were in understanding JIT heuristics in language level Virtual Machines. This is because (especially in dynamic languages) the heuristics aren't documented anywhere, they're subject to change, and are likely not consistent between particular runtimes you're hosted within. (Those optimizations you made just for V8, could even _hurt_ perf if you run your library in JSC).

There's also the issue with language level virtual machines in that they usually impose some system wide tax on many operations (a layer of indirection), so I could see the people mentioned in the article having a hard time squeezing out that last portion of performance due to that indirection - again, that might be the fault of there being a language level Virtual Machine - and not necessarily as much related to memory (it depends on your application, and amount you allocate, of course).

In my experience, optimizing collection behavior has been relatively straightforward in comparison and the techniques you learn for one collector seem to translate to others. Perhaps my experience is biased towards JIT/VM/GC in dynamic languages where the JITs are so much more complex in comparison.

I have seen core hot paths in critical client side JS libraries be slowed down 9x because of obscure JIT deopts caused by properties names beginning with a dollar sign. I'm not just talking about a 9x slowdown of field lookups - <USER2> entire end to end benchmarks tanked (since fixed). Perhaps the VM architects decided that something with a leading dollar sign would not likely benefit from being made into a hidden JIT class? I've never had anything so obscure happen with any kind of garbage collection, whether that be reference counted ARC, or a tracing collector. Edit: spelling

</comment></comment></comment><comment><USER15> This article has a hint of "C-style memory management is good for you"—implying that you might want to write in something like JS and then go back and write in C++ in order to "tighten the screws". I think that's wrong—by and large, it's been a very good thing that people have stopped caring about memory management in production. That's because correct C-style memory management never† scales up to large software projects in a way that doesn't result in crashes and, worse, vulnerabilities.

So, yes, we've traded performance for automatic memory management. But we've gained reliability, safety, and security. For the vast majority of server-side apps, that's a worthwhile trade.

† Unless you use the processes like NASA and the like use, which for most apps are infeasible from a cost point of view.

<comment><USER16> _Unless you use the processes like NASA and the like use, which for most apps are infeasible from a cost point of view._

LOL. I have to ask: do you "know" this from experience or someone else told you?

Thousands of applications were made not so long ago with manual memory management. Many of them are still the most used desktop apps in the world.

Methods to secure them are not rocket science, really. I would gladly concede it's cheaper to do CRUD apps with GC, but you're going hyperbolic with NASA ;-)

<comment><USER17> >Thousands of applications were made not so long ago with manual memory management.

And pretty much all of them are unreliable garbage that we as an industry should have been too embarrassed to ship.

<comment><USER16> _And pretty much all of them are unreliable garbage..._

So you have experienced thousands of unreliable garbage apps. I feel really sorry for you. My experience has been the opposite: lots of wonderful and reliable programs. And when I found one that wasn't good, I stopped using it and replaced it with a better one.

I mean as a user. As a programmer I've seen all kind of programs, from "critical mission" to "quick hack" and from excelent to unreliable garbage. And you know what? It's not language features but ludicrous incompetence what makes an app unreliable garbage. There are programmers out there that can make unreliable garbage in any language.

The "secret" to make some app reliable is not reserved to NASA and the like. Follow two simple patterns:

1\. For every user action, validate input, try executing the code, catch the occasional exception and show an error message.

2\. For every resource, allocate, try{ using it } finally { release it }

Put each of these skeletons in a function or method, so the resource is a local variable (no colateral effects) and it's easy to debug.

That's all. Well, also: don't be too "creative" unless you know what you're doing (most times you don't).

I'm fifty-something, spent a lot of painful time mechanically applying that recipes to rotten codebases, and when I read the kind of criticisms you made I assume they come from people too young to have real world experience on what they're criticizing. The alternative is worse: to be the kind of people that created that rot and then blamed the language.

Just in case: I don't believe that manual memory languages are "better". I love Python and (most of the time) JavaScript.

<comment><USER15> > I read the kind of criticisms you made I assume they come from people too > young to have real world experience on what they're criticizing.

Actually, every single year I've worked on security-critical software I've understood more and more how impossible it is to secure large C and C++ codebases worked on by large teams with just "careful coding". The picture changes a lot when you have people actively searching for vulnerabilities.

<comment><USER16> Please, reread carefully your initial comment and the one by prodigal_erik (the two comments I've answered to in this thread) and you will see that you've made a gross generalization, while now you're narrowing the field you meant to apply your words.

Do you believe that security software or browsers are better writen in other languages than C/C++? I won't dispute that, even if I'd have some questions about relative merits. Please think of some well known Perl and PHP applications and their security record.

Anyway the unqualified:

 _That 's because correct C-style memory management never† scales up to large software projects in a way that doesn't result in crashes and, worse, vulnerabilities._

... and talking about manual memory management in general...

 _And pretty much all of them are unreliable garbage that we as an industry should have been too embarrassed to ship._

... are simply not true. Worse, they're insulting for everyone who has worked in this kind of application.

<comment><USER15> > Do you believe that security software or browsers are better writen in other > languages than C/C++?

Yes. And lots and lots of apps (most public network facing things) are security sensitive.

> Please think of some well known Perl and PHP applications and their security > record.

Nobody is saying that "memory safe == no vulnerabilities". I do think it's true that being memory unsafe results in _many more_ vulnerabilities. I've measured this precise statistic in our bug tracker.

> That's because correct C-style memory management never† scales up to large > software projects in a way that doesn't result in crashes and, worse, > vulnerabilities.

It's true. And I work in native code myself!

It's only an insult if you presuppose that introducing vulnerabilities reflects badly on the programmer who introduced them. I don't believe that; most major vulnerabilities I've seen were introduced by very good programmers. It's a problem with the tools they're working with.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Needing to think memory management turned out be a bit un-expected you might say. There were a few things that went well and few that were a bit unexpected.

Things that went well:

1) RAM got ridiculously cheap: 2x 8GB is now what $60-70? So it would seem, in that regard, yeah you shouldn't care about memory.

2) GC languages and runtimes. Believe or not there was heavy skepticism that GC runtime could be ever be a serious strategy in practice. It was an exotic technology that many thought would left for academia and fringe research area. But most popular frameworks and languages today are GC based.

Some things were a bit un-expected:

1) Memory access speed is fast but it didn't keep up with CPU speed. A cache miss will costs hundreds of nanoseconds. CPU speeds may have been doubling every 2 years or so, but memory access speeds have only been increasing by 10-20% or so.

In the 80s and 90s you just didn't care as much about cache hits and misses. But those are the forefront of performance optimization strategies. "Align your struct members","use structs of arrays instead of arrays of structs","think about cache lines and strides when you loop through your data arrays..." etc.

And because CPU speeds go so much faster, memory access also stands out on performance charts. So GC languages and runtimes can still seems slow and sluggish for applications that don't pay attention to memory.

2) Applications got more concurrent and servers are expected to handle a larger number of clients / connections / requests. That means each one needs a context, so it needs memory. So memory is again at the forefront. Accessing it and its latency, GC pause times are important.

3) Mobile happened. Mobile devices have proliferated so the needs for fast, small footprint applications never went away. Even as there are serves witih terabytes of RAM around, there are even more little arm cores and then everyone talks about IoT. That means langauges/runtimes which compile ahead of time will never be 100% displaced. Heck even on Android, ART (AoT copiling) is replacing JIT.

<comment><USER19> _Align your struct members_

On modern CPUs, cache misses take so long and unaligned access is nearly free in comparison, so that padding can become detrimental. Of course ordering members so that they're all aligned is the best option, but if that can't be done, it's better to have misaligned and pack more in the same space than leave wasted padding.

<comment><USER20> The results of unaligned access can vary greatly, even among the x86 family. You can hit a large performance penalty if one of your fields straddles a cache line boundary, and $deity forbid you cross a page boundary on a Core2.

Under the right circumstances packed structs can improve performance, but they come with a lot of technical debt since they can cause sporadic extreme slowdowns on certain common CPUs, and performance problems, aborts, or even data corruption on non-x86 platforms.

</comment></comment></comment><comment><USER21> Memory management still matters but by how much differs based on your specifications. Are you programming for a microcontroller? For a low end VPS? For a low-volume high-turnover web app? Do you have a deadline? How many people should be able to come up to speed and contribute to your codebase?

The author's example is interesting. He talks about a webserver that after optimizations can reach 1.2 million requests per second. In reality though, your gigabit ethernet interface can't handle that much anyway.

</comment><comment><USER22> As I sit here on Sunday afternoon, trying to get a Phaser game to run on an iPad 2; I read this and think "We haven't stopped caring, we care when it's a specified business requirement".

This bites us in the ass, because I can't make Wistia (for example) stop eating all the memory on this thing with my app running next to it.

So, personally, I stopped caring when it was not a priority and didn't, on average, affect user experience. But; it was a mistake and I am watching memory/etc more and more these days. This is for various reasons (old hardware, more than one app on a page, growing amount of bundled media content, etc).

<comment><USER3> You've just reminded me of how much I hate iTunes and the CPU/memory hog it is... And the other app I'm forced to use, Xcode...

<comment><USER22> No warning, no error, mobile safari just kills the tab. It's not fun. Optimize images, optimize audio, stream audio, stream images, reduce text, pack text, pack everything. Repeat, repeat, repeat. Still crashes. How do people work with Apple stuff? I got a macbook and xcode, it lets me view logs/etc, but nothing helpful.

</comment></comment></comment><comment><USER23> C-style memory management is important to know about but in C++ land, RAII and C++11 features are here to help. Move semantics, use of containers, references etc. all mean many of these bugs are a thing of the past.

In addition, extra tools and profiling / static code analysis has helped me to write better code.

<comment><USER24> The language has gotten to a pretty nice place, but the ecosystem is nowhere near caught up. A lot of APIs still haven't even incorporated the idiom of passing const references, almost exclusively taking pointers to non-const and defining their own idiosyncratic ownership schemes. Qt4 is a good example: RAII of widgets is hazardous because windows/containers will delete their "children" (i.e. things that are under them in the widget hierarchy, not members), even if they're on the stack. This means that simply declaring local variables in the wrong order can cause a double delete. I encountered this in tutorial code on the Qt site, which kind of put me off choosing Qt for new projects.

<comment><USER23> This is very true. What did you use instead?

wxWidgets is the same - when a wxWindow gets deleted, it will remove its children in the view hierarchy, which are likely not children of it as data members. I think a lot of this comes from the fact that underneath native pointers are being used (eg handles on Windows) and widgets/controls are not necessarily going to be data members of a parent. It also means you can reparent widgets/controls to other GUI items at runtime. I do this (for example) when switching notebook pages to rehouse a GUI element in order to save RAM; I just assign it new data to display and it means less RAM usage and creation time for each notebook page.

For your own data controls, we can still ensure that they clean themselves up alright and safely, just use pointers for the GUI items. In some sense, the GUI toolkit takes care of deleting its own members, eg. wxWidgets will delete all of a parent wxWindow children at teardown, so it isn't a leak situation.

<comment><USER24> > This is very true. What did you use instead?

Since I was looking at it for hobby/educational projects, I basically decided to not do something with a GUI. I think I had also looked at wxWidgets and FLTK, hoping that one of them was cleaner and more modern; FLTK managed the "cleaner" part, at least. The last time I looked at C++ GUI libraries it seemed like JUCE was the most promising, but it also had a bit of weirdness (GPL license without linking exception, heavy bias toward audio applications).

</comment></comment></comment></comment><comment><USER25> I just don't understand why there aren't more languages using automatic reference counting as featured in modern Objective-C and Swift. ARC has very low overhead and predictable performance profile (no GC waking up to choke your app for hundreds of ms). I think it makes almost no sense to consider going back to manual memory management because of performance, not even in games. Unless you are writing for some quite limited embedded hardware.

<comment><USER26> Is ARC actually safe from memory leaks?

CMS GC doesn't choke your all for 100ms

<comment><USER27> No, you can still have memory leaks with ARC.

In practice, the GC Apple was using prior to ARC could collect cycles, but it consumed a nontrivial number of CPU cycles compared to ARC.

Apple's tools people seem to be unconvinced that GC is efficient enough for production use on slow CPUs.

</comment></comment></comment><comment><USER28> I never stopped caring. It just turns out it never really mattered for a large fraction of cases.

There's still plenty of cases where you absolutely do care: low level firmware, kernels, absolute performance, and high reliability. It's more a case of not worrying about it when there's much bigger risks in a project than having loose guarantees about allocation performance or fragmentation.

</comment><comment><USER29> Developping on smartphone and tablet makes you still caring a lot about memory management if you don't want your app to be killed by the os... I guess the question was asked to server side web developpers...

</comment><comment><USER4> > How useful is it to know about C-style memory management when you're a > front-end JavaScript Developer?

Try making your own particle engine and a simple game running at 60fps. I guess "avoiding GC" is only a very small subset of memory management, but if you're a noob like me, it surely will open your eyes about some things you would never have guessed could cause problems.

<comment><USER5> JavaScript is a brutally poor target for that application space though. It'd be better to target Unity and their web plugin; that's designed to be a game engine.

<comment><USER4> That's why you learn so much about more efficient JavaScript when you do it regardless.

</comment></comment></comment><comment><USER30> Some didn't stop caring about it. It's all about how much you care about performance, and whether you think no garbage collection is preferable (or not).

 _> How low should we go? How useful is it to know about C-style memory management when you're a front-end JavaScript Developer?_

There are things in between as well (such as RAII). That's about using it. Usefulness of knowing it is another thing. Someone will have to implement things on the lower level either way. I.e. garbage collector itself is going to manage memory after all.

</comment><comment><USER31> Enterprise applications moved to Java on purpose to lose the issues that memory management causes. In my last job I first came in contact with people who had never had to do any type of memory management, that was only 8 years ago (that guy probably has his PhD by now and will be Dr Coole...seriously). If you can stand the speed of GC languages then, there's a whole bunch of savings you get in development time and especially in support.

<comment><USER32> As a matter of fact GC is godsend when writing concurrent code - there is no ABA issue.

</comment></comment><comment><USER33> So many were wrong that by Moore's law we will have plentiful ram and inexpensive CPU to run bloated Java or C# programs. In 2016, desktop applications are still 99% C/C++ and fast mobile apps in C/C++/Object-C. Languages like Rust and leaner new languages with JIT that care more about resources like Go, Julia, Lua, Swift, PHP7, Hack or even newer iterations like C++14 are certainly good way to go.

<comment><USER15> 1\. I don't see any reason why Lua (presumably you mean LuaJIT?) and PHP 7 would be faster than Java or C#. The compilation techniques are the same, except that Java and C# have more mature JITs.

2\. Java and C# JITs perform many more optimizations than Go 6g/8g do.

3\. Objective-C message passing is a lot slower than method calls in Java and C#.

<comment><USER34> Not defending the grandparent's post, but LuaJIT _is_ actually faster than Java or C#. Hell, it's faster than raw C in certain cases because it can optimize better due to being a simpler language. Mike Pall is a god amongst man.

I think it's due to LuaJIT being one of the very few tracing JITs that are still in development, since they are notoriously difficult to write and maintain.

<comment><USER32> Tracing compiler might add a bit of performance in the naive cases where the developers don't know how the JIT optimizes.

If I care about performance I'd check the generated assembly and modify accordingly till I get decent result.

Baring that: do you have any reputable source claiming LuaJIT outperforms C#/java/C?

<comment><USER34> Unfortunately the Benchmarks Game seems to have removed LuaJIT in favor of Lua 5.3, but [https://stackoverflow.com/questions/2588071/is-luajit- really...](https://stackoverflow.com/questions/2588071/is-luajit-really- faster-than-every-other-jit-ed-dynamic-languages) mentions it as being an order of magnitude faster. I've seen it said multiple times that LuaJIT is the gold standard of JITing, but can't find very many concrete benchmarks anymore.

<comment><USER32> Anything saying 'order of magnitude' can't be taken seriously.

That would imply a horrid baseline in order to get it that fast. Merely I don't believe a tracing JIT would have a great impact in a real world scenario.

</comment></comment></comment></comment></comment></comment><comment><USER35> Having worked in the memory chip business for 10 years: It's cheap!! Hell, for a while, companies were dumping memories below cost.

I remember a Fry's newspaper ad that said something like: "$50 1GB DIMM, $0 after in-store discount. (Limit 2 per customer.)"

Kind of similar to the old (and possibly apocryphal) Sun Microsystems legend: Frustrated that too many domestic programmers were spoiled with ample CPU speeds, they hired a bunch of Russian programmers who dealt with the export restrictions on computing gear and thus had learned to write tight, elegant code.

</comment><comment><USER36> Since it is a web server we are talking about here, let's assume it is the backend space :)

I guess the answer is obvious: it is nice, but might not worth the effort. 1.2 million requests/s is pretty good, but in reality, you probably would still need 2-3 other hosts as a failsafe backups, let alone there are other factors, like memory constraint, in which case, less optimized solution might be just acceptable because it is sufficient. So under common usage cases, the need for scalability outweighs the urge to squash the maximum performance from a single machine.

<comment><USER37> Just to be clear kestrel benchmarks at 1.2 million requests per second. You'd need 10 of your servers to match 1 of theirs.

That kind of scalability difference does still matter.

<comment><USER36> Thanks for pointing that out. It did seem like that could make a difference by this metric alone in some scenario.

</comment></comment></comment><comment><USER38> Software growth is not keeping up with hardware growth.

My parents told me to "Clear your plate." That was because they lived through the depression. I remember writing code in assembler and 64k and feel the say way now. Programs I wrote in that space now take 64m and I think "What a waist".

</comment><comment><USER39> It seems to me that we have been doing this more and more as memory has gotten bigger and bigger, we care more and more about performance, and more and more people are writing more and more code that will be used for shorter and shorter times under tighter and tighter deadlines.

</comment><comment><USER40> When we got the wonderful blend of plentiful ram, inexpensive CPU and storage along with enough variety in languages and separation of architecture concerns that not everything you built had to care about memory.

</comment><comment><USER41> First with Smalltalk, then with Java, and eventually Objective-C as well.

</comment><comment><USER42> Premature optimization is. ..

<comment><USER43> .. is 50% chance to die by thousand paper cuts, 25% simply wasted time, AND 25% chance to avoid death by thousand paper cuts.

At least in image processing and robotics, from my experience.

It's very annoying when you have optimized all obvious hotspots 10x only to get 3x speedup because the remaining 30% code consistently abuses « simple ways », e.g. return big objects by value, use std::vector instead of proper Eigen arrays, constantly serialize objects everywhere, etc.</comment></comment>


Borat actor:Tech giants 'greatest propaganda machine in history' for hate groups - <AUTHOR> https://www.cnbc.com/2019/11/21/sacha-baron-cohen-rips-on-facebook-and-big-tech-for-sowing-hate.html <comment><USER2> I agree with what he's saying here. His suggestions for putting a delay on live streaming and regulating its enforcement is a crazy engineering problem. I don't think there's a way to do that that doesn't destroy live streaming. Where does the line get drawn? Would that effect Skype? What about WebRTC? Would the restrictions be tiered based off the size of your platform and it's reach? Maybe based on the size of the viewership of your stream it gets bumped into a category for delay and is moved into a queue for live content moderation. I think it's an important question to ask but I worry that the knee jerk reaction by people outside of technology is "make the internet more like TV" and that is not going to work out well.</comment>


Ask HN: What do billionaires do different than millionaires? - <AUTHOR>

Besides getting much luckier, is there anything else that can be controlled? <comment><USER2> This answer from two weeks ago was very enlightening on how billionaires think of money

[http://www.reddit.com/r/AskReddit/comments/2s9u0s/what_do_in...](http://www.reddit.com/r/AskReddit/comments/2s9u0s/what_do_insanely_wealthy_people_buy_that_ordinary/cnnmca8)

</comment><comment><USER3> Billionaires have enough money that they probably don't have to worry about money. Millionaires are mostly pretty ordinary people, except they own a house and have a job and a pension fund. Many of them are "asset rich, cash poor": they have to watch what they spend.

The average house price in London UK is $771,360, so lot of people own houses worth more than $1 million. The median house price in New York is $548,500, while "The median price paid in June for a new or existing single-family home or condo in San Francisco hit $1 million for the first time, according to a report released Wednesday by DataQuick." [http://www.sfgate.com/business/networth/article/1-million- ci...](http://www.sfgate.com/business/networth/article/1-million-city-S-F- median-home-price-hits-7-5626591.php)

You can become a millionaire by working hard at something and investing wisely, and a multi-millionaire if you're exceptionally good at your trade (or lucky). Becoming a billionaire looks a lot trickier, but I suspect you're less likely to do it while working for somebody else.

</comment><comment><USER4> I'd say the most important thing to do is to decouple your income from your time. You can easily become a millionaire with a reasonable paying job but to become a billionaire requires that you find ways to massively scale your income. There is an upper threshold on what you can make per hour and barring the most successful CEOs, it is likely impossible for you to be a billionaire by trading your time for money.

This is why finance is such a lucrative area. In finance you leverage money to make money as opposed to using your time to make money, property has a similar effect. Starting a company is another good option simply because you begin to make money by trading other people's time.

</comment><comment><USER5> Most people here, if not everyone, is probably unqualified to answer this question. Any answers given are likely to be speculation and best guesses. Take any answer you get with a grain of salt.

</comment><comment><USER6> I would guess wealthy or powerful connections matter a lot. Ideally if they are family, childhood friends etc.

I know that is a sucky answer but I am assuming you mean all billionaires not just the completely self made ones.

Also for most people making a few million is enough to solve the money problem. There may not be any further desire to get rich.

However if you do have that desire and it outweighs other psychological constraints (avoiding fear, pain, change etc.) and that desire can last decades then it is possible to get from well off to rich.

</comment><comment><USER7> Given the complexities and multiple models of wealth creation, I don't think a qualified separating control factor exists. Fun to think about however.

BTW - Bloomberg News has an entire page dedicated to Billionaire stories> [http://www.bloomberg.com/video/billionaires/?cmpid=billionai...](http://www.bloomberg.com/video/billionaires/?cmpid=billionaires728x90)

</comment><comment><USER8> On a side note, I met a couple today who decided to go to the super bowl, and claimed that they were dropping $3k per ticket, not including air-fare and hotel. They didn't want to have nose-bleed tickets, but they didn't need to be front row with the VIPs. What kind of income do you generally suppose someone would have to make to afford that kind of expenditure?

<comment><USER4> I'd say its more about living within your means and having the motivation to spend on what you decide matters. Although if they splurge on activities like that on a regular basis it would be an entirely different story.

At 23, I was making sub 6 figures and bought a ~$3000 plane ticket at the last minute to visit some friends around the Mediterranean.

</comment></comment><comment><USER9> The market they're in.

Playing follow the leader is rarely a way to make a lot of money.

<comment><USER4> The first part is absolutely true, the second line sounds like something directly from Peter Thiel.

While there's wisdom in his idea of finding green pastures and being a pioneer, its actually not the best way to become a billionaire. Picking the right industry is a far better strategy.

If you look, something like 25% of newly minted billionaires made it there via investments (i.e. finance) while another large chunk got there via real estate. Neither of which requires much in the way of being a trail blazer, just hard work and competence.

<comment><USER10> 3 of the top 10 billionaires are from the Walton family, so another good way is to inherit it.

I say that to suggest that you have a strong bias error.

[http://selectusa.commerce.gov/industry- snapshots/financial-s...](http://selectusa.commerce.gov/industry- snapshots/financial-services-industry-united-states) says there are 5.87 million in the 'financial services and insurance sectors' in the US. There are under 2,000 billionaires in the word, so at most 500 "newly minted" billionaires who made it there via investments.

It's impossible that a lack of "hard work and competence" is the reason that the remaining 5.87 million failed to become billionaires.

<comment><USER4> I wouldn't say my bias is so strong, more that you're allowing labor statistics to water down what would be meaningful paths to being a billionaire via the finance industry.

To your point: A large majority of the tech billionaires have software backgrounds yet only ~30% of the IT industry are programmers. So while the IT industry may look like a better place than finance, its really programming that looks better, not IT.

<comment><USER10> I was suggesting that "just hard work and competence" was insufficient to explain the reason for success.

FWIW, assuming that "newly minted" means "within the last year", only 3 of the 27 listed at [http://www.forbes.com/special- report/2014/billionaires/newco...](http://www.forbes.com/special- report/2014/billionaires/newcomers.html) come from the investment industry. 5 come from the entertainment industry.

<comment><USER4> I must have misread a headline at some point because the number of finance billionaires is smaller than I thought. Having said that, of the 268 listed by forbes, 15 were in finance.

[http://www.forbes.com/sites/alexmorrell/2014/03/06/worlds- bi...](http://www.forbes.com/sites/alexmorrell/2014/03/06/worlds-billionaires- newcomers-the-full-list-of-268/)

Anyway, I'd certainly agree that "hard work and competence" is an understatement but one of the luxuries of being in finance is that your entire career is built around making money from money. This affords a much more systematic approach to being a billionaire than you might find in other industries.</comment></comment></comment></comment></comment></comment>


Should I use delegated or native comments for my niche community site? - <AUTHOR>

I'm building a MEAN-stack reddit/HN clone as a fun side project and toy. Although its value is primarily its educational benefit for me, I'd like to build it out and go through all the steps of a proper deployment to learn more about production and get experience with stuff like analytics, ads, etc.
I'm adding authentication right now and, facing the O-Auth question, wondering if I should go with delegated comments via Facebook or Disqus, or stick with my native system.
Since this is a side project (I'm a writer in a tech-ish field) I don't have much time for moderation. My biggest fear is that, left (relatively) untended, my small community site will be overrun by spambots and trolls.
A delegated system doesn't completely forestall this, but it does offer its own spam tools and (in the case of FB especially) a persistent user identity that might discourage trolling. On the other hand, I could do more with a native system, and if it turned out to be possible, I'd love to add my own simple spam/hatespeech detection as another learning exercise.
Does anyone have experience with a similar side project? Or are there any moderators who might have insight into the system? <comment><USER2> Worrying about spambots and trolls is basically a premature optimization. You call this a niche site but some how it is going to be popular enough spambots and trolls will want to come. If it is truly a niche site then popularity will by definition be limited. So which is it, niche or hugely popular?

Even if it is a non-niche site, your assuming it will be popular with trolls/spambots. So as you can see your worrying about a problem you may never have. However, you are wise to think about it and be ready.

Since you said you want this to be a learning experience, go ahead and write your own commenting system. It will teach you a lot. Put up some small barriers to prevent spam. Captcha, email verification, SMS verification, etc. These are all pretty easy to do and there are services that will help you out.

Lastly, if it does become a troll hole then be prepared to migrate your data. I would say put off writing any migration scripts, but maybe look at the comment services and see how you can import comments. I've done this before on Disqus and it is not too hard.

<comment><USER2> On the flipside if you don't want to learn and want to just finish the project fast, comment services are pretty nifty. But definitely don't just choose the service over spam concerns alone.

</comment></comment><comment><USER3> Don't worry about spam bots. One of my websites has more than 2500 visitors daily and I am still waiting for the first spam comment. Spammers don't search pages by hand. Their programs look for "footprints" of the usual software (ie Wordpress) and try to automatically add comments. If you build your own commenting system from scratch and use the good practice for building (preventing XSS..), you are ok.

Or put it this way, if your website becomes so popular, that spammers will customize their programs to try to automatically post on your page, you have bigger problems :)

<comment><USER4> I run [http://blogspam.net/](http://blogspam.net/) which does real-time spam blocking for forums/blogs/etc. On the whole you're correct, spammers go for easy targets.

But I started the project when a custom CMS of mine (more or less) started getting added to the spammer-lists. It seems like it's only a matter of time these days until people find your site and submit 10-500 comments a day. Some I can see are clearly bots, or compromised IPs, others are clearly humans (presumably paid very cheaply).

<comment><USER3> Did you have auto-aprove comments? AA is a spammers heaven, and they will walk the extra mile if they find that kind of a CMS. Even if you have no-follow links. Very nice initiative for the spam-fight though. How high is your success rate? Do you use any blueprints for spun comments?

<comment><USER4> I'm not sure what you mean by "auto-approve" \- There are plugins for things like wordpress which will junk comments automatically, solely on the result of the test, but others are more fine-grained. (The API does allow whitelisting/blacklisting by IP, etc.)

The success rate is pretty fluid but about 80% of comments submitted were judged to be spam today. Whether there are too many false negatives/positives is hard for me to say ..

<comment><USER3> Auto-approve - comments in blog show up immediately without moderation or approval.

Good luck with fighting spam. There are never enough of you!

</comment></comment></comment></comment></comment><comment><USER5> IMHO, I believe you need to align your expectations about value you wanna extract from the comment section.

Do you want spread the content or you want to enrich the content? It's very important to know.

I can see you already accepted the challenge to build the thing from nothing. What worries you seems the hard and must-do decision, because if you chose a delegated system you will have a big problems to migrate the content generated through the comments.

If you want just spread the content, go with the delegated systems, FB for e.g.

If you want to create value, build your system, it will give you space to explore possibilities that underlies out of your sight.

<comment><AUTHOR> I think I understand what you mean about native comments allowing me to do more to enrich their content, but I'm curious about what you mean by "spread?"

Could you elaborate?

<comment><USER5> What I mean about "spread"... You can use facebook comments, genius annotations or even ask for comments in leaderboards platforms like reddit or HN.

Thinking about delegated systems I can only see two purposes: a) Make your project/content be acknowledged by the people (Spread by piggybacking) or b) Cut off engineering resources regarding to the lack of value created through those comments.

At some point, we need to decide if the comments are a value to keep or to trade.

</comment></comment></comment><comment><USER6> I would make your own one. Worst case is you learn from making it, then switch over to another commenting system.

I think that making one will also give you more of an insight into how the delegated ones work - that can't be a bad thing!

<comment><USER4> You could compromise and setup your own external site.

e.g. I wrote [https://github.com/skx/e-comments/](https://github.com/skx/e-comments/) for a static-site that wanted comments. You could use something like that, then later bring it into the main app/site as required. The value here is that you own the data, not disqus, etc.</comment></comment>


Shareaholic on the Future of Content Discovery, Big Data, & the Social Graph - <AUTHOR> http://www.xconomy.com/boston/2012/07/16/shareaholics-jay-meattle-on-the-future-of-content-discovery-the-social-graph/

<comment><USER2> "How many companies can boast of a 1:25,000,000 employee to user-base ratio?"

<comment><USER3> Wow, that is incredible. Cant wait to see what these guys come out with next :)</comment></comment>


Shocking upset power of strategic voting - <AUTHOR> https://www.expii.com/solve/8/1 <comment><USER2> Interesting. I believe that with Ranked-Choice Voting Williams would be the winner because only the top 2 with #1 ranking would be considered and then the #2 ranking from the 15% group would be split between them, giving Williams the win with 60% votes. With FPTP, Williams would also be the winner.

With approval voting, assuming they all pick only 2 (as picking 3 would mean everyone gets 100%, and this post already assumes some "perfect voting" anyway), Jones would also be the winner (just like in that post) with points from 100% of the voters. Williams would be voted by 60% of the voters and Smith would be voted by 40% of the voters.

<comment><AUTHOR> Correct! The fact that this breaks Ranked-Choice Voting is another reason why this is an interesting example. If the each camp in the population were to sit down and think what they'd prefer, the outcome would be in favor of Jones. So, even if they were using Ranked-Choice voting, Camp 2 would strategically vote, putting their favorite at the bottom, so that they end up better off overall.

Actually, Jones is what is known as the Condorcet winner in this election. :)

<comment><USER2> I'm trying to understand what's the difference between approval voting and this, though. Does this have any advantage over approval voting?

Both systems seem to push the "overall most liked" candidate, but approval voting has no artificial ranking other than "who has the most points", while this one does. Although this one isn't as restrictive as RCV, which says "you have to pick the top 2 before anything gets counted", which only makes it closer to FPTP (even though it should be better than FPTP in some situations).

</comment></comment></comment><comment><AUTHOR> Hi there!

This week problem features a very surprising voting paradox, which is directly relevant to next week's primaries in the USA. It's a mathematical logic puzzle, designed to stun with the enormous power of strategic voting. It's also a public service announcement which is independently useful for informing the public (just in time for the primaries) that it may not always be ideal to vote for your favorite candidate. We designed it in a bite-sized (mobile) and shareable format so that it could get the point across to as many people as quickly as possible!</comment>


Ancient yet Cosmopolitan - <AUTHOR> https://aeon.co/essays/the-modern-human-mind-evolved-further-and-farther-back <comment> c-smile > And you have to go back only 2,000 years to find the most recent common > ancestor of everyone alive on Earth today.

I suspect that 2000 is a bit optimistic, no?

But "never overestimate power of exponent" so asking.

<comment><USER2> Yeah, unless I am missing something, this is way off: both Y-chromosomal Adam and Mitochondrial Eve are estimated to be from >> 100K years ago.

> As of 2013, estimates for the age Y-MRCA are subject to substantial > uncertainty, with a wide range of times from 180,000 to 580,000 years ago > (with an estimated age of between 120,000 and 156,000 years ago, roughly > consistent with the estimate for mt-MRCA.)

* [https://en.wikipedia.org/wiki/Y-chromosomal_Adam](https://en.wikipedia.org/wiki/Y-chromosomal_Adam)

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

[EDIT] Apparently I misunderstood how things work. mt-Eve is not necessarily the MRCA for all living humans:

[https://en.wikipedia.org/wiki/Mitochondrial_Eve#Not_the_most...](https://en.wikipedia.org/wiki/Mitochondrial_Eve#Not_the_most_recent_ancestor_shared_by_all_humans)

This paper from 2004 uses Monte Carlo simulation to estimate that the MRCA for all humans may have occurred in the last 5K years:

[https://www.nature.com/articles/nature02842](https://www.nature.com/articles/nature02842)

This Wikipedia article explains how that might be the case:

[https://en.wikipedia.org/wiki/Most_recent_common_ancestor#TM...](https://en.wikipedia.org/wiki/Most_recent_common_ancestor#TMRCA_of_all_living_humans)</comment></comment>


Skynet Becomes Aware, Launches Nuclear Attack On Humanity - <AUTHOR> http://singularityhub.com/2011/04/19/skynet-becomes-aware-launches-nuclear-attack-on-humanity/

<comment><USER2> And here I am on ycombinator.com. I guess it's the little things that gets one through the final day(s).

</comment><comment><USER3> As with most vaporware, this date keeps getting pushed off. It was originally scheduled for 1997.

</comment><comment><USER4> Release dates are never met...we have 3 months, minimum, before we have to worry.

</comment><comment><USER5> I'm sure something will happen and the date will be pushed a little further.</comment>


Perkeep: A Personal Storage and Pesos Tool - <AUTHOR> https://github.com/perkeep/perkeep <comment><AUTHOR> > PESOS is an acronym/abbreviation for Publish Elsewhere, Syndicate (to your) > Own Site [0]

I've been taking a quick look at backup tools and ran into perkeep. I think the idea of PESOS is quite intersting and something I've not really considered before.

[0]: [https://indieweb.org/PESOS](https://indieweb.org/PESOS)</comment>


Show HN: Umwelt, your Android phone as a smartlock for Windows 10 - <AUTHOR> https://www.gadgetish.com/ <comment><AUTHOR> Hi, I made this.

This is a program (for Windows 10) and an app (for Android) that allows automatic log in/lock on a Windows PC. It works either automatically (by measuring the strength of Bluetooth signal) or manually (taping the fingerprint reader or the screen).

Also, it has an "anti-theft" feature. If you are at a cafe and walk away from your computer it sends you a warning if someone closes the lid, trying to steal it.

I believe this is very useful in some environments where it can be hard to demand staff to implement proper security behavior (e.g: receptionists in medical offices).

Last, it also has a "reading on the laptop" trick. If you have the phone close to the computer it blocks the screen saver. This is meant to be used when you are reading from the computer screen and don't want to move the mouse or tap the keyboard to block the screen saver.

Now answering the classic question on HN: "how does it compare to X"? If by X you mean one of the following:

* Dynamic Locking: this only locks when you are away, doesn't do login and the other features. Also, you can't configure how far away you are.

* Companion Device Framework: this seems to be stale. Their pages on github and Microsoft haven't been updated for more than a year. However the security protocol architecture I implemented is very similar.

* Windows Hello: my solution doesn't require you to have a Microsoft account (a big issue when dealing with sensitive information outside the US) or to have a web cam on the computer.

* Samsung Flow and Motorola Moto Key: these are specific for some Samsung and Motorola phones. Also, my program has more features (auto log in, strength configuration, anti-theft,etc)

</comment><comment><USER2> I would suggest you change the name. Sounds very strange to me, and I could easily forget about finding it in the future.

<comment><AUTHOR> Frankly, I am not very happy with it too. It is a concept from biology, designates the specific sensitive skills that each species has to detect their environment. I guess I just went over-nerd with it.

I tried to find a more meaningful name but all I got were too obvious, too lame: PC-Locker, etc.

I am open to suggestions.</comment></comment>


Outdated payment protocols expose customers and merchants - <AUTHOR> https://srlabs.de/pos-vulns/ <comment><USER2> Well that article was completely devoid of information.

Here's the post by the researchers themselves: [https://srlabs.de/pos- vulns/](https://srlabs.de/pos-vulns/)

tldr: POS card readers have poor security - their HSMs leak their keys, and many of them don't have unique keys so you can impersonate them

<comment><USER3> The guys have also done a presentation on this in Hamburg a couple of days ago: [https://events.ccc.de/congress/2015/Fahrplan/events/7368.htm...](https://events.ccc.de/congress/2015/Fahrplan/events/7368.html)

Cannot find a recording yet

<comment><USER4> Recording is here: [https://streaming.media.ccc.de/32c3/relive/7368/](https://streaming.media.ccc.de/32c3/relive/7368/)

But warning! This is pure stream dump, don't expect high quality yet.

<comment><USER3> Official recording is out now: [https://media.ccc.de/v/32c3-7368-shopshifting#video](https://media.ccc.de/v/32c3-7368-shopshifting#video)

</comment></comment></comment></comment><comment><USER5> It's not my job to defend the payments industry - I think it's full of dinosaurs putting out bad code slowly - but I will say that the flaws here are not universal.

I've worked on the security systems for some reader/terminal devices that contain their own master keys in wipe-on-tamper memory, and use various key- derivation techniques to derive (and then immediately discard) per- transactions keys to protect transaction information, PINs etc.

So it's not all as bad as this. However things like ISO-8583, better described as a protocol family or meta-specification than a single protocol, probably are rife with poor implementation choices.

</comment><comment><USER6> The official release is out now:

[https://media.ccc.de/v/32c3-7368-shopshifting#video](https://media.ccc.de/v/32c3-7368-shopshifting#video)

</comment><comment><USER7> The raw stream dump from the CCC talk is available at [https://streaming.media.ccc.de/32c3/relive/7368/](https://streaming.media.ccc.de/32c3/relive/7368/)

You should jump to 17:45 in that video for the start of the talk.</comment>


Win8 upgrades failing - payment processor to blame? - <AUTHOR> http://answers.microsoft.com/en-us/windows/forum/windows_8-windows_install/initializing-checkout-failed-during-windows-8/ea653eed-e6a0-43cf-8066-d0304c1fe5e2

<comment><AUTHOR> I just went to upgrade to Windows 8 and was met with "initializing checkout failed".

<http://gyazo.com/71da564b10515155cd2b1136d0ab6464>

The thread above indicates that people can't call in either - MS and/or their payment processors seemed to be overwhelmed by volume. No doubt this may be spun as a "good thing", but 'selling out' would be a better headline than "no one could buy".

I'm flummoxed as to why one of the mega companies on the planet, with billions in revenue, and more than a year to prepare for a company-changing product rollout, can't accept payments for something on this scale.</comment>


Magic Mouse helps Apple double share of market in 8 weeks - <AUTHOR> http://www.appleinsider.com/articles/09/12/29/magic_mouse_helps_apple_double_share_of_market_in_8_weeks.html <comment><USER2> I've always wondered why Apple has been so focused for years on good product- development driven design in notebooks, software, keyboards, routers, MP3 players, phones, and a few other peripherals yet consistently built mice that every single living human despised.

I even went out of my way to check that thing out. While the shape is not sufficiently ergonomic for me to use on a long-term basis (it forces your hand into an uncomfortable shape rather than conforming to it like most modern mice) it's overall pretty nifty. Definitely a step in the right direction.

<comment><USER3> I bought the mouse if for no other reason that it duplicated most of my trackpad's functionality when I'm plugged into an external monitor. I'm exclusively a laptop user, so I've used nothing but trackpads for years, but plugging into a 30" screen requires me to push the laptop aside.

The magic mouse is suited more for very small hands. I don't have small hands. Given how little I'm plugged in it's tolerable though. This is their first mouse that I have actually chosen above other market options.

The only real show-stopper is the touch scrolling sensitivity. In applications such as InDesign and Photoshop (in full screen mode), there's a tendency to jump suddenly miles away on the viewing area from random touches.

<comment><USER2> Do you find that the two-fingered side swipe thing is a disaster to? I couldn't pull it off without simultaneously moving the mouse.

<comment><USER4> I think it takes some getting used to but with a touch of practice the swipe can be done easily. I am sure if you have a very slick surface though the mouse will move no matter what. I really like the mouse for it's scrolling. Especially the side to side movements and the weighted scroll. I dislike not having a middle click and the right and left click are dependent on one another. I need the right and left click to be independent for rocker gestures.

</comment></comment></comment></comment><comment><USER5> In other news: Carpal tunnel syndrome cases doubled in Apple users.

</comment><comment><USER6> This headline is deceiving, Apple doubled their share of the MOUSE market in 8 weeks

<comment><USER7> It was perfectly clear to me.</comment></comment>


Visualizing Realtime Bitcoin Transactions in ReactVR - <AUTHOR> https://bitcoin-vr.github.io/ <comment><USER2> Note that the transaction sizes, in most cases, do not represent amounts of money moving between parties. The reason for this is because of how Bitcoin transactions are structured. Suppose you have 5.0BTC at an address, and you want to send 0.1BTC to someone else. The transaction that gets recorded to the blockchain has an input of 5.0BTC, an output of 0.1BTC going to the recipient, and an output of 4.9BTC going to a "change address" which is also yours. But if you don't know anything about the addresses then there's no way to tell, by looking at the blockchain, which address is the recipient and which is the change.

(Also, the very biggest transactions represent exchanges and other deposit- holding institutions moving coins from new deposits to cold storage and from cold storage to their hot wallets to service withdrawals.)

<comment><USER3> Did not know this. Is there a technical reason it works like this? In Ethereum, for example, if you're sending 0.1 ETH, you will just send that amount (no change address).

<comment><USER2> It gives better anonymity that way. If unspent change went back to the same address, people would be more inclined to reuse the same address over time, which makes it easier for someone looking at the blockchain to identify who's paying who.

</comment></comment></comment><comment><USER4> Another classic, BitListen: [http://www.bitlisten.com/](http://www.bitlisten.com/)

<comment><USER5> And [https://realtimebitcoin.info](https://realtimebitcoin.info)

<comment><USER6> My personal favourite: [http://btc4me.com/bitcoin/bitcoin- traffic/](http://btc4me.com/bitcoin/bitcoin-traffic/)

<comment><USER7> My favorite:

[http://fiatleak.com/](http://fiatleak.com/)

</comment></comment></comment></comment><comment><USER8> Am I the only one that just sat there seeing BTC transactions of $1m+ and thinking "Damn, who's that guy?"

<comment><USER9> I noticed that and I have absolutely no idea how there are so many huge transactions. The peak of the drugs-from-the-internet era looked like child's play compared to this. The only rational explanations I can think of are either money laundering, institutional investors, or very wealthy people buying bitcoin as an insurance strategy.

I do feel bad for the people who are buying into the "digital gold" narrative at this point in time. I hope none of these big buyers are just regular joe's with sub-7-figure net worths who are just being irresponsible with their money due to the "hype"

<comment><USER10> The BTC market cap is nearly worth $300 billion, naturally there will be "large" transactions like that in something that big. Just Coinbase moving something to / from their cold storage is probably worth tens of millions in USD. And of course there's a lot of rich people and businesses that make larger transactions.

A million doesn't feel like that much money anymore for billionaires. That's like spending $1 if you've got $100 in your wallet.

<comment><USER11> > That's like spending $1 if you've got $100 in your wallet.

You are off by an order of magnitude.

<comment><USER9> Yep it's $1 to $1000

Furthermore I highly doubt that it's mostly billionaires with >$1m USD holdings of BTC. There simply aren't enough to sustain this level of transactions.

</comment></comment></comment></comment></comment><comment><AUTHOR> Hi! Robin and I built this as a side project to learn ReactVR and Redux. Bitcoin-VR uses pure client-side javascript to visualize Bitcoin transactions in Virtual Reality.

Please wait for some time for it to download as the assets are quite large!

The code is open source, and free for anyone to fork. We're also really new to web development, so we welcome all criticism and avenues where we can improve!

<comment><USER12> Nice! Is it easy in ReactVR to add a button for Google Cardboard 3D viewing on smartphones? I've played with Mozilla A-Frame and it provides this, curious if ReactVR does as well.

<comment><USER13> Yup! It shows up by default, IIRC.

It's a layer on top of WebVR, similar to A-Frame.

</comment></comment></comment><comment><USER14> I like the metaphor of BTC investments as just floating the quantity into the atmosphere via hot air balloon.

</comment><comment><USER15> This visualization is broken. I can't see the moon.

</comment><comment><USER16> Its says balloons<1BTC and blimps>1BTC....however that appears wrong, looks like it should be 100BTC as conditional.

<comment><AUTHOR> Oops!! Fixed it! Thanks for pointing it out to us

[https://github.com/bitcoin-vr/bitcoin-vr/pull/84](https://github.com/bitcoin- vr/bitcoin-vr/pull/84)

PS: We set the param of 1 BTC when we built the first version a few weeks ago. Then came the massive surge in transactions and prices... we had to change the info panels to accomodate a lot more digits (esp for the USD price). Kinda crazy how the parameters changed within such a short period of time

</comment></comment><comment><USER17> Nice, but I think fish would be more appropriate :) (Yes, I know a whale is not a fish)

<comment><USER18> Actually, you can call whales fish (it's not like there's a common ancestor of all fish of which whales aren't a descendent) they just also happen to be mammals.

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

</comment></comment><comment><USER19> Would be interesting to see some more data viz on the blimps. Are these individuals or funds - very curious

</comment><comment> no-such-address Visualizing: You keep using that word, I do not think it means what you think it means. VIS guy

<comment><USER20> Please don't post unsubstantive dismissals to HN. If you know more, please teach us by adding relevant information. If you don't want to do that, that's fine, but then it's better not to post.

Either way, please drop the swipes, and for bonus points we can leave out the internet clichés as well.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment><comment><USER21> >>Designed for Chrome or Safari.

I am pretty adamant that these days you gotta design for Edge as well.

<comment><USER22> Lol, why? Nobody uses Edge unless that's the only thing allowed.

<comment><USER23> I am reading this page on edge. I have also chrome on this computer and I have admin right so I could install Firefox too.

<comment><USER24> Firefox doesn't require admin rights to install fyi. It will install to your user environment, and not the system just fine.</comment></comment></comment></comment>


Revenue on Medium - <AUTHOR> https://medium.com/the-story/revenue-on-medium-5e7e6218f70c#.ibkwilzmu <comment><USER2> "Select" publishers, with no mention of plans for general availability?

Meet the New Media overlords, same as the Old Media overlords. Sure, anyone can throw something up on Medium. But only the blessed can get paid.

Also calling it now: special deals for certain publishers while the plebs get a lower pay rate. Of course if they made it based on popularity / page views then it will just encourage click-bait articles even more so it's a somewhat damned-if-you-do scenario.

<comment><USER3> > Of course if they made it based on popularity / page views then it will just > encourage click-bait articles even more so it's a somewhat damned-if-you-do > scenario.

I've spent some time thinking about this (but eventually chose to pursue a project where the biggest challenge was technical rather than the business model), and there's another consideration you don't mention:

The total value that a publisher gets from a platform like Medium does not grow proportionally with the publisher's size, only a fraction of the value does. Specifically, the technical work that Medium does to scale the website, and the exposure that popular publishers get from being featured on the Medium homepage, Editor's picks, etc. However, the more popular a publisher gets, the more the balance tips in favor of leaving Medium for something with lower marginal cost to the publisher, like self-hosting. (These also tend to offer the publisher significantly more control.) As a result, to keep popular publishers on the platform, Medium _has_ to lower their margins for them, whether by special deals or otherwise. This is the downside of Medium's platform having only a modest network effect: only modest network lock-in. (The upside was a minimal chicken-and-egg problem.)

\----

Also, re click-bait:

I think it's worth drawing attention to the fact that readers are discouraged from supporting publishers with one-time payments (it's presumably still technically possible by signing-up for and then immediately canceling a monthly membership). If most of a publisher's revenue is from recurring payments due to the loyalty of readers, rather than one-time payments like ad impressions or micropayments or a Reddit gold-equivalent, that helps mitigate the incentives favoring cheap click-bait.

</comment></comment><comment><USER4> "Publishers in the beta may create sponsored content on behalf of or in association with brands. For some publishers, Medium will provide paid opportunities to execute high-quality native campaigns on behalf of brands."

I guess this is what happens when we all block ads.

<comment><USER5> I think it's pretty naive to think this wouldn't happen if no one block ads.

</comment></comment><comment><USER6> Why would anyone publish specifically on Medium, if one can publish practically anywhere on the web (and reap the full benefits)? Is it because Medium provides discoverability? I can't believe that is true because for me HN provides better discoverability, and as a bonus it covers more than just Medium.

<comment><USER7> There's a lot of value in not having to worry about self-promotion.

I'm not saying medium is great at that - they should have implemented reddit- like discovery system, with ability to sort by top posts of a year/month/etc, transparent front page algorithm, and browsing tags you are following separately from subscriptions. But they still did a lot of things right.

A platform with already existing audience, and a convenient subscribe button can make a big difference in the number of people who follow your stuff.

Clean design and WYSIWYG editor are very valuable as well. I'm a programmer, I prefer to use org-mode and markdown for my writing, so it was surprising to me how much I enjoyed writing on medium.

Beautiful design and being able to immediately see how awesome your final article looks, is, unexpectedly, really inspiring and makes the process of writing more fun.

</comment></comment><comment><USER8> Long story short. Native advertising.

<comment><USER9> Long story short: Article blacklisting!

</comment></comment><comment><USER7> Awww, crap. I love medium, I really hoped they won't go with advertising, what a way to decrease the value and quality of the platform.

Member-supported publishing, on the other hand, sounds awesome. That's exactly what I think the modern web needs. A straightforward no-bullshit way to monetize quality content. If it's worth buying - people will buy it. The major obstacle was inconvenience, and medium could solve it.

If only they'd keep it to member-supported publishing, it would be fantastic. They might not have made as much money, but they'd keep their integrity and have gained a lot of good will.

But now, with sponsored content, I'm not so sure I want to stay on the platform.

</comment><comment><USER10> The monetization strategy reveals itself! I'm always intrigued by subscriptions to individual content producers.

<comment><USER11> Already successful with Patreon

</comment></comment><comment><USER12> Still no idea how this site works.

Is it meant to be a twitter feed for blog posts?

<comment><USER13> It's more of a blogging engine. Compare to Wordpress.com.

</comment></comment><comment><USER14> I thought there was finally a proven business model pioneered by blendle for these sorts of articles ([https://launch.blendle.com/](https://launch.blendle.com/)).

Automatically pay per article, but have it be trivially refundable (to discourage low quality/clickbait). Is it just not profitable enough? Do they not control a large enough platform?

</comment><comment><USER15> Paid content will undermine the credibility. It is one of the worst inventions in the web business!</comment>


C as a programming learning language - <AUTHOR> http://www.alejandrosegovia.net/2010/02/09/c-as-a-programming-learning-language/

<comment><USER2> That's how I felt when I was taught Java in CS 1-3. We used Emacs in the first quarter, then switched to Eclipse in the second. I found that Eclipse obfuscated the process--I was never really sure where files were and what was running--so I switched back to Emacs.

As for the language itself, everybody is always forgetting that languages aren't "imperative, functional, or object-oriented", they're imperative or functional, with the option to apply object orientation on top of them. It seems to me that many people put the cart before the horse, so concerned that we understand the concepts of classes and inheritance that they brush over the important stuff: the functions and the data.</comment>


What Linux distro are you using for your servers ? - <AUTHOR>

Just curious to see what the most popular linux os the ycombinator community is using to launch their sites. <comment><USER2> Usually debian, security patches are regular. Cons: packages can be a bit old.

<comment><USER3> Which might not be a problem for servers in most cases.

</comment></comment><comment><USER4> FreeBSD. (Ok, not a linux distribution, but it's an alternative to using a linux distribution.)

<comment><USER5> I would like to hear more about why you use it. I _used_ to use FreeBSD for everything, but it's my understanding that the once significant differences in performance and stability between Linux and BSD no longer amount to anything. I switched to Gentoo (can not give up source builds!) two years ago.

<comment><USER6> It typically has less to do with performance or stability than with ease of use. While Linux is piling on features, BSD focuses on clean design and quality of code and documentation. Linux is "do it now," BSD is "do it right."

<comment><USER5> I hate to press you on this point -- the wreckage of many a flame war has barely had time to grow moss -- but can you point to a specific feature? I assume you mean OS level features -- system calls and such.

<comment><USER6> I don't understand your question. Do you mean you want an aspect of FreeBSD that's easier to use?

<comment><USER5> Sure.

<comment><USER6> Hmm... well, BSD init is easier to use than SysV init. The ports system is also known for its simplicity. The source code is contained in a single CVS tree and the entire OS can be built with a few commands. The man pages and handbook are consistent and well written.

Much of the difference is subjective. FreeBSD feels coherently designed, whereas Linux is a patchwork of programs written by different people with different styles and philosophies.

I don't know a lot about Gentoo (most of my experience is with Debian and Slackware) but from what I understand, its purpose is to be as flexible as possible. That's a legitimate goal, but it seems to conflict with ease of use.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Ubuntu 6.06 LTS 64-bit. It is beyond me why so many people use non-LTS release of Ubuntu _on their production servers_.

<comment><USER8> What does LTS have to do with production? Unless you plan to leave your servers still for 7 years I don't see why you can't use the latest and greatest. It isn't as if LTS if the only one that gets patched, it just gets patched for the longest.

</comment></comment><comment><USER9> Debian Stable

</comment><comment><USER10> CentOS 4.4. (I'd upgrade to 5, but it's a huge pain on SliceHost at the moment.)

<comment><USER11> Why is it pain?

</comment></comment><comment><USER12> Amazon EC2 Ubuntu 7.10 gutsy AMI built using code customized by Eric Hammond <firstname.lastname@example.com> For more information: <http://ec2gutsy.notlong.com>

</comment><comment><USER13> Ubuntu 7.10 server

<comment><USER14> Same here. Easy to admin and stable.

</comment></comment><comment> patrickg-zill Solaris whenever I can, CentOS5 otherwise. Solaris has excellent threading and some apps I run for customers therefore run better on Solaris.

</comment><comment><USER15> Not linux.. FreeBSD

</comment><comment><USER16> Debian

</comment><comment><USER17> RHEL4, though the site's a few years old. Would do RHEL5 if it was today.

Personally, I run Debian. But RedHat really does a good of not breaking stuff at the cost of less frequent updates.

</comment><comment><USER18> Gentoo all the way.

<comment><USER19> You're Ezra Zygmuntowicz, right? (If not, sorry.) So why so little about Gentoo in "Deploying Rails applications"?

</comment></comment><comment><USER20> CentOs 5.0, for the easy Virtualmin GPL install

</comment><comment><USER21> rPath ( <http://www.rpath.com/corp/> ) with custom patches.

</comment><comment><USER22> I need reliability, with a bias on using source code to produce my running binaries.

Of course, I run NetBSD.

</comment><comment><USER23> Slackware

</comment><comment><USER24> I use FreeBSD (not GNU/Linux), Debian and Ubuntu on my servers.

</comment><comment><USER25> Gentoo on two, ArchLinux on one

</comment><comment><USER26> Gentoo, both desktop and server

</comment><comment><USER27> Debian Etch

</comment><comment><USER28> Fedora core 8 Solaris Ubuntu

<comment><USER29> Why the heterogeneous environment?

</comment></comment><comment><USER30> Slackware.

</comment><comment><USER31> CentOS 5.

</comment><comment><USER32> I use Ubuntu 7.10 64bit.

</comment><comment><USER33> CentOS 5

</comment><comment><USER34> Centos

</comment><comment><USER35> Debian testing

</comment><comment><USER36> Fedora 8

</comment><comment><USER37> OpenSuSE

</comment><comment><USER5> Gentoo</comment>


Women in tech - Stop talking, start coding - <AUTHOR> http://www.hilarymason.com/blog/stop-talking-start-coding/ <comment><USER3> This whole premise is stupid. We don't seem to have a problem with the lack of female linesmen, plumbers, construction workers, electricians, HVAC specialists, or garbage men. There isn't a pest control or sewage treatment Barbie. There also isn't a problem when 57% of college graduates are female.

If women want to work in tech, nothing is stopping them. They can learn to program, and write code. This is something that you can teach yourself, you don't need to deal with or rely upon anyone else. It seems that the problem is, at least as described by the New York Times, that women don't want to log the hours, and they want to do something that's more social. That's fine, there is nothing wrong with that. But they may be better off doing something other than writing code if that's the case.

Women log fewer hours in other areas as well. Female doctors see fewer patients than male doctors, and female lawyers are much less likely to make partner because they log far fewer hours than male lawyers. There is nothing wrong with this. Men and women are different. This isn't inherently bad or wrong.

Disclaimer: My staff is 80% female. We received more qualified female applicants than male applicants, so that's who we hired.

<comment><USER4> The fact that most women don't want to engage in programming is not a natural phenomenon - it's a big part of the problem. Far too many girls don't even _consider_ trying to program, and regret that later in their lives.

The first programmers (in a certain sense, wiring the first calculation machines in certain ways to achieve certain results) in fact _were_ women, but something badly changed since then.

So the missing women in computer science and programming can't be explained that way. This phenomenon is far more likely to be a problem (and also a shame) of our society. We'll have to work hard to fix it.

However, fixing a problem is only possible if you don't deny it.

<comment><USER5> > _"The first programmers (in a certain sense, wiring the first calculation > machines in certain ways to achieve certain results) in fact were women"_

I'd argue that "programming" in Ada Lovelace's age is more closely related to modern-day science than computer-science. Note also that scientific fields today are in no real shortage of women.

I think the possibility needs to be raised that there's something fundamentally wrong with _our field_ , or at least the people in it - <USER2> uncomfortable thought to be sure, but the sheer number of women (growing at that) in every "geeky" field but CS should be an indicator of something.

This reminds me of a conversation I had yesterday...

I'm just going to throw something out there: I know a lot of CS majors, and a lot of science majors. The science majors are a geeky bunch, but are _normal, functioning_ people for the most part. They will just as easily gab all day about some biological principle as they will the latest pop sensation. Their geekiness complements their personality.

Contrast this with the CS majors I know, where their geekiness _is_ their personality. It's almost as if we try too hard to _be_ the stereotype that it is, in the end, all that's left. Not to say all CS majors are like this, but the loudest, most visible ones certainly are, at least where I came from. I know it's a turnoff for me (and I'm a guy), I can't imagine how annoying that'd be for women.

<comment><USER6> Is there an objective standard for "normal, functioning people" or is this a slightly more sophisticated High School 2.0 way of partitioning hobbies or personality quirks into ones which are socially acceptable and ones which are not?

<comment><USER7> Hmm, I'd say that the best standard is whether the vast majority of people would accept you as being a normal, functioning person. The best standard for hobbies is whether they make you a broader and more interesting person or a narrower and less interesting person.

The best hobbies, I think, are the ones where you're creating something, exploring the world, making yourself a better person, or at least getting some exercise. The worst hobbies, I think, are the ones which involve immersing yourself in a narrow stream of entertainment which somebody else has created for you; Star Trek, Firefly, World of Warcraft, LotR, professional baseball. Nothing wrong with any of these in moderation, but when you elevate the consumption of entertainment to the level of a hobby it becomes just plain sad.

(No, writing Firefly fan fiction doesn't make it any better. That may be "creative" but you're still unhealthily immersed in somebody else's narrow world.)

<comment><USER8> Ironically, the stereotypical female Firefly fan fiction writer is _female_. Stereotypically masculine and "geeky" interests like science fiction actually seem to have proportionally more female interest than programming.

<comment><USER8> Should read "the stereotypical Firefly fan fiction writer". I hate when my brain outruns my typing fingers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Most men have not ever considered becoming a cosmetologist. How is that _not_ a problem? And why is it somehow a problem that women don't consider becoming a programmer?

Both sexes _could_ make those choices and that's far more important than whether they actually do it.

<comment><USER10> _Most men have not ever considered becoming a cosmetologist._

I suspect that has something to do with many men avoiding jobs that they think might call their sexual orientation into question. Many men have gone into cosmetology and done quite well. The reasons so few women go into CS has little to do with worries about their perceived orientation. You are comparing apples to oranges.

<comment><USER7> You don't think it has more to do with the fact that most men have little interest in womens' makeup?

I find it hard to believe there are many men out there who'd really _like_ to be cosmetologists but are afraid of being seen as gay. But if you're out there, feel free to reply!

<comment><USER11> They're probably on cosmetology message boards, not HN.

<comment><USER7> I like the idea that the cosmetology boards are filled with male programmers who really wanted to be cosmetologists, and HN is filled with female cosmetologits who really wanted to be programmers.

</comment></comment></comment></comment></comment><comment><USER12> Articles like these always make the same inference, and then lead to a similar conclusion: If a woman CEO gets rejected over and over, then it _must_ be sexism (and/or racism); and, then a gender- (or race-) biased investment firm steps in to promote business based on the gender of the CEOS/Founders, and a moral transgression is set straight.

The article asserts that the recession somehow makes investors stupid and frightened, wherein they think via 'templates' or some archetypal response. I think the word they apply is something more like 'scrutiny' -- at least I sure hope so.

It's 2010 -- let's start focusing on merit. I don't care what letters the woman carries from name-brand institutions. It just might be possible that her business ideas don't attract investment. Has that been considered? How many males from these fine institutions also fail in business? I know the number isn't zero.

<comment><USER13> Did you just copy paste your comment from <http://news.ycombinator.com/item?id=1273711>?

<comment><USER7> Maybe he recomposed it, word by word, in a slightly different context. Pierre Menard, author of the Quixote, would be proud.

</comment></comment></comment><comment><USER14> Every time my wife says something about biology or chemistry I realize how easy I have it because I only ever studied and worked with shifting bits around to create an imaginary world. Actually having to deal with physical limitations at every step, as well as understanding processes outside of the control of human beings must be hard as hell to understand, meaning it's even harder to learn and apply.

So yes, that original paragraph quoted really is bullshit.

</comment><comment><USER15> You might want to edit the title, because when I first read it, it seemed as if it were a statement "Stop talking, start coding" directed at "[the] women in tech". I was immediately reminded of a particularly misogynistic line: "quit all your bitchin', get back in the kitchen", so pretty anathema to the purpose of the article.

Back to the topic:

I don't think it's an issue of just lacking women in the tech industry. We lack men too. When I was going through college, computer science enrollment and matriculation were at all-time lows; it's going to take years to see the full effects of not being able to replace the first major wave of retiring programmers with enough people of high enough quality.

I've had non-programmer coworkers, including managers, call me names like "nerd" and shoot down my ideas without really listening because they assumed I was proposing something "too technical, not practical", and it all really came down to a lack of respect from my coworkers. How can we have people graduating with four-year degrees studying one of the most difficult human endeavors in history entering the workplace in positions that are treated barely better than burger-flipper?

In my mind, the issue is not just women not getting the respect and support they deserve in IT, but _everyone_ not getting the respect and support they deserve. And I think the problem is largely cultural, and in part to blame on programmers themselves. The culture of programmers, especially the idealized startup culture that tries to differentiate itself from standard corporate imagery, is defined by people with the emotional maturity level of children. The pinball-machines-in-the-break-room, jeans-and-snarky-t-shirts environment is conducive to attracting geeks and only geeks. Most people in general don't want to be associated with this environment, there just happens to be slightly more men than women who fall into that minority of SciFi-and-comic-books fanatics.

I have struggled for years to find the level of respect for my work that I feel I deserve, rather than being "just a code monkey." The epiphany for me was to realize that, if I wanted to be treated like a professional, I needed to act like one. I haven't worn a printed t-shirt to work since. Some days I even wear a suit. There's nothing wrong with wearing a suit to work. I even _like_ wearing a suit now, as I realized that I look much better than just jeans-and-t-shirt. Maybe it's just confirmation bias, but I definitely feel like my voice is heard more often and other, "non-technical" coworkers approach me more freely now.

Everyone wants a work environment based on mutual respect. Somehow, slightly more men are just capable of putting up with being treated like crap. This is not in any way a good thing.

<comment><USER16> I didn't intend the title to reference anything in particular, thanks for the comment.

I'm sorry that you've found our field to be so inhospitable. That hasn't been my experience at all, though I appreciate your point about making technology hospitable to everyone.

</comment></comment><comment><USER17> In response to some of the comments made in this page, doesn't the very fact that some jobs seem more "natural" to one gender or another actually only serve to magnify the problem here?

Why are plumbers and programmers alike seen more as a male profession, and cosmetology a female one? There's no evolutionary basis for it - feats of strength and endurance kind of go out of the window when we're all utilizing tools to minimize the job's physical impact. Lawyers certainly aren't reliant on any gender-specific genetic traits to perform their job.

It seems as if most readers here seem to be missing the picture: much of these biases, and they are biases, are entirely cultural, not sex-specific. There is a /cultural/ problem with programming that causes the field to innately repel most potential female programmers.

Saying that there's some things women do and some thing men do, and never the two shall meet, isn't just an obsolete 1950s attitude - it's like a bunch of schoolchildren whining about cooties. Asserting that the field /shouldn't/ try and attract a more diverse workforce has all sorts of nasty underlying implications that I'm sure most of you don't mean. The tech industry isn't and shouldn't be a boys-only club - it should be an industry that prizes intelligence and capability above all other factors, especially gender.

<comment><USER7> _Why are plumbers and programmers alike seen more as a male profession, and cosmetology a female one? There's no evolutionary basis for it_

How do you know that? Male and female minds are certainly constructed differently, and appear to be interested in different things. Cosmetology, for instance: most girls and most women are fascinated by makeup, and the opportunities it provides to look marginally prettier. Men care much less... of course men don't wear makeup, but for the most part they don't even care much whether their women do. Just ask any man who has spent twenty minutes waiting for a woman to put on her face, only to find that she looks hardly different when she comes out from the bathroom than she did when she went in. (Protip: don't tell her this).

As for plumbing, well, I don't think anyone is _really_ interested in plumbing, but men are much less deterred by the prospect of getting their hands dirty than women are.

Are these differences cultural? They might be, but there's pretty good reasons to think they're innate. It makes evolutionary sense for women to invest heavily in being good-looking and men to invest heavily in, y'know, accomplishing actual stuff.

<comment><USER18> >It makes evolutionary sense for women to invest heavily in being good-looking and men to invest heavily in, y'know, accomplishing actual stuff.

You really have no understanding of what housekeeping entailed before the washing machine, dryer, running water, the supermarket, etc. These were fundamentally hard tasks. Women had to get their hands dirty just as much, if not more than men. This historic role of women has disappeared because it is no longer an accomplishment to say "I did the laundry." The idea that a woman's ability to reproduce is a function of looks is a product of the past century, during which society's gender roles have not kept pace with the obsolescence of formerly 'feminine' tasks. All of the tasks once reserved for women due to their difficulty (and possibly innate ability) have become trivial tasks. As such the only thing that influences reproduction is looks.

At least, unless we can start using that wasted human power to, y'know, accomplish actual stuff.

<comment><USER7> In the conditions under which humans evolved I'm pretty sure there was no such thing as "doing the laundry. I do concede, though, that I was overly facetious in describing what men do as "actual stuff".

Still, men and women are under greatly different selection pressures. Men place a greater emphasis on appearance when choosing their mates, women place a greater emphasis on power and status.

Perhaps this is because traditionally-female skills are such that there's not a great deal of benefit in being especially good at them. A man gains a small benefit from having as a wife the best basket-weaver in the tribe, but a woman and her children gain a huge benefit from having as a husband the tribe's chief or its best hunter.

<comment><USER19> > I do concede, though, that I was overly facetious in describing what men do > as "actual stuff".

1\. It's not funny. 2. People actually believe that (even if you don't). 3. That's the problem!

</comment></comment></comment></comment></comment><comment><USER20> I don't know if anybody already made the remark. But I find this issue very similar to the issue of women in science, here is an out of box article: <http://philip.greenspun.com/careers/women-in-science>

The general theme is, what if women avoid (computer)science because that kind of career sucks?

The question to ask is... why would women want to work 80+ hour workweeks with unpaid overtime - effectively getting a similar salary to a maid (yes I exaggerate a bit!) - they can just go working as maids with less stress.

Lets face it. Most of CS companies ain't no Google or Microsoft. And most of CS people don't stand any chance of gaining access to that kind of company - ever. Most of computer people work for retarded PHB's. Any sane person can see that it's much better to be a PHB than Dilbert.

</comment><comment><USER21> I don't think that the deepest technical roles in computing, including programming are social enough for most women. Programming requires you to work without talking to anyone and even when you've finished many non-tech people won't understand what you did, so you can't even talk about it then.

There are clearly lots of benefits to having women in the tech industury, but if they don't want to program that cuts the number at least in half on that point alone.

</comment><comment><USER22> I think I'm going to cut against the grain here a little, but bare with me.

A lack of women can still be a problem even if no one in computer science is creating the problem. For a small theoretical basis, let's assume that people are a product of their genes and their upbringing/social context. So, some people are genetically smarter and will grok computer science better on an inherent level. Likewise, some people will have a parent who is a computer programmer or fall in with a nerdy friend group and that social context will get them more familiar with computer science and get them headed in that direction.

The problem can occur if society is telling women that they shouldn't do computer science. Then we're missing out on people who are inherently gifted computer scientists who have been learned from their social context that they should pursue something else. That's a problem. When people put themselves into sub-optimal careers because of what society tells them they should be like, that's bad.

Think about it: what if Einstein had continued just working as a patent clerk? Our world would be worse for it. The inventor of the birth control pill (Gregory Goodwin Pincus) was a Jew born in Russia. His career path would have never happened due to institutional barriers. Heck, Sergey Brin's father saw that his family wouldn't have such advancement there and left for the US because of it - and now we have Google.

But what we're talking about aren't institutional barriers - in fact, I'd say most of us probably welcome women. We would _like_ more women in computer science and are hugely open to it within the computer science community. But greater society is often telling girls (and boys) to pursue certain things from a young age. Girls are potentially being socialized away from computer science. That's a problem. Even without institutional barriers, there can still be social barriers imposed by our society.

And, while I respect jcnnghm's position (<http://news.ycombinator.com/item?id=1276946>), I have to disagree. The fact that 57% of college graduates are female could point to a problem. If males are being socialized against learning, that's problematic.

The problem is figuring out whether something is inherent or socialized. If something is inherent, fine - life isn't fair or equal. However, socialization matters a lot. Many people overcome socialization. Many others do not. If society has organized itself in such a way that brilliant female potential computer programmers are choosing a different path because they feel it isn't for them, that's a problem. If society has organized itself in such a way that brilliant male potential interior designers are choosing a different path, that's a problem. And our world is socially gendered - we're encouraged to act in certain patterns based on our sex. If society is losing out on brilliant people because they're in positions that aren't their optimal positions due to being socialized not to pursue that position, that's bad for all of us.

 _Just think if Marie Curie had listened to people telling her "what girls should do" and hadn't pursued physics and chemistry. Then think about all the women who did and the knowledge we all lost out on._

<comment><USER7> Right, so we should concentrate on making sure that talented female potential CS types are not deterred from going into CS. But what we can't do is use the fact that few CS types are women as evidence that such deterrence exists.

Actually there are features of the CS culture which discourage not only most women but many men from wanting to become programmers. It would be worth fixing these anyway. So guys, go have a shower and find something other than Battlestar Galactica to talk about.

<comment><USER23> Aaand you're a part of the problem. I could reply with anecdotes about which majors seem to have the most neckbeards, but you know what? It wouldn't matter.

Go away.

</comment></comment></comment><comment><USER24> Interesting counterpoint to the recently submitted NYT article,

<http://news.ycombinator.com/item?id=1273711>

<comment><USER18> Doesn't seem like a real counterpoint. The NYT article was a news piece, as such it was descriptive, not prescriptive.</comment></comment>