X86 Machine Code Statistics - <AUTHOR> http://www.strchr.com/x86_machine_code_statistics <comment><USER2> A) I have no idea what to do with the information, but it's fascinating nonetheless.

B) Obviously the instruction mix depends on the programs analyzed. The ones he analyzed are actually all heavily tuned but smaller programs. I wonder if that changes in other domains. If he ever re-does his analysis, it would be interesting to see something gigantic like OpenOffice, which I'm guessing might even be _more_ MOV based. And maybe something like Octave, which might make use of some more esoteric math functions.

C) When he says "three popular open-source applications were disassembled and analysed with a Basic script", I thought he might mean "simple", but downloading the source, he does indeed mean BASIC the programming language. :)

<comment><USER3> I think it's interesting how much time is spent moving things around or preserving state vs computation. Lots of cycles dedicated to that means less is getting done than we might think.

This can be useful when building up expected performance models of a system.

<comment><USER4> Hardware designers are aware of this thou, if you take say register-register movs, this can be achieved without actually copying the data, via register renaming.

X86_64 ABI switched to being able to pass arguments in registers as well. And the top of the stack will almost certainly be in cache anyway for the old style.

<comment><USER5> Plus, most instructions are actually out-of-order on x86 (hence the out-of- order superscalar). So your "mov" will usually take (effectively) zero cycles -- unless there is a dependency. But compilers are usually smart enough to pipeline the generated code, so the problem is really not a problem at all!

</comment></comment></comment></comment><comment><USER6> The only issue I have with this are that you are using a compiler from 1998 (visual c++ 6) at that time I think the Pentium !!! was just starting to get popular. There are college students now who were toddlers when this compiler came out. I would love to see a treatment of a more recent compiler generating instructions for more recent x86 CPUs.

<comment><USER7> I completely agree. It also seems the list of programs that were analysed is not quite as diverse as one might wish. It'd be great to see what some other categories of software might use. For instance, I could see OpenOffice to be an interesting application to look at.

</comment></comment><comment><USER8> Funny thing, I had exactly the same idea the other day. Here is a breakdown of opcodes in a random binary of BusyBox 1.22.1 I had lying around (as disassembled by ndisasm):

[https://scontent-fra3-1.xx.fbcdn.net/hphotos- xpt1/v/t1.0-9/1...](https://scontent-fra3-1.xx.fbcdn.net/hphotos- xpt1/v/t1.0-9/1380409_4699281856677_6849238680591604872_n.jpg?oh=ab0eb908c21916ffff8b59645b4e905f&oe=55EBE32E)

</comment><comment><USER9> Certainly interesting, but not really useful IMO.

Instructions that are _present_ very rarely might be _executed_ far more frequently if they are within a loop, particularly a tight number-crunching loop.

I suspect that MOV instructions would still dominate but that you would see then "minorities" within the instruction set getting more representation in the stats.

<comment><USER10> Same goes for optimizations, where we assume 80% of the time is spent in 20% of the code.

We just finished profiling our 1M LOC C++ codebase and it shows even more extreme numbers; we hit close to 95% of the time spent in 5% of the code.

</comment></comment><comment><USER11> It would be interesting to compare the statistics of compiler-generated code with that of human-written Asm, since I can easily tell the two apart; the latter tends to have a denser "texture" and less superfluous data movement.

Ideally, register-register MOV instructions on a 2-address architecture would be necessary only in the case of requiring two copies of some data, since the register/memory/immediate operands of other instructions can already be used to choose which registers should hold what data.

The fact that such a huge percentage of the instructions are simply moving data around suggests two possible explanations: these could be _obligatory_ MOVs for making copies of data, meaning that a 2-address architecture is too limiting and a 3-address one would be more ideal, or they could be superfluous, meaning that 2-address is a sweet spot and compilers are generating lots more explicit data movement than they should. From my experience writing Asm and looking at typical data flow in applications, I'm tempted to lean toward the latter...

<comment><USER12> Calls and other instructions that use specific registers (variable shift and division on x86, for example) tend to ruin that ideal somewhat.

<comment><USER11> True, it's not _always_ possible because there are certain constrained cases where the value in a fixed destination register immediately needs to go to a fixed source one, but from my experience a lot of cases have intervening operations that don't need a fixed source/dest, and yet the compiler didn't arrange things so that the results of preceding operations naturally went to the right place as the instruction came up, but instead had to generate a MOV. I suppose it's because there's a certain amount of "working backwards" (alternatively, "looking ahead") that's required, and traditional code generation techniques don't consider this case. A good human programmer would think "I'll need to divide, so I should compute the dividend in eax" or "there's a shift coming up, so the computation leading up to the shift amount should use ecx".

Calling conventions are similar (e.g. eax needs to be the return value), so you see things like this:

        mov ecx, [ebp+16]
        add ecx, edx
        mov eax, ecx  ; superfluous move
        ret

when this could've been done instead:

        mov eax, [ebp+16]
        add eax, edx
        ret

<comment><USER12> It's not true that traditional code generation approaches ignore this problem. Copy coalescing is a well-studied problem - the problem is that solving it optimally is expensive enough that compilers use heuristics[1]. Sometimes they don't do what you want. (Any reasonable allocator should catch the case that you mention, though.)

Higher quality compilers will also try things like commuting instructions, using lea as a three-address add, etc to avoid a move.

[1] Some recent progress on register allocation over SSA may improve this situation, but I don't think that work has made it into production compilers yet.

</comment></comment></comment></comment><comment><USER12> I wonder what percentage of those xors are for generating zero? I would guess a large majority of them.

<comment><USER13> otool -atv on a random selection of programs in /bin strongly agrees with your guess.

</comment></comment><comment><USER14> You're saying an archiver, an encoder, and an installer don't do a lot of floating point math? I'm shocked, I tell you, shocked. :-)

More to the point, it's unclear if this is a static analysis of the binary, or a runtime analysis of retired instructions.

<comment><USER13> It's a static analysis.

</comment></comment><comment><USER15> Well, I decided to do a very quick and dirty grepping of statistics with the following hideous Bash two-liner:

      /usr/bin $ for f in *; do objdump -d $f | sed -e 's/^ *[0-9a-f]*:[\t 0-9a-f]*[ \t]\([a-z][0-9a-z][0-9a-z][0-9a-z]*\)[ \t]\(.*\)$/\1/g' | grep '^[a-z0-9]*$' >> /tmp/instrs.txt; done
      /usr/bin $ cat /tmp/instrs.txt | awk '/./ { arrs[$1] += 1 } END { for (val in arrs) { print arrs[val], val; sum += arrs[val] } print sum, "Total" }' | sort -n -r | head -n 50

For those of you who can't read bash, this basically amounts to:

1\. Find every ELF binary in /usr/bin

2\. Use objdump to disassemble the text sections

3\. Grep for what the commands probably are (not 100% accurate, since some constant data (e.g., switch tables) gets inlined into the text section, and some nop sequences get mangled)

4\. Build a histogram of the instructions, and then print the results

I don't bother to try to handle the different sizes of types (particularly for nop, which can be written in several different ways to align the next instruction on the right boundary). The result is this list:

      117336056 Total
      43795946 mov
      9899354 callq
      7128602 lea
      5258131 test
      4928828 cmp
      4463038 jmpq
      3879175 pop
      3628965 jne
      3519259 add
      3227188 xor
      2824699 push
      2361085 nopl
      2016346 sub
      1678131 and
      1551014 movq
      1311683 jmp
      1311476 retq
      1255216 nopw
      1239479 movzbl
      1234815 movl
      946434 movb
      663852 shr
      614367 shl
      581608 cmpb
      523398 movslq
      427116 pushq
      384794 cmpq
      376695 jbe
      348158 movsd
      341248 testb
      340718 sar
      338542 xchg
      311171 data16
      302296 jle
      266539 movzwl
      252872 cmpl
      210762 jae
      169823 lock
      152724 addq
      151186 sete
      147340 cmove
      146501 imul
      146386 setne
      145233 movabs
      142801 repz
      123489 cmovne
      123439 addl
      105156 pxor
      81745 cmpw

Since this is Debian Linux, nearly every binary is compiled with gcc. The push and pop instructions are therefore relatively rare (since they tend not to be used to set up call instructions, just mov's to the right position on rbp/rsp). jmpq and pushq are way overrepresented thanks to the PLT relocations (2 jmpq, 1 pushq per PLT entry).

mov's are very common because, well, they mean several different things in x86-64: set a register to a given constant value, copy from one register to another, load from memory into a register, store from a register into memory, store a constant into memory... Note, too, that several x86 instructions require particular operands to be in particular registers (e.g., rdx/rax for div, not to mention function calling conventions).

If you're curious, the rarest instructions I found were the AES and CRC32 instructions.

<comment><USER16> I am surprised to see lea so high on the list. Back when I last wrote x86 assembly code (early 2000s), it was considered slow, but perhaps that has changed.

<comment><USER17> I came across:

[http://www.realworldtech.com/haswell- cpu/4/](http://www.realworldtech.com/haswell-cpu/4/)

And older, about amd64 in general (x86/32bit is quite different from 64bit):

"lea -0x30(%edx,%esi,8),%esi

Compute the address %edx+8*%esi-48, but don't refer to the contents of memory. Instead, store the address itself into register %esi. This is the "load effective address" instruction: its binary coding is short, it doesn't tie up the integer unit, and it doesn't set the flags."

[http://people.freebsd.org/~lstewart/references/amd64.pdf](http://people.freebsd.org/~lstewart/references/amd64.pdf)

[ed: in general the purpose of lea is to get the address of things in c/pascal arrays (pointer to array+offset) -- as I understand it. I don't know if it's used for other tricks by optimizing (c) compilers much -- but taking the address of an item in an array (say a character in a C string) sounds like it would be fairly common. If lea is fast(er) on amd64 using the dedicated operand would make sense.]

<comment><USER16> Yeah, despite it's name, lea is an arithmetic instruction; it doesn't reference memory (although it was designed with computing memory addresses in mind). You can do some neat arithmetic tricks with lea, because it computes register1 + register2<<shift + offset.

</comment></comment></comment></comment><comment><USER18> Two things that would be _very_ useful:

1\. A combination of static "number of instruction"s, as here, number of times each instruction is _executed_ , and amount of time spent executing each instruction.

2\. Statistics for a Markov chain - i.e. not just what single instructions are common, but what combinations of 2 / 3 / \+ instructions are common. Preferably both in-order and set-based.

</comment><comment><USER19> >applications were disassembled and analysed with a Basic script:

argh noooo. Whole analysis is failed :( It doesnt matter that 50% of binary is movs if said binary executes them only once, or not at all (some obscure function). It would be more valuable to test those, or any other program, in modified QEMU TCG or MESS/PCem.

<comment><USER20> Kachegrind and multiply by the timmings.

</comment></comment><comment><USER21> Sampling profiler would be an improvement. You want to know what CPUs spend time doing, not what is in unused code.

</comment><comment><USER22> I wonder what this looks like on modern compilers like today's MSVC, gcc, or clang.

<comment><USER13> Very similar. Maybe more register-register now that we have all the x64 regs, and fewer pushes, what with the x64 calling convention.

<comment><USER23> Very unlikely that x87 instructions (fld and fstp) would show up in the top 20 these days; they are almost completely superseded by SSE. "inc" is often avoided these days due to partial register stalls on EFLAGS ([http://stackoverflow.com/questions/12163610/why-inc-and- add-...](http://stackoverflow.com/questions/12163610/why-inc-and-add-1-have- different-performances)).</comment></comment></comment>


Ask HN: Providing support on side projects - <AUTHOR>

For all of you who have side projects or ever had side projects, did you ever charge for them and if you did, how did you provide technical support outside your day job? I'm trying to build a Saas but I'm wondering how I would provide support given that I have a full time job. <comment><USER2> Two thoughts:

1\. The level of support you will have to provide is directly related to the type of customers you seek, see <http://news.ycombinator.com/item?id=4036118> for some good notes from patio11 on this.

2\. Build a great FAQ and keep the features minimal in your application (less options, less to support).

<comment><AUTHOR> Thanks Duck. Definitely a great post by patio11. I've seen a competitor with "more" features (looks like an actual company) charging around $50. I'm tempted to undercut that but reading the post has made me think otherwise. I am still a bit worried that I might not get any customers at all!</comment></comment>


Azure's Emotion API - <AUTHOR> https://codepen.io/sdras/full/dZOdpv/ <comment><AUTHOR> For some context: [https://azure.microsoft.com/en-us/services/cognitive- service...](https://azure.microsoft.com/en-us/services/cognitive- services/emotion/)

> The Emotion API takes a facial expression in an image as an input, and > returns the confidence across a set of emotions for each face in the image, > as well as bounding box for the face, using the Face API.

[https://twitter.com/sarah_edo/status/928270318229118976](https://twitter.com/sarah_edo/status/928270318229118976)

> I used @Azure's Emotion API to make this fun emotion detector pen. Made with > Vue, Three.js, emojis and </comment>


Structured Generative Models of Natural Source Code [pdf] - <AUTHOR> http://jmlr.org/proceedings/papers/v32/maddison14.pdf

<comment><USER2> This is a new and very interesting area in machine learning and software engineering. Anyone interested might also find the following papers interesting too

Hindle, Abram, et al. "On the naturalness of software." Software Engineering (ICSE), 2012 34th International Conference on. IEEE, 2012.

Tu, Zhaopeng, Zhendong Su, and Prem Devanbu. "On the Localness of Software."

Nguyen, Tung Thanh, et al. "A statistical semantic language model for source code." Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. ACM, 2013.

Campbell, Joshua Charles, Abram Hindle, and José Nelson Amaral. "Syntax errors just aren't natural: improving error reporting with language models." Proceedings of the 11th Working Conference on Mining Software Repositories. ACM, 2014.

Allamanis, Miltiadis, and Charles Sutton. "Mining source code repositories at massive scale using language modeling." Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on. IEEE, 2013.

Movshovitz-Attias, Dana, and William W. Cohen. "Natural Language Models for Predicting Programming Comments." ACL (2). 2013.

Allamanis, Miltiadis, Earl T. Barr, and Charles Sutton. "Learning Natural Coding Conventions." arXiv preprint arXiv:1402.4182 (2014).

Allamanis, Miltiadis, and Charles Sutton. "Mining Idioms from Source Code." arXiv preprint arXiv:1404.0417 (2014).

<comment><USER3> Assuming you're more familiar with this than I am, can you outline why this is useful (either practically, or why it's theoretically more useful than e.g. modelling natural language)?

<comment><USER2> From a machine learning perspective (i.e. theoretically according to my view) this is useful because source code is highly structured with very complex constraints and tons of data available (e.g. every project in GitHub). This means that machine-learning methods for handling such problems need to be developed. Such methods may eventually be useful in other application.

Now on the applied side (software engineering, programming languages), such methods (probabilistic machine learning and probabilistic/statistical models) can handle uncertainty with a principled way and provide useful tools to software engineers that exploit the amounts of data that is available both in internal and external codebases. This is something that is not 100% possible with formal tools, that usually require some form of human knowledge to be embedded. For example, you will see on the list above, tools that can do autocompletion, others that suggest "reasonable" renamings or others that help migration of source code between languages and all thanks to data.

Hopefully, at some point these methods will be so advanced that they will be able to learn (i.e. trained) from every piece of code that is available online and (e.g.) spot bugs in your code, semi-automatically refactor your code etc.

</comment></comment></comment><comment> metronius</comment>


Pragmatism is poison - <AUTHOR> https://einarwh.wordpress.com/2016/03/10/pragmatism-is-poison/ <comment><USER2> I consider myself a very pragmatic developer in general. For example, I don't write unit tests for throw-away code.

But, ignoring the hypermedia constraint on a RESTful API is not being pragmatic, it's being wrong. You're making an API cool. You're probably even embracing microservices. But it's not REST.

<comment><USER3> Most of the time, by "REST" people understand just randomly slapped together protocol that aspires to be RPC, which is too underdeveloped and loosely defined to be proper RPC.

</comment></comment><comment><USER3> Pragmatism is not a poison. Valuing intelligence over wisdom is.

</comment><comment><USER4> No, poverty + busyness + laziness is the poison.</comment>


Wells Fargo Is Accused of Making Improper Changes to Mortgages - <AUTHOR> https://www.nytimes.com/2017/06/14/business/wells-fargo-loan-mortgage.html <comment><USER2> The financial crisis of 2008 really shattered my world view. Until then I thought there was a free market where the companies that do good business survive. Since then you almost hear every week how banks do stuff that would have killed pretty much any other company but banks get away with it. This is just unbelievable.

<comment><USER3> Most people don't price check banking like they do _e.g._ groceries or mobile- phone plans. This is why Chase can pay a pittance of interest and charge for using others' ATMs while _e.g._ Ally pays 10 to 60 basis points on their _checking account_ [1] while re-imbursing the ATM fees other ATM providers assess.

[1] [https://www.ally.com/bank/interest-checking- account/](https://www.ally.com/bank/interest-checking-account/)

<comment><USER4> I needed a check from Discover Bank (online savings, similar to Ally) to pay my old outsourcing HR company back for a 401k loan. Discover Bank sent me an "official check" (which takes ~8 days to arrive from issuance), which (according to the FDIC consumer protection laws [1]) is identical to a cashier's check, but the outsourcing HR company would not accept an "official" check, only certified/cashiers.

Had I banked at Chase, they would've provided me an actual "cashier's check" in branch at a moment's notice.

Is it worth ~$200/year in interest to not be able to get to your savings at a moment's notice? Before, I would've said yes. Now that its cost me an $1800 IRS penalty, no longer.

[1] [https://www.fdic.gov/regulations/laws/rules/6500-3222.html](https://www.fdic.gov/regulations/laws/rules/6500-3222.html)

<comment><USER5> Did you appeal the penality with the IRS?

This kind of thing doesn't normally happen, or shouldn't.

You should have a local bank account for the times you need local branch if you do most of your banking online.

If you're going to spend quite a bit of money soon, like within a month or so, you should move that money into a local branch beforehand, like I did when I was buying my house and I knew I'd need the funds on closing date.

Even if you fail to do that ahead of time you can wire the money for, maybe, $20 to the local bank, wire transfers are instant, and get the cashier's check there.

That's like saying "you shouldn't use brokerage accounts cause if you need the money you'd have to wait for the sale to settle before you can access your funds."

<comment><USER4> I was between jobs, my child was sick, and my dog was dying. I agree I could've solved the problem by starting the process immediately when I separated from my last employer. Life happens.

I have documentation to show I made a best effort attempt to repay the loan in time (official check, fedex tracking numbers, etc), but I won't know if its good enough until I file next year's tax returns and challenge the 401k provider's 1099-R.

<comment><USER6> creepydata suggested that you should appeal to the IRS. There is an appeal process. Talk to your accountant about doing that.

</comment></comment></comment></comment></comment></comment><comment><USER7> I have trust issues with banks, and even my credit union. I verify their interest calculations. I monitor payment amounts. I challenge _every_ _single_ _incorrect_ "NSF fee" (it's a small-town bank, and this has happened several times.)

In a situation like in the article, continue paying the original, higher, correct loan payment. Make sure that the 'extra' (and indeed, any extra you intentionally pay any other time) goes toward the principal balance and not into your property tax escrow account. You've got to watch any bank you do business with, even to correct their honest mistakes. If your payment changes, find out why. If your extra principal payments aren't applied correctly, get it fixed. And when you have evidence of a pattern of wrongdoing, get the law involved.

<comment><USER8> >> And when you have evidence of a pattern of wrongdoing, get the law involved.

Where do you go exactly? I left Wells Fargo because (among similar "errors"), the charged me $15 monthly for "Fees" which they would reverse when I asked them what the fee was for. I had documentation of them insisting it was just a one-time mistake for several consecutive months and then charging the fees again every month for months. But who's going to investigate Wells Fargo over a $15 "mistake" that they fix as soon as you ask them to?

<comment><USER9> This is what class action suit are for. Multiply $15 by a hundred thousand affected customers for a year, and you've got some serious cash. The same reason Fargo is down to do this is the same reason it's a good target for a class action: there's actually a lot of money there.

<comment><USER10> Wells Fargo customers cannot file a class action suit because they have agreed to binding arbitration (with individual action only).

</comment></comment></comment></comment><comment><USER11> I'm not surprised. I might be misremembering, but I'm pretty sure Wells Fargo was also the bank where its employees were opening up bank accounts without their customers' knowledge for bonuses. Oh, and it's also one of the banks where whistleblowers were basically pressured into leaving and then blacklisted on a list that big banks circulate internally so they couldn't find jobs in the banking industry ever again.

<comment><USER12> Please don't take this as a comment against you specifically.

I am incredibly saddened by the fact that this association is weak enough that people could even entertain the idea that they are misremembering.

Wells Fargo should be forever branded, and if you are doing business with them you really should stop.

<comment><USER5> Not so simple. My mortgage was sold to Wells Fargo without my input. I don't want to refinance because it wouldn't make sense financially as well as it could just be sold right back to Wells Fargo.

</comment></comment></comment><comment><USER13> Stories like this really go to show that no matter how much PR a bad company uses to try to regain good will, they are still rotten and are still actively trying to screw you. Wells Fargo, Walmart, Uber, TimeWarner/Spectrum, etc.. all bad to the core.

</comment><comment><USER14> Banks seem to be insulated these days like the Oligarchs after the fall of the Soviet Union. They can do no wrong. Even when they're caught, few if any ever go to jail. What does a bank have to do before the government says "enough" and starts locking people up?

<comment><USER15> Worth noting that one of the first things a lot of the Russian oligarchs did was set up their own banks - alongside their own security and intelligence services.

</comment></comment><comment><USER16> I'd appreciate some clarification from someone...

I get that generally changing the terms of a loan after everything is signed is sketchy. But in this case it looks like they were _trying_ to do the customers a service:

>The changes, which surprised the customers, typically lowered their monthly loan payments, which would seem to benefit borrowers, particularly those in bankruptcy. But deep in the details was this fact: Wells Fargo's changes would extend the terms of borrowers' loans by decades, meaning they would have monthly payments for far longer and would ultimately owe the bank much more.

I guess the devil is in the details, but if they just lowered the minimum payment what's the harm to the consumer? AFAIK the vast majority of loans in the US are simply calculated. If you make your payments as expected on time you wouldn't be effected. If you aren't able to do that, then of course you're not paying off the principle as quickly and the term would be extended. Just like making extra payments will shorten the term.

To be clear: changing the rate? Adding fees? Sure, that's really bad; rake them over the coals. But if it's just changing the minimum payment amount I'm missing the problem.

<comment><USER17> Changing the terms of the contract without explicit approval from both sides is _beyond_ sketchy. At minimum, it's an unapproved amendment and therefore doesn't apply. At worst, it's a new contact that at least one side didn't agree to and therefore doesn't apply. It looks like people agreed without understanding the details.

In this case, I'd wager by lowering the payments, less loans were "risky" and therefore their assets look better. That probably was for the benefit of repackaging those "assets" and/or better guarantees from the Fed.

</comment></comment><comment><USER18> The frontline employees are typically not authorized to make such changes alone. This sounds again like too much pressure by management and somewhere in the chain someone was stepping over the line. The fact that such egregious missteps have happened now twice (unauthorized account opening) is a very, very worrying sign for the culture in Wells Fargo. Top management should be asked some very hard questions and maybe some changes are needed.

</comment><comment><USER19> I don't know why any individual uses the big national banks for their personal checking/savings.

Use a local bank or credit union. I've always had much better service and respect for me as a customer that way.

</comment><comment><USER20> Wells Fargo is yet another example of big bank that a long time ago should have been disallowed from buying any more banks. Local banks don't get away with shady stuff like this because you can go visit a banker in person. There is no such thing as a "local" Wells Fargo. It has the same customer service and anonymity as an internet forum.

</comment><comment><USER21> Wells Fargo decided I had to pay a $50 fee for a failed transaction even though my mortgage was already paid for the month. They refused to remove the fee even though they could produce a signed transfer of service disclosure.

</comment><comment><USER22> Fraud. Personal culpability. Jail.

The one thing that will put the brakes on such.

P.S. Also worth mentioning, various governments have various laws and regulations prohibiting doing business with agents convicted of criminal activity. It would also be worth actually adhering to and enforcing those.

A bigger threat than a fine that often represents a fraction of the profits already gained.

But seriously, pierce the corporate veil and lock them up. Long past due. And experience has now shown, the only way to substantially reduce such activity (e.g. Savings and Loan Scandal of the '80's).

P.P.S. Regarding this, and all the Federal agents/roles that have been reassigned from domestic and financial crime to "terrorism". More Americans face greater terror today from the prospect of being screwed over by fraudulant big business, than face real (as opposed to manufactured) terror over a terrorist attact. Or, a "terrorist" attack, looking at how broadly that label gets applied, today. (I was going to say, how broadly it gets "thrown around", only it isn't really being "thrown around", it's being used quite deliberately to foster self-serving agendas.)

</comment><comment><USER23> I go quite a bit out of my way to avoid any interactions with banks.

I keep most of my savings in cash and never take out loans. The result: a blank credit report (which HR at most companies seems to like when I'm getting hired) and few late penalties, and never being told I can't have access to my money because of "XYZ." Not to mention, avoiding all the crappy online banking web GUIs.

<comment><USER24> Don't you aftraid of losing all of your savings due to a robbery? Also if you would want to purchase a house in the future how would you make a payment? IRS won't like a diplomat full of cash in hundreds of thousands of dollars? They will have questions.

<comment><USER25> I second that. Tried using cash as a down payment on a house did not fly even though I could reconcile the difference in cash with what I kept in the bank with my pay stubs and deposit/withdrawl records. Underwriters want to see that cash sitting in a bank account.

<comment><USER26> Yeah, if you want to use cash, you basically have to be able to just pay for the house in it's entirety. With downpayments, the underwriters really want to make sure you didn't just take out a loan somewhere to finance that downpayment. Showing up with cash in that instance is basically indicating you don't want them to know where you got the money, which isn't going to fly when a person's job is based around playing it safe.

<comment><USER5> Even so, most businesses aren't going to want to handle a suitcase full of $200,000+ in cash, unless they are a bank. My lawyer handled all the cash (cashier's check) in my house buying transaction. My lawyer doesn't own an armoured car and doesn't have the ability to handle all that cash.

</comment></comment></comment></comment></comment><comment><USER27> I feel like everyone is being overcharged these days.

From groceries, with cashiers not ringing up specials or coupons correctly, sometimes the wrong UPC/wrong price and they aren't even paying attention.

Everyone else is trying to charge extra hidden fees, and sometimes they are illegal, like these.

But honestly, most people are so out of it, so clueless, they don't notice if they have the paperwork in hand.

Now we've really jumped the shark and are forging people's paperwork (account scandal) and submitting false documents.

</comment><comment><USER28> Good lord. Assuming this is largely true (and Wells Fargo has lost any presumption of good faith), people need to start using the word "RICO".

</comment><comment><USER29> Disclaimer: I work for one of the top 10 banks in the US by assets.

I was shocked, SHOCKED, to find out that our CEO isn't even a tiny bit of a lying, cheating sociopath. I started working here for the benefits and culture in the IT department, and assumed that the people responsible for paying for all the cool stuff we got were doing the same thing I assume all the other big banks do (Wells, JPMorgan Chase, Citi).

I've only been here a little while, and not seen anything nefarious, though I only have visibility into the IT infrastructure mostly, and some development work. But I'm still wondering how a company can become this large and successful in this sector without griminess from the top.

It's restored my faith in stuff a little bit. Also note, if you look at the top 10 banks in the USA, the bottom half are a small fraction of the size of the top 3, and we're in the bottom half.

<comment><USER30> _our CEO isn 't even a tiny bit of a lying, cheating sociopath_

How would you possibly know?

<comment><USER31> And honestly, how is it even relevant? CEO is only one person, who could have been with a bank for any arbitrarily short period of time.

The rest of management/leadership could still be rotten to the core.

</comment></comment></comment><comment><USER32> But clearly, what needs to happen is that the protections passed in the wake of the 2008 financial crisis need to be undone, and the Consumer Financial Protection Bureau needs to be neutered.

</comment><comment><USER33> This bank helped build the American West. It was there before the current batch of executives arrived. Will it still be there after they leave? Possibly, if they accept personal responsibility for these problems, pay big fines, do some time at Club Fed, and get out of banking.

Will they do that? Probably not. After all, no organization in the 21st century is conceivably more valuable than the people who are lootingxxxxx running it.</comment>


Open-sourced food production – the future of urban diets? - <AUTHOR> http://www.theguardian.com/technology/2015/nov/10/open-sourced-food-production-future-urban-diets <comment><USER3> What is the point of the article? Shamelessly promoting Cleb Harper?

Seriously, there's not a single real argument or piece of data in the article, just a bunch of complaints about "first world problems".

\- How does growing food locally in sub-optimal scale in urban environments stack against high-efficiency farms?

\- Cities' water systems are strained and wasteful due to old infrastructure, and require that water is brought from hundreds of miles away, while some agricultural areas face similar issues, how does this compares with the average agricultural area?

\- Why would someone try to grow anything in San Francisco using tap water?

 _"Everyone wants transparency in food. Anyone right now that's building opacity in the offering to consumers is going to die."_

AFAIK, starving people are more worried with finding the next meal, not with the terroir of the wheat in the bread. Sounds too much like many SV startups: solving first world problems first.

 _" including boxes that create controlled environments to grow specific types of food"_

So, instead of growing crops where they grow best, and efficiently shipping them around the country (freight accounts for 6% of the total food chain emissions), we'll use energy to create boxes that maintain controlled temperature, humidity and luminosity so we can grow our favorite crops just next door? That sounds totally inefficient for me (but I'd love to see data on that).

<comment><USER4> It sounds especially inefficient when you consider the bad example brought up in the article--apples. There is a reason apples are mass-produced--lots of land and the right climate conditions. You can't grow too many apples in urban areas. I love real apples, but I grew up in an exurban area across the street from an apple orchard.

You won't taste apples that good through mass production, but you will be able to get apples year around. Those are the trade offs.

<comment><USER5> Apples are great in an urban environment -- they're a nice looking tree that gives a spectacular flower show in the spring.

But I don't know what relation apples have to the OP, though. A controlled growing environment is generally associated with small vulnerable vegetable crops like lettuce, not huge hardy apple trees.

<comment> saiya-jin considering how polluted urban areas are, and how good are apples in retaining pollution in them (no sources at hand now, sorry), I would not touch those unless situation got serious.

<comment><USER6> BTW, you are smoking the exactly same air as tree.

</comment></comment></comment></comment></comment><comment><USER4> One of the biggest problems with this idea of producing lots of food in urban areas in that urban land is very expensive and transportation will only become more efficient over time. So why are we obsessing on reducing transportation distance? Trains are incredibly efficient and trucks will only improve, especially with increased automation.

Transportation costs will fall, but urban land values will continue to increase. Just look at the housing situation in the San Francisco metro area. It's more efficient to use urban areas for people and grow crops where they grow well.

</comment><comment><USER7> I feel as though the article is using "open-sourced" more as a buzzword than as a phrase to convey actual meaning.

The only concern most gardeners have related to patents or copyrights is in their seed acquisition. Those who care at all use heirloom seeds and save portions from their previous crop, whereas those who don't just buy seed packets.

Now, if we're talking minimal-effort gardening robots, with open hardware and freely modifiable firmware, that's a different story, but the fine article didn't mention anything more in that vein than a vague reference to optimized tomato boxes.

What would be a more truthful headline? Summary of a Conference Talk on the Future of Gardening by Caleb Harper of MIT.

</comment><comment><USER8> I am conflicted on this. On one hand, there's a large push for locally produced food, to save on distribution and transport. But on the other hand....surely it's better for the environment if we produce most of our food on huge mega farms which are highly efficient?

<comment><USER9> Which use large amounts of pesticide and waste if the crops don't look pretty they are scraped.

And in the UK allotments are a growing trend and of course popular with Guardian readers.

In the Uk there a duty for local government to provide land for alotments

<comment><USER8> Well yes, of course, but my point is that on mega farms you can use gigantic tractors which process a lot more crops than your tiny tractor or even what you can collect by hand. Just like transporting 50 people is a lot more efficient by bus, instead of having 50 cars. And mega farms don't have to use so much pesticide, and mega farms don't have to throw away ugly crops - <USER2> happens due to a stupid system around how we sell vegetables, nothing to do with farm efficiency.

<comment><USER10> Unfortunately mega farms have issues with getting rid of pesticides and fertilizers. To ensure the soil has enough nutrients for a desired crop, other crops often have to be planted as well, no? Mega farms really only do monocultures well right now AFAIK, and that's a problem.

<comment><USER3> The fertilizers are actually the solution to (most of) the monoculture problem. Other problems remains, such as erosion, biodiversity, etc. but not efficiency.

<comment><USER10> The increased use of fertilizer tends to lead to the forced increase of pesticide use IIRC (Source is in my library at home atm, sorry). It also leads to a decrease in nutrient value from the food as well due to the increased pesticide use.

From a pure efficiency note, pesticide and fertilizer use is the best solution in the short term. But I'm curious what the long term repercussions will be for both human and environmental health.

<comment><USER3> In the long term, we're all dead :)

But I agree with your point. Sadly, long term is too long to have enough information to make decisions ex ante.

And on your pesticide and nutrient value claims, I'd love to see data on that, sounds pretty dubious to be honest.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Sorry for being off-topic but I need to write this down:

The first thing I had in mind after reading the topic "Open-sourced food production" was "Soylent Green is people!".

Puh, good thing that's off my mind now.

Best, Steviee</comment>


Laffer Curve - <AUTHOR> http://en.wikipedia.org/wiki/Laffer_curve

<comment><USER2> Recently there was a very intersting interview with Arthur Laffer.

Watchable online: [http://www.aljazeera.com/programmes/headtohead/2014/11/shoul...](http://www.aljazeera.com/programmes/headtohead/2014/11/should- poor-pay-rich-2014111612453777162.html)</comment>


Show HN: The most commented books on Reddit - <AUTHOR> https://redditreads.com/ <comment><AUTHOR> This was a fun side project I've been working on for the last few weeks. It's been a nice way to find books on new topics, and some new subreddits too.

The home and subreddit pages are prerendered and served statically, so I didn't need to deal with databases or javascript.

I just looked at comments with Amazon links rather than actual book titles so the counts are pretty small, but the ordering should be fairly accurate.

I'm using Amazon Affiliate links. Depending on how popular the site is after the initial wave dies down in a few weeks, I'll either run it as a tiny business or wind it down to a hobby data science project.

I'd appreciate any feedback!

</comment><comment><USER2> Looks great. You might want to make it mobile web friendly.

Wish you lots of affiliate money :)

</comment><comment><USER3> Very interesting and useful. Have bookmarked!</comment>


17-Year Old Bug in Firefox Allows Local Files Theft Attacks - <AUTHOR> https://sensorstechforum.com/17-year-old-bug-firefox-local-files-theft/ <comment><USER2> The 17-Year old bug linked in the article seems to be be fixed: [https://bugzilla.mozilla.org/show_bug.cgi?id=141061](https://bugzilla.mozilla.org/show_bug.cgi?id=141061) The problem proposed in the article is that a local html file can access other local files. But the linked(and fixed) bug can be used to remotely exploit the user.</comment>


How I Made This Website Hella Fast Without Overcomplicating Things - <AUTHOR> http://dev.to/ben/how-i-made-this-website-hella-fast-without-overcomplicating-things <comment><USER2> Great job! I'm also trying to build a dead simple CMS (I call it statico) which tries to produce ultra-efficient static pages (in-lined css, minimal js, lazy loading images, gzip and cached content). So far my biggest challenge has been page transition. Since I go and get a new static page the old-fashioned way (a hyperlink, ha!) I see no way of speeding up transitions. Any ideas?</comment>


Which is less expensive: Amazon or self-hosted? - oscar-the-horse http://gigaom.com/2012/02/11/which-is-less-expensive-amazon-or-self-hosted <comment><AUTHOR> Why does the author assume 1 EC2 extra large instance is equivalent to 1 dedicated server and then base the required dedicated servers on the peak required EC2 instances?

He also neglects to weigh in ordinary web hosting with dedicated servers... 131 (based on the alleged equality between vps and dedicated) $300 boxes hosted by someone else with 2x or more cpu, 2x the required bandwidth and all that dedicated disk io for a full $30,000 per month less than AWS, $20,000 per month less than the calculated self hosting (which includes amortized cost of buying the servers), and outsources the physical maintenance of those servers. Not to mention regular old big VPSs at xyzhostingcompany.

After everything it reaches the very predictable ending that AWS is worth it if your requirements are variable.

</comment><comment><USER2> I don't understand why so many people are fixated on Amazon AWS. Someone please "explain" this to me.

Its overpriced and underpowered. Linode, RackSpace, and many other VPS providers perform better and are a much better value.

To me where it makes sense to go with a dedicated or self-hosted solution is when you start needing servers with lots of RAM, because all of the VPS providers will gouge you when you need RAM. They will charge much more per month for the server than the cost of the extra RAM chips and CPU and you will have paid for the server within a couple of months.

I think that VPS providers will have to start lowering the prices for their higher RAM instances pretty soon because RAM prices have gone down so far.

<comment><USER3> > I think that VPS providers will have to start lowering the prices for their > higher RAM instances pretty soon because RAM prices have gone down so far.

Pricing of VPS and dedicated servers scales with RAM but is entirely unrelated to the cost of RAM chips. Hosting companies use RAM as a proxy for their real costs -- power/cooling, hardware wear/replacement, bandwidth and support. There's a strong correlation between the amount of RAM a customer purchases and the hardware utilization of that customer, that's why the industry has converged on that component as the main factor in pricing.

Thinking that these companies charge $25/gb/mo for RAM has anything to do with the cost of physical RAM (which would be paid off in the first month) is a mistake.

I'm frustrated as anyone with the difficulty of finding affordable high-RAM instances/servers without colocating, but complaining to the host that their pricing should change because of the price of physical RAM won't get us anywhere. That's not how they set the prices.

<comment><USER4> Their proxy is also a market distortion. By not pricing RAM at closer to its marginal cost, they encourage people to burn CPU instead of RAM in algorithm design, which in turn increases power usage and creates cooling problems.

<comment><USER5> You seem to be saying "In my imagination, their empirical observations are wrong." What you're saying could theoreticlly happen, but that doesn't mean it actually happens in real life.

<comment><USER4> You seem to be replying to a comment that exists in your imagination.

When targeting an environment where CPU usage is cheaper than a 30GB hash table, I'll choose the CPU usage. It's very simple. I am not actually commenting on anyone's empirical observations, theoretical, imagined, or otherwise.

</comment></comment></comment></comment></comment><comment><USER6> I think it's pretty well known that for most use cases, cloud hosting is more expensive than dedicated hardware.

That said, we're currently moving from a dedicated server to AWS, after we had a bit of nasty downtime. We have dedicated servers with 1and1, and the RAID in our server died and striped bad data all over one of the disks, slashing half the files with junk. 1and1 tech support refused to acknowledge the problem (and claimed we had software RAID setup…) and it took us a few days to get back online from our weekly backups.

What I'm hoping from Amazon as a cloud provider is handling failure better: With 1and1, a failed machine means a few days getting a new one, or paying double for a hot spare. With Amazon, even if dead instances happen more often, killing it and spinning up a new one is trivial, and can even be automated. Backups can be made much more often non-intrusively by using snapshots.

For reliability's sake I also like the idea of having a few small instances behind Elastic Load Balancer instead of one beefy machine. I haven't seen anything like ELB with a dedicated hosting provider (aside from using an actual load balancer, which is a very expensive proposition).

Of course, not having to plan your capacity so far in advance and being able to start small and scale out at the drop of a hat if something on your server goes viral is a really exciting proposition as well.

</comment><comment><USER7> What about the amount of dev time and sysadmin needed to fully use each option?

If you want to take advantage of AWS for spiky use, you need to automate the heck out of starting and stopping instances, redistributing requests to new machines, etc.

Horror stories about EBS make me think that you'd better reconsider storage if you're hosting everything with AWS too.

Of course, the flip side is that with a totally self-hosted system, you'll probably need more sysadmin work, and you may end up spending money on things like remote hands when a drive fails or a network card dies.

Then there's managed hosting. You don't have the super awesome scaling magic of AWS, but you don't have to deal with the physical bits much either. And you still get real physical hardware attached directly to each system when it comes to storage.

I think that really understanding the costs is a lot more complicated than this article suggests.

<comment><USER8> _If you want to take advantage of AWS for spiky use, you need to automate the heck out of starting and stopping instances, redistributing requests to new machines, etc._

The thing is, this is not difficult to do with AWS:

        $ ec2-run-instance ami zone --user-data-file spin-up-a-new-webserver.sh
        ...(you need to parse this for the instance id)...
        $ elb-register-instances-with-lb $LOAD_BALANCER --instances $INSTANCE_ID

(In real life, use Boto (Python) or equivalent in your language.)

Once the new instance comes online and is legitimately serving up pages, the load balancer will begin redirecting requests to it.

This is why we use amazon - handling stuff like this is just a matter of calling their utilities.

</comment></comment><comment><USER9> I recently bought a server (xeon 5606 + 24GB Ram + 2 TB storage with hardware raid) for $2k and I am hosting it in a colo for $75. I find this ideal for small services and gives you a lot of performance allowing you to go a long way with a couple of machines before you need to scale. Adding more CPU/Ram/Storage will not add more to your monthly payment since you own the machine. Now of course it's not as convenient as AWS and if a machine goes down you are responsible to get it up again.

Scaling in AWS is a piece of cake and gives you a lot of flexibility but when it comes to performance, especially RDBMS, I find AWS to be far behind. Some will say that you can scale the service to provide good RDBMS performance but that will not avoid the per instance disk IO slowness.

<comment><USER10> If your network card fails or your CPU overheats, how long are you down for?

If you care if your website is up there are other costs when doing a colo. You should have spare for every component which nearly doubles your hardware cost and have someone on call for sys admin and hands-on fixes.

<comment><USER9> You can fall back to AWS in those cases.

</comment></comment></comment><comment><USER11> Our new startup is all AWS, and honestly i dont think we could have pulled it off any other way. Key factors:

* Getting into a data centre is costly and difficult without venture funding

* When stuff breaks, i need someone to go fix it...just too expensive and time consuming

* I want predictable expenses because we dont have a lot of money, not having to pay for repairs...and being able to create new servers easily myself gives me this

I can see how we may need to move away from AWS down the road to reduce costs, but honestly i'm not convinced its going to be the difference between success and failure.

Given what AWS provides in the short term, unless you're talking expenses of 40K/month i wouldnt even waste your time with self hosting. System administration (Hardware) is very expensive...

Edit: I should also note we need lots of geographical locations, so we're a little different in that regard. AWS again gives us an easily means of being in 7 locations without opening any additional accounts.

</comment><comment><USER12> Ive said this a few times earlier on. The main benefit to Cloud hosting is hourly billing. Unless you are utilizing this feature extensively you will almost always be better off in a dedicated/colo enviorment. You will get more power/bandwidth for less money.

That being said, there are some edge cases. If you make extreme use of additional feature of amazon ( SDB/EIP/etc.. ) then the Amazon "bundle" could make it a better situation for you.

Im only writing this because I see so many HN'ers talk about "Well, I can spin up a extra large instance at any moment to handle extra traffic!" - The fact is, most of you dont do that. And even if you do, you would likely save money just being on a dedicated anyways. Cloud hosting is really for "overflow" and nothing more.

Again, Hourly billing- Cloud hostings biggest advantage.

<comment><USER13> There are other significant benefits to cloud hosting. Specifically on AWS:

* Storage flexibility with EBS and S3

* instant migration abilities between instance sizes

* backup and restore

* provisioning of resources when needed

* staging, dev, test resources

SDB and ELB usage certainly aren't edge cases, they are core to many many deployments.

The provisioning flexibility alone is a tremendous benefit considering that most highly trafficked Web properties are not static environments. They constantly innovate and have demands for infrastructure that can really be challenging in a dedicated environment.

In our case, we use AWS extensively, but where we have been able to carve out a "static" set of resources, we do and host with 100TB.com - simply because they offer so much bandwidth for cheap and those static resources pump out a lot of bandwidth which isn't cost effective on AWS for day to day operations.

Edit: from a financial standpoint, if you choose to purchase reserved instances for AWS, hosting becomes far closer in costs benefits to dedicated environments.

<comment><USER14> RDS also saves a lot of time if you're using MySQL with replication and snapshotting. It makes a nontrivial amount of work trivial.

<comment><USER15> At the risk of being an obnoxious pedant, "nontrivial amount of work" is, to me, a non sequitur. Trivial describes the complexity of work, not the amount. Work is either well understood (trivial) or not well understood (non-trivial). In either case the work effort itself can be variable.

I can't comment on the accuracy of your comment otherwise. Those who can, write content. Those who can't, nitpick semantics :)

<comment><USER16> If you want to be a hardline language pendant about it, "trivial" describes neither an amount, _nor_ complexity but commonness.

But either way, yeah, you're being obnoxious because idiomatically "trivial" when applied to work fits fine and is easily understood for all of these scenarios (complexity, amount, and uncommon vs common).

I certainly wouldn't consider collecting all the trash in the LA metro area "trivial work" by the well-understood meaning of the phrase even though it is commonly done and it is easily broken down into non-complex steps.

<comment><USER14> Prescriptivist vs descriptivist, and entirely off-topic.

</comment></comment></comment></comment></comment></comment><comment><USER17> > Because labor is a mostly fixed cost for each alternative, it will tend not > to impact the relative comparison of the two alternatives

I don't buy this. My experience is that the ops cost of a co-location facility are much more expensive than aws. The ops cost functions doesn't seem to linear as he is describing either.

People costs dominate early on and are a huge factor until you start to reach steady state and that's the variable that you need to optimize for.

Having said that aws is expensive. If dollars are worth more than hours to you, then yes, by all means host things yourself.

</comment><comment><USER18> This is looking at one aspect of hosting: your hosting bill at the end of the month.

If you are taking advantage of the various services AWS offers, you can save development time. For example, if I can get up and running quickly using RDS and save a bunch of time compared to setting up replicated mysql, maintaining backups, etc, I'll gladly pay the extra cost.

The same goes for load balancers, memcached, etc. Sure, I can save money in the long run once I've established my app. Initially, I don't want to waste a bunch of time bringing these services up on my own.

</comment><comment><USER19> I run SSD Nodes, Inc. (<http://www.ssdnodes.com>) and we have various business clients using our services for their peak offloading while maintaining their in-house infrastructure (I can't be more specific than that because of our privacy policies). I would recommend doing both, mainly because scaling is super easy.

<comment><USER20> Holy crap, you guys support FreeBSD, too. I've been looking for a good alternative to Linode for a while.

Do you guys have automatic provisioning/pro-rated billing? Do you do any shady stuff like requiring cancellations two months in advance?

<comment><USER19> We're using XenServer, so auto-provisioning is still on our plate since we have to build all of that in-house (solutions like SolusVM don't work with our unique infrastructure). For the most part getting a new account up and running takes 15-30 minutes, and you can request an OS reload at any time through a support ticket.

We're very upfront with our cancellation policies, which is 24 hours from when your bill is due (I can't imagine companies requiring a month or two in advance, that's absurd). Our reasoning is that if the service is easy and painless to cancel, people will be more than willing to order again.

<comment><USER20> Cool, thanks for the info. I will be checking you guys out.

Tilaa.nl is one company does the shady two month cancellation stuff. They suck.

It seems non-Linode VPS providers either have shady cancellation/retention policies OR lack auto-provisioning/pro-rated billing.

<comment><USER19> Sorry I overlooked that last bit, we do offer pro-rated billing. The way it works is when a new client orders, that becomes their monthly billing date. Any upgrades are pro-rated with the remaining days in the billing cycle. If you order another package as an existing client on a different date than your monthly billing date, open a ticket with the billing department and we'll pro- rate it with the remaining days in the cycle. Some clients like having different billing dates for their services, others prefer them all to be on the same day each month. We're flexible and will accommodate to your preferences.

<comment><USER20> Cool, thanks for the replies.

</comment></comment></comment></comment></comment></comment><comment><USER21> I noticed a few things in the calculaton that bias it towards self hosting:

* Using us-west, the more expensive option

* Not including labor, which is signifigantly higher if you have to rack and stack yourself.

That being said, I agree with the conclusions. If you're traffic isn't spiky or variable, then you might be better off self hosting.

<comment><USER22> "You're" instead of "your"? Really?

<comment><USER23> You're comment does not contribute to the thread at all. Really.

<comment><USER22> I don't give a shit.

</comment></comment></comment></comment><comment><USER24> I tend to agree with this analysis. I work in a datacenter and I noticed that people transition from shared cloud to self-hosting (or dedicated cloud) if they have nil or few traffic spikes.

Those who are already self hosted use AWS to absorb traffic/computation spikes.

</comment><comment><USER25> As someone who has never written an application to be ran in a cloud environment, I've been wondering for a while now: what sort of extra complexity is introduced in your code to handle the unreliability of any given server, the network, and latency in general? What techniques are used to deal with it?

I'm approaching this more from the viewpoint of a webapp that might only need ~10 dedicated servers to handle peak load with redundancy rather than ~150, so our colo solution doesn't have servers constantly breaking on us.

</comment><comment><USER26> Simple example: For one of my projects, I needed to host 16+TB worth of satellite imagery and elevation. I put a machine together with 24GB Ram, raid5, and 8 cores for around 3800. I pay $200 a month for unlimited bandwith (and I still have 2Us that I am not using). I got pricing from rackspace, amazon, go grid, etc. Nobody came remotely close to that price.

For most of my other projects, I always use Amazon. But for this use case, there was no challenge by any other cloud/hybrid cloud service.

</comment><comment><USER27> I compared Amazon to rented servers (monthly cancelation possible) one year ago, and even if you have spike traffic, you need to deep dive into cost to find out if cloud is cheaper for you.

It wasn't for me.

[http://codemonkeyism.com/dark-side-virtualized-servers- cloud...](http://codemonkeyism.com/dark-side-virtualized-servers-cloud/)

</comment><comment><USER28> The difference between $60k and $70k isn't all that significant -- particularly if you find that AMZN saves you labor.

</comment><comment><USER29> If you have a lot of storage needs then self-hosted is the way to go. We have 30TB storage mirrored across two data centers and pay less than $500 a month. There is a copy on the east coast, one on the west coast, and one in the office.

I wonder how many nines of reliability that gives us?

</comment><comment><USER30> Why would it be so simple to use AWS compared to a hosted server like with Hetzner? On EC2 you still have to administrate a Linux OS and install patches, take care of incompatibilities, etc.

</comment><comment><USER31> It depends on what you use them for. I use ec2 as a testing platform to experiment and gauge performance. From that viewpoint, it's cheaper and easier than a normal host.

</comment><comment><USER32> To be honest, I'm not much of an ops guy. So, I'm going with Hetzner dedicated servers. AWS is more difficult for me opswise than dedicated, and with dedicated I get all of the "let the people who know how to run data centers host your servers" service that EC2 gives you.

AWS and traditional architectures are too much ops load, require too much specialized knowledge and have too many single points of failure. Plus if Amazon has terms you don't like (I personally won't do business with them given their treatment of wikileaks) your reliance on their protocols and services makes it non-trivial to migrate elsewhere... if you just use EC2 as bare machines, then there's no advantage to AWS over any other bare machine host (and a big cost disadvantage.)

I'm building a cluster of distributed three-times-replicated data on top of Riak. Every node is a web server, dns server and database node. Round Robin DNS distributes the load, and if a node goes down, I don't have to even get out of bed... it can wait til morning, because nothing should break. (Of course this is what I'm building, I can't say it has performed in production yet, so this is theoretical...)

I call this Nirvana.

The only SPF I should have is if the whole datacenter goes offline-- this is a legitimate risk, and once I get large enough to handle that risk, I'll upgrade to Riak Enterprise and host in 2 data centers.

I'm not certain I'm not missing anything, but I don't understand why I'm seemingly cutting new ground here-- this seems like the way everything should run. (and if you agree and are interested in Nirvana, follow me on twitter, I'll be open sourcing it as soon as I possibly can.)

</comment><comment><USER33> Really depends on what you're doing and what you can afford.

If you're Foursquare and you can afford to double the cost of your infrastructure because you want some of the benefits of the AWS platform (and there are plenty of benefits these days) - then it's tremendous to say the least. Amazon is doing really incredible things with AWS.

If you're doing less than a million uniques per day, you can go get three tremendous machines, lasso them together, with a web server + main db + slave db, for between $800 and $1250. You can get 100tb of bandwidth on a 1gbps port (Amazon gives you none), dual 5645 Intel processors (or 2x16 core AMD), 48gb of ram on the db machines (96gb if you want to pay another $200 / month), with a RAID 10 config SAS 15k drives. That equivalent setup with Amazon would cost you $5k to $10k depending on what you config. You can get this setup from reputable hosts like WebNX and SecuredServers; if you want to pay more for a better host and get a little less, you can go with Rackspace or Gigenet or Softlayer.</comment>


The Future of AngularJS - <AUTHOR> https://docs.google.com/presentation/d/1Gv-dvU-yy6WY7SiNJ9QRo9XayPS6N2jtgWezdRpoI04/edit#slide=id.p

<comment><USER2> What _I_ don't understand is all the whining about posting slides.

This is fresh off the presses, answers hot questions in the angular community, and obviously people are upvoting it. If you're aware of what's happenning in Angular, every slide stands on its own and has useful info.

Can we please give all the moaning about format a rest please?

<comment><USER3> I wouldn't call this fresh off the presses. The angular team talked about many of these points back in June. [http://www.youtube.com/watch?v=W13qDdJDHp8](http://www.youtube.com/watch?v=W13qDdJDHp8)

It's really exciting. This is a good summary of the future though.

<comment><USER4> To be fair, this is the first time I've seen this. Not everyone gets to see everything as it comes out and I would argue that June (3 months ago) isn't exactly old news. Having said that I am really excited to see the future of Javascript isn't as ugly and hacky as it currently is.

</comment></comment></comment><comment><USER5> Neato. Angular reimplementing it's own module system (when many developers already have a large body of code in existing module formats, particularly AMD) was one of the things that turned me off when first looking at it.

Do ES6 modules have all the dependency injection stuff the Angular developers wanted?

<comment><USER6>
        Module system =/= Dependency injection.

        AngularJS modules =/= CommonJS modules

Module system = way to FIND object definitions physically(files) or logically(name). Python has one, NodeJS has one.

Dependency injection = way to WRITE objects by creating dependencies between them in order to separate concerns.

        RequireJS = gives Javascript a module system
        ( fetching files according to the module name to
        find module definitions ),which is
        configurable since JS doesnt have one.

       AngularJS = instanciate objects according to their
       defintion and the definition of its dependencies =>
       doesnt look for files in a path to find the definitons.

And ES6 definetly DOESNT DO dependency injection, ES6 gives JS a module system which is configurable.

When ES6 gets it's module system , people wont need require JS anymore, but it has nothing to do with AngularJS.

<comment><USER5> Please read posts before replying to them.

\- Nowhere in my post did I say a module system was dependency injection

\- Nowhere in my post did I say angular JS modules were CommonJS.

Please don't use uppercase for emphasis, see [http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html)

Explaining in further detail: a feature of some module systems is dependency injection (yes, dependency injection can also be performed outside a module system, but the slides discusses module systems so we will too).

DI gives module systems the ability to instantiate objects using different dependencies. This is handy for things like testing, where eg, a name that would normally resolve to a network API module would instead be resolved to a stub module with pre-canned responses, so any calls to that network API module return consistent responses.

Lack of dependency injection in existing JS module systems (you can do it in AMD, but using file paths so it's kind of hacky) is cited in the angular docs as the reason Angular includes its own unique module system.

Weather people still use AMD or CommonJS or Angular modules after ES6 modules really depends on the feature set of ES6 modules. Hence asking about the feature set of ES6 modules.

<comment><USER7> > _\- Nowhere in my post did I say a module system was dependency injection_

Let me remind you then:

"Do ES6 modules have all the dependency injection stuff the Angular developers wanted?"

> _Explaining in further detail: a feature of some module systems is > dependency injection_

An orthogonal, non relevant feature, that has nothing to do with the core role of a module system.

That some module systems have this frankensteinian stuff included doesn't mean much.

<comment><USER5> The statement you are bizarrely quoting quite clearly does not equate dependency injection with module systems.

Again, read HN guidelines, your account is quite new and it's very obvious you haven't done so yet.

</comment></comment></comment></comment></comment><comment><USER8> Unfortunately, I didn't see improved documentation in their future vision...

I'm not sure how a lot of those ideas will work with compatibility with older versions of IE. You already have issues using the element tags for new attributes.

<comment><USER9> hahaha. Did you ust say "compatibility with older versions of IE".

I'll probably get downvoted for this but.

If you want to maintain "compatibility with older versions of IE" try an older version of HTML, an older version of CSS, an older version of javascript and an older x86 processor, and an older version of windows (95 sounds nice).

Sorry.

If future features should try to remain compatible with older versions of IE we will get very little innovation.

<comment><USER10> Well, the thing is both Chrome and Firefox get updated automatically but IE doesn't.

So the problem will not IE versions that are already old (IE6, IE7) but current versions of IE - even future versions before they implement these new standards.

As these features roll out to Firefox and Chrome, users of these browsers will have to them because of the auto-update pretty quickly.

Eventually IE will implement them, maybe in version 12, and you'll have users still using IE10. Heck, maybe they won't be able to upgrade their IE because it won't run on their aging Windows 7.

Unless IE switches to the auto-update used by Firefox and Chrome, and stops dropping Windows versions in their new IE, I don't see the problem going away.

<comment><USER11> IIRC IE10 autoupdates

</comment></comment></comment></comment><comment><USER12> I don't understand why people link to raw slides. Are we meant to waste our time trying to read meaning from them like tea leaves?

Surely there is something to go with this slideshow?

<comment><USER13> I'm guessing someone at Google marketing posted this. Slides are useless without the actual presentation that goes along with it.

<comment><USER14> Yeah but I don't like watching actual presentation videos, because then there is audio and they move at their own pace. I'd love to see more slides + detailed notes though.

</comment></comment></comment><comment><USER15> The Shadow DOM seems like beautiful for reading/blocking output but I see most of my time with the "Expand Shadow DOM" option in the dev tools to see what the heck is actually going on during development.

</comment><comment><USER16> Now whenever I see The Future of <something>, I asume such thing is getting killed.

<comment><USER17> Same with "Security at <something>" meaning something bad happened. There's another story on the HN homepage right now where I assumed it was a break-in, when in fact is was a preemptive strike.

</comment></comment><comment><USER18> You have to sign in with a Google account to access the content. All I get is a login page, at least.

Anyone got a link that is publicly accessible?

<comment><USER19> Worked fine for me too. I think it might do that if you've already been logged into a Google account and signed out. Try deleting your Google cookie(s) entirely.

</comment></comment><comment><USER20> I really cannot understand why this whole phase of "posting my slides" is becoming a big thing. Powerpoint presentations are useful in context. This link was of no use to me apart from some bullet points

</comment><comment><USER21> Being able to avoid $scope.$apply() will certainly be nice.

As it stands now, if you want to leave the Angular reservation and use something like the Parse JS SDK (which is a customized set of Backbone models) your code will be littered with $scope.$apply(). Not very DRY, and also adds, from the dev's point of view, a needless level of nesting functions.

<comment><USER22> Parse.com has a perfectly capable REST API[1] that you can use with Angular's $resource. If you use Restangular, then your life becomes even easier. It won't be as convenient as using their JS SDK, but your code will end up looking much cleaner.

\---

[1] [https://www.parse.com/docs/rest](https://www.parse.com/docs/rest)

<comment><USER21> I've spent my fair share of time pouring over Parse's REST docs[1][2]. It's a fairly large undertaking to fully support all REST features, so it's still a decent trade-off to just use the JS SDK. If there are any Parse + Angular REST client projects, I'd be happy to contribute some code.

[1] [https://github.com/adelevie/parse_resource](https://github.com/adelevie/parse_resource)

[2] [https://github.com/adelevie/parse-ruby- client](https://github.com/adelevie/parse-ruby-client)

</comment></comment></comment><comment><USER23> Do we have more clues as to what migrating an angularjs directive into a webcomponent will look like ?

<comment><USER24> This is my biggest fear with Angular

</comment></comment><comment><USER25> What I want to know about the future of AngularJS is: what is the state of server side rendering? We have some of our own ideas as to how this could work at [https://starthq.com](https://starthq.com) but I am hesitant to start implementing anything so as to avoid duplication of effort.

<comment><USER26> You should take a strong look at [http://github.com/airbnb/rendr](http://github.com/airbnb/rendr) . I'm sure non-backbone adapters would be appreciated.

<comment><USER25> I couldn't find info on these adapters. From what I can tell this is very Backbone specific. Can you point me in the right direction?

</comment></comment></comment><comment><USER27> I was really excited when I saw the multiple responses possible for a given request

<comment><USER28> This does sound useful, but I'm not sure what it has to do with Angular. Are they going to create more resources with the assumption that HTTP 2.0 will fix it?

<comment><USER29> They're saying it will help single page apps in general I think

</comment></comment></comment><comment><USER30> Personally, I liked that the slides are up there publicly, even if I don't get to see the talk to go with them - they function nicely as a brief overview to the future of Angular, letting good devs fill in the rest. Much of this isn't new, but I liked seeing some example code snippets comparing current and future syntax.

</comment><comment><USER31> Is there a release schedule for ES6?

<comment><USER6> I heard end of 2013 a year ago , unlikely , their spec has too many stuff. The only things devs need urgently is the module system , let , const , proxies and the new data types ( sets , maps , weakmaps , etc ... ), the rest can wait IHMO.

</comment></comment><comment><USER32> When ECMAScript 6 "happens" (any idea when that will be?), will we actually be able to use it or will we have to stick to old things due to browser compatibility?

</comment><comment><USER33> does anyone know if there was a presentation that went along with these slides. it would be great to be able to see it. @briantford if you see this, we'd love to see more of the meat behind the bullet points. cool stuff though!

</comment><comment><USER34> Am I the only one who thinks the name "Angular JS" is nonsensical and, frankly, a little silly?

<comment><USER35> I would guess it was originally "ng" for next generation, and then they wanted to come up with some kind of pronounceable name when they made it public. I'm just glad it's easy to google!</comment></comment>


Wall Street's Corruption Runs Deeper Than You Can Fathom - <AUTHOR> https://www.truthdig.com/articles/wall-streets-corruption-runs-deeper-than-you-can-fathom/ <comment><USER2> > "Noncompliant" explores one of the darkest chapters in modern American > history, but with a crook and unabashed narcissist occupying the Oval > Office, its lessons are proving remarkably timely.

The chapters in question took place during Obama's terms, and the repeal of the Glass-Steagal act was a bipartisan effort. Yet that sentence is implying that, if someone superficially decent was President (R or D), then this would somehow get fixed/those responsible would be prosecuted. I think it's pretty obvious that, if you want to go after Wall Street, you either need a third party, or to _substantially_ change the two main ones.

<comment><USER3> I think you're assuming more meaning in that statement than was intended. I somehow doubt that "timely" as used here implies that untimely means fixed.

</comment></comment><comment><USER4> I saw this interview with David Icke, the lizard-people guy. He was like, "did you know that there are families that control a lot of land and hold a lot of power and they've been in Europe for centuries.' And the host was like, 'hahaha yo dude, how old are you that you're just finding this out?!?'

I took liberty with the words, but yeah, hey everyone, guess what?! People do fucked up shit to get more resources. Turns out, we're animals after all.

<comment><USER5> What your statement misses is that the problem is confounded by most people simply not believing it. They will believe that "people do fucked up shit to get more resources", while simultaneously believing that government is good, central banking in necessary, the money system is sound, the commercial banks are solvent, voting works, the justice system is blind, the wars are necessary and so on and so on.

And people who point out the truth of this corruption are derided, ridiculed, called a conspiracy theorist, compared to David Icke and so on.

I would concede you your point if people en masse really did think that Icke's statement was common knowledge, but it is clearly not. The myths that keep the common person conforming to the powers that shouldn't be run deep in the psyche.

</comment></comment><comment><USER6> TFA mentions Brookley Borne's efforts to blow the whistle on the risky financial instruments behind the financial collapse.

Frontline on PBS did an excellent episode looking at her efforts to regulate derivatives under the Clinton administration.

>"We didn't truly know the dangers of the market, because it was a dark market," says Brooksley Born, the head of an obscure federal regulatory agency -- the Commodity Futures Trading Commission [CFTC] -- who not only warned of the potential for economic meltdown in the late 1990s, but also tried to convince the country's key economic powerbrokers to take actions that could have helped avert the crisis. "They were totally opposed to it," Born says.

In The Warning, veteran FRONTLINE producer Michael Kirk unearths the hidden history of the nation's worst financial crisis since the Great Depression. At the center of it all he finds Brooksley Born, who speaks for the first time on television about her failed campaign to regulate the secretive, multitrillion- dollar derivatives market whose crash helped trigger the financial collapse in the fall of 2008.

[https://www.pbs.org/wgbh/frontline/film/warning/](https://www.pbs.org/wgbh/frontline/film/warning/)

</comment><comment><USER7> By objective measures, the US is by far the most corrupt nation in the world. China aspires to the title, and may get it, and Russia dreams of it, but just doesn't have the volume to match us..

We don't like to think so, but consider: did anybody get charged with fraud over the crash of 2008? Why not? We have laws on the books making what everyone did a writhing, toxic mass of felonies.

<comment><USER8> And what objective measures do you have for nations like China, Russia, Iran, and plenty of despotic dictatorships in Africa? There isn't some magic measure that goes filters through all the lies perpetuated by those countries. There is definitely some degree of corruption in the US but there isn't really evidence for the strength of your assertions. I suspect China is probably a lot worse because of the opacity/concentration of power of the communist party. I'd also be interested to hear what felonies perpetuated 2008. The government incentivized individuals to buy homes, and the banks looked the other way as long as people signed their mortgage agreements. A lot of the laws that would've prevented this were repealed in the 90's.

<comment><USER7> If you don't know about the fraud, it can only be that you have not been paying attention.

Fabricated signatures on thousands upon thousands of mortgage documents is hard to get confused about. Goldman Sachs paying multibillion-dollar fines for deliberate misrepresentation, without anybody there charged personally with a crime, is easy to find in the public record. A Goldman Sachs corporate officer becoming Obama's Secretary of the Treasury in the middle of it all, likewise.

</comment></comment></comment><comment><USER9> This liberal is whining, 'murica!</comment>


Super-Flexible Liquid Crystal Device for Bendable and Rollable Displays - <AUTHOR> http://sciencebulletin.org/archives/7979.html <comment><USER2> That graphic of the screen rolled around the person's wrist would be cool upgrade for football quarterbacks- would allow for more complex game plans since the coordinators could display whatever they want on the screen in real time during the game.

Of course there are probably more important applications of this technology too.

<comment><USER3> I'm not sure whether this would be allowed. In soccer, for example, using earphones and so on was forbid based on the rule that it wasn't part of the allowed equipment.

<comment><USER4> I believe creaghpatr was talking about American Football. The coaches already use radios which have speakers inside the quarterback's helmet to relay the plays to them. It seems like this would be a logical jump as they could get more information and crowd noise would not be a factor.

<comment><USER3> :) yes, I thought so, that's why I used _soccer_ to make the distinction... but I didn't knew football allowed such intense communication during the game, and it would be funny to see a quarterback trying to read his pulse while he's being tackled.

</comment></comment></comment></comment><comment><USER5> "The plastic substrates are poor gas-barriers for oxygen and water vapor, and the OLED materials can seriously be damaged by their gasses. "

Incidentally, polymer stabilized cholesteric liquid crystals make an excellent passivation layer and are highly flexible thinfilms. I've always wondered why flexible OLEDs (FOLEDs) never adopted. Maybe HN knows?

</comment><comment><USER6> Is my long-dreamed-of, papyrus scroll -> cellphone screen scroll, full-circle- moment finally at hand?</comment>


Haskell IO without monads - <AUTHOR> http://neilmitchell.blogspot.com/2010/01/haskell-io-without-monads.html

<comment><USER2> Can you please restore the word "Explaining" to the front of the title? It appears to appeal to a different audience without that word.</comment>


Bitcoin Script - the Bitcoin programming language - <AUTHOR> https://en.bitcoin.it/wiki/Script

<comment><USER2> I have always found this part of Bitcoin interesting, but I am having a hard time wrapping my head around how this would be used. I would love to see a blog post detailing how to implement a service (escrow or something) annotated with code.</comment>


Applications open for winter 2010 YC funding - <AUTHOR> http://ycombinator.com/2010changes.html

<comment><USER2> _We haven't decided for sure, but we have to change something, because reading all the applications is becoming overwhelming._

Why not have someone create a simple, private site which makes salient application information: a screenshot which may lead to the site's demo, video of founders, answers to questions. Then certain trusted people, partners or alumni, can rate the applicants over time. Instead of going days without shaving and being exhausted, you could spend a few minutes each day flipping through applications. Surely over time those you are interested in for an interview will be apparent. I'm pretty sure there was a reason not to use this approach, but it may be worth it to bring it up again.

<comment><AUTHOR> Half the groups who apply only do it in the last day or two before the deadline.

<comment><USER2> Eliminate an explicit deadline. It may affect the applicant pool at first, but subsequent iterations should be normalized.

<comment><USER3> Removing the deadline removes the likelihood of groups applying.

</comment></comment></comment></comment><comment><USER4> PG, just outsource the entire selection process to Mechanical Turk. It could be an experiment similar to that proposed in the finance classic "A Random Walk Down Wall Street" in which a blindfolded monkey throwing darts at a stock page out-invests stock-picking experts. If Mechanical Turk picks a more successful crop of startups than the YCombinator average, you will have succeeded in making yourself completely redundant -- a worthy goal of any enlightened manager.

<comment><USER5> If the applicants have a demo-ready B2C product, MTs [1] might even be consistently better at picking winners than YC, as the ultimate success depends on what MTs think, since MTs[2] approx= common people approx= customers.

[1] Given enough MTs

[2] Provided you restrict allowed MT demographic to match your target market

<comment><USER6> Except that I believe (from YC terms) founders(and thier ability to persevere) are more important than thier ideas.

<comment><USER5> Yes, which is why I said "If [they] have a demo-ready B2C product". YC is more early stage than what you can meaningfully show MT.

Also: If users love your product (not just the idea) and pay, you have already demonstrated that you are a good team, and it is pretty easy to persevere when you have an increasing number of paying customers.

</comment></comment></comment></comment><comment><USER7> The Application Form link (<http://news.ycombinator.com/apply>) still results in:

"Sorry, but applications for summer 2009 are now closed. Check back in a few months for the application form for winter 2010."

<comment><USER8> Perhaps that how they're going to reduce the number of applications to read.

</comment></comment><comment><USER9> _we may ask some YC alumni to help us review applications_

Why limit this to YC alumni? Obviously you don't want to fully "crowdsource" the process (both for reasons of quality and for reasons of confidentiality); and YC alumni presumably have an advantage of knowing what being in YC is like -- but conversely, using YC alumni has the disadvantages that (a) they're liable to be busy running startups, and (b) there's a good chance that they would fall into the people-like-us trap.

Can't you think of any smart and trustworthy non-YC-alumni?

<comment><USER10> Shouldn't big name VCs like Sequoia do the same? I think confidentiality is probably the biggest reason. Who else would YC trust better than their previously funded startups?

</comment></comment><comment><USER5> The amount is more solo-founder friendly than before. Has YC become more solo- founder friendly than before?

<comment><USER11> I wonder how many solo founders are there in YC. Anybody know any of them?

<comment><USER9> I don't know any examples, people have asked on several occasions how many single-founder companies YC funds, and IIRC pg said it was roughly 5% of the companies.

<comment><USER12> I think PG's advice against solo-founder companies would remain true, hence not rendering YC any more solo-friendly. I'm surprised that number is even 5%, considering the number of high-quality YC applicants that could potentially be paired together.

</comment></comment></comment></comment><comment><USER13> Any tips for the application? (Other than the obligatory, don't ask on HN)

We have a solid business plan, plenty of lines of code and are looking forward to applying.

<comment><USER14> Make the questions look easy.

<comment><USER13> You made my question look easy!

I had to think about it but I do get what you mean. Let me see if I can summarize. If one can make difficult questions seem trivial, then it shows potential.

Thanks.

</comment></comment></comment><comment><USER15> Is it me or is this application coming out much sooner than it has in the past? Not complaining though- this is always a welcome YC submission.

<comment><AUTHOR> We've been getting lots of people asking about it. Maybe it was the _Inc_ article.

</comment></comment><comment><USER16> are startups allowed to reapply? we didn't get in last time, but we're still making awesome progress ...

</comment><comment><USER17> 4 founders should get $23k, right?

<comment><USER9> No: "we're going to invest $11k + $3k per founder, _for up to 3 founders_ "

<comment><USER17> Whoops! Thanks. I think I was distracted because at first I thought "k" was the variable representing # of founders, and then when I figured that out... ah, forget it. I'm an idiot.

</comment></comment></comment><comment><USER18> why not just hire someone to help out? Pay them by charging a small($10) application fee to filter out the bs applications.

<comment><USER19> Because the sort of people that would work for $10 aren't the ones you want reviewing funding applications.

<comment><USER18> I'm not saying that the person would review all the apps at $10/pop. Just the extra that pg can't manage.

\+ its not like it'd be peanuts. Let's say YC gets 1,000 applications this summer. That'd be $10-20-$100K(depending on how much they'd charge) to go towards the extra person to review the app.

I dunno about you, but 10-20-100K for a month's worth of work is hardly peanuts. If you use the $100 price point, that's $200K/yr just to review funding apps for 2 months. Plenty of cash to "hire" some angel investor as a "consultant", who'd be able to do this and still have the time to do his regular "job", the other 10 months out of the year.

\+ talk about synergy, the angel investor would be able to get in on the ground floor, to fund the program graduates at show and tell, and if pg passes on some project that the angel thinks has merit, he can fund them outside of YC.

<comment><USER20> I would rather have 6 or 7 more companies funded than drop 100k having someone sort through applications.

<comment><USER21> Under this proposal, the applications pay a small fee, so the total operation is neutral.

</comment></comment></comment></comment></comment><comment><USER22> Will you read every application all the way through?

</comment><comment><USER23> I have been on this site for like a long time, but could someone explain thoroughly what is it that they are funding, how it really works, do they get any percentage of the company in return and why would anyone want to be funded by Mr. Graham?

<comment><USER24> <http://ycombinator.com/about.html></comment></comment>


Python vs Java? Which is good as first language (Infographics) - <AUTHOR> http://javarevisited.blogspot.sg/2013/11/java-vs-python-which-programming-laungage-to-learn-first.html

<comment><USER2> We all know that you (Javin Paul) want to promote your blogspot blog and get some good traffic from Hacker News.

Your article is totally shallow and shows no research what so ever, supported by an equally distracting infographics from 'Perception Systems'. Did a carbon dating test on the infographics and it turned out to be more than 3 years old.

You didn't even cared to mention the versions on which the test is done .... is it Python 1,2,3 or java 1,2,3,4,5,6,7.

Python is slower than Java... on which platform and for what type of codes.

I suggest you to read [http://www.infoworld.com/d/application-development/van- rossu...](http://www.infoworld.com/d/application-development/van-rossum- python-not-too-slow-188715)

<comment><AUTHOR> Well, that's not completely true, I also share other people's content. By the way, I hear you. Thanks for feedback.</comment></comment>


Simulate Slow Internet Connection while Testing your Apps - <AUTHOR> http://www.devcurry.com/2010/07/simulate-slow-internet-connections.html

<comment><USER2> Don't forget that bandwidth is only half (and most of time not the important half) of the story. Latency and packet losses usually have much stronger effect on website performance (see this classic paper <http://www.stuartcheshire.org/rants/Latency.html> or any of velocity 2010 videos).

There are a couple of free and commercial products that enable you to emulate latency, packet loss and bandwidth at the same time, just google that.

<comment><USER3> I saw precisely this in the (attempted) cross-continent deployment of some enterprise software. The amount of data being moved was relatively small, but the software was so damned "chatty" -- insisting on dozens of requests/responses for even the simplest operation -- that latency effectively killed it in this context.

I'd argued this point and that it be tested -- a simple network simulator would have sufficed. But management was willfully clueless, and the vendor wanted the sale more than an effective deployment.

Latency should be a part of any non-trivial testing.

</comment></comment><comment><USER4> This is something Twitter should try.

When I was in India six months ago, I usually had a pretty bad connection and Twitter's web interface worked terribly.

\- You had to wait for every single element on the page to load before you could click to use the login box - else you would jump to the login page itself and had to wait for that one as well.

\- Clicking a list, clicking a saved search, basically everything with an ajax request doesn't have a really good indicator of that it's loading, so that experience was horrible.

\- There were probably other issues as well.

Facebook on the other hand did amazing. Of all the websites I tried and used, Facebook was the most stable, was the quickest to load (in spite of all the JS, etc) and generally performed really well on a slow connection.

</comment><comment><USER5> <http://netlimiter.com/>

<http://tmurgent.com/Tools.aspx>

<http://furbo.org/2009/03/24/slow-ride-make-it-easy/>

[http://developer.yahoo.net/blog/archives/2009/10/a_engineers...](http://developer.yahoo.net/blog/archives/2009/10/a_engineers_gui.html)

</comment><comment><USER6> In Mac you can use SpeedLimit: <http://mschrag.github.com/>

</comment><comment><USER7> For Linux, try this <http://www.linuxfoundation.org/en/Net:Netem>

</comment><comment><USER8> Windows only app Firefox Throttle, a throttling proxy "Sloppy" is also mentioned in passing.

</comment><comment><USER9> FOrtunately! I don't have to use this app to get crappy bandwidth. DSL!

</comment><comment><USER10> I am looking out something for Linux too? Any suggestions?</comment>


Deep Learning from Scratch to GPU: CUDA and OpenCL - <AUTHOR> https://dragan.rocks/articles/19/Deep-Learning-in-Clojure-From-Scratch-to-GPU-6-CUDA-and-OpenCL <comment><USER2> Dragon does rock. Amazing how different processor backends and software stacks are all supported.

I walked away from using Clojure years ago after I transitioned from a Clojure loving customer to customers who didn't use Clojure at all. Whenever I read something written by Dragan I second guess my decision to give up on Clojure.

<comment><USER3> This is really a perfect case study of why Clojure is the ultimate language for a single person's productivity. Macros and JVM access are a huge productivity increase compared to other functional languages.

</comment></comment><comment><USER4> I saw the headline and for a second thought it was about running Scratch ([https://scratch.mit.edu](https://scratch.mit.edu)) on the GPU.

</comment><comment><USER5> Does anyone know any good resources in learning about selection, construction and evaluation of deep learning network architectures to solve various classes of problems?

To many articles seem to be about how to use a particular stack or platform rather than the NN architectures themselves.

<comment><USER6> You might want to take a look at the books by Timothy Masters. Though i have not looked at his Deep Learning books, his earlier NN books were full of practical advice on the various models/architectures and how to map them to real-world problems.</comment></comment>


How to set goals and motivate yourself to achieve them. - <AUTHOR> http://ohadfrankfurt.com/2013/05/23/the-importance-of-setting-goals/

<comment><USER2> ACHIEVE! ACHIEVE! ACHIEVE!

ACHIEVE! ACHIEVE!

It's everywhere on HN, like a modern day <http://en.wikipedia.org/wiki/Stakhanovite_movement>

What wrong with just enjoying your damn life?

<comment><USER3> Nothing, but that's not what this board is all about.

</comment></comment><comment><USER3> This link seems a bit light and fluffy

</comment><comment><USER4> If you're not motivated to achieve your goals, maybe they're the wrong goals. I'm not saying never work hard for anything, but all the things I'm best at are things that I actually enjoy.</comment>


Show HN: Super Space Traveler (Prototype), a platform hell game for mobile - <AUTHOR> https://rink.hockeyapp.net/apps/44ae8090d77346d785f79f1adb6c0c2e <comment><AUTHOR> Hi guys! I need a little help from you! Do you think "platform hell" games has audience on mobile? (ex: Kaizo Mario, I Wanna Be The Guy).

I created a prototype to validate this idea, just 3 levels, would you like to test it and give me feedback? (only available for android for now =/)

Here is the download page: [https://rink.hockeyapp.net/apps/44ae8090d77346d785f79f1adb6c...](https://rink.hockeyapp.net/apps/44ae8090d77346d785f79f1adb6c0c2e)

You can join as a tester and receive updates here: [https://rink.hockeyapp.net/recruit/9993e469daba41209760e6602...](https://rink.hockeyapp.net/recruit/9993e469daba41209760e66024378b4e)

I've also created a promotional video for the prototype (I hope don't be charged by the use of music "Dream On" LOL): [https://www.youtube.com/watch?v=RVwW- GwarPk](https://www.youtube.com/watch?v=RVwW-GwarPk)

Thank you all! =)</comment>