Hacker Newsnew | past | comments | ask | show | jobs | submit | more azylman's commentslogin

This is a common misconception I see on HN.

To evaluate ad spend, you don't look at just short-term return. There's a reason that "lifetime value" is a critical concept for companies. It's fairly normal in large companies that, in a given year, you may spend more on ads than you gain from those ads - but you expect the customers you gain from them to continue spending over many years.

So you may spend $100 to gain a customer who spends $20 in the first year... then $40 in the second... then $80 in the third... now all of a sudden your return on that was positive, three years later.

These are the kind of ads you want to buy, even if in the short term it looks bad. These large marketing expenses should have compounding benefits over many years. The people who care about the short term like that are not the investors you want and not the people you're trying to please.


Okay, so how would you model that? Can you be precise? What's the lifetime revenue generated by $1 of ad spend? This number is critical, because if that number is too low then the equity is, mathematically, worthless. It's not about patience, it's about whether you're compounding a number that's >1 or a number that's <1. I just cannot tell.


Yes, companies have ways to do this with a decent amount of precision and accuracy based on existing user behaviors. They can often even be detailed enough to know that LTV differs depending on the channel that the customer was acquired by (e.g. organic vs. Facebook ads vs. search ads) and tailor their ad spend accordingly.

I don't know what AirBnB's numbers are, companies aren't required to disclose this and they guard it very closely :)


Yeah but as an investor why would you buy this stock, and at which price level if so? My point of view is that of an investor - how would I know if they're compounding up or down. Is it a zero? Is it great? All you're saying is "trust the management".

I am not saying they're doing a bad job, I am merely saying that it looks difficult to tell. Remember, the management has a huge incentive to sell you the stock regardless of the future value of the business, it's your job to figure out if it is a good idea.


I'm not saying "trust the management", I'm telling you how an investor would think about it. High spend on marketing can absolutely be justified. Additionally, there's rarely enough public info to allow any investor to independently verify whether it's justified in a specific scenario or not. But if an investor thought that there was positive ROI on that spend, they're not going to fret too much about how large that amount is - as long as it's bringing in a positive return.


Sorry for ad hominem, but it simply seems that you haven't thought about how to value (determine the price of) securities.


This is reflective of the adoption of dice, not the adoption of Go... there are lots companies in NYC that hire engineers to develop in Go (Google and Uber immediately come to mind).


> failure to receive back any reply within the stipulated deadline

If you get this error back, the client doesn't know if the server actually processed it or not, so knowing where the client failed isn't actually useful for knowing the state of the request and what needs to happen next.

To handle something like this, you need a resilient design around client-server communications (e.g. assuming retries on the client side and idempotent behavior on the server side).

Immediately erroring out on the client is usually going to lead to a poor user experience and might lead to inconsistent behavior.


> so knowing where the client failed isn't actually useful for knowing the state of the request and what needs to happen next.

Correct. Which is why the client should just error out and stop processing and return the error to the user, who will have more context and knows whether or not a retry is necessary or desirable.

My argument is that your "resilient design around client-server communications" isn't necessary in the majority of cases, and is often unwarranted over-engineering. Poor user experience is fine, if they don't happen very often, and go away upon a retry. Even banks do that. It's fine. No one will be offended if your app shows an internal error message once a month (a five-minute outage in a month is still more than 99.9% availability).


> the client should just error out and stop processing and return the error to the user, who will have more context and knows whether or not a retry is necessary or desirable... Even banks do that. It's fine

If a user at a bank tries to transfer $10,000, gets an internal server error and retries because their balance hasn't updated (banks don't process these in realtime), and checks the next day and finds $20,000 gone, that's a big problem. The user can't be responsible for this, you need something more.

You're not wrong that this isn't necessary in the majority of cases (updating your email address?) - but the majority of cases don't need distributed systems. By the time you're talking about distributed systems (which is the focus of this article and discussion), you absolutely do need this, in the vast majority of cases.


Eh, in that case you're asking for trouble by requiring the server to be successful. If I had to write an API like that I would definitely go with randomized tokens per logical request for dedupe on retries.

If it's a user facing transaction it should be a transaction resource that's created and then the server does the retries imo, with the user able to view the status.


Exactly, given a timeout you can't assume the server is clearly successful (or unsuccessful!). That was my point, we're definitely agreeing :) Usually you'd generate some kind of idempotency key (randomized token as you said) and retry with that.

You definitely can't just bubble that up to the user and assume things are fine


Most of the tax payer population, but not most of the gains available for taxation. Small increases in taxes to the very wealthy would far outweigh large increases in taxes to the middle class in terms of government revenue.

On top of that, you say "unless you added 20%" as if that's something that's beyond the pale when in fact the wealthiest people pay far less in taxes that at any point in our country's history.


> Amazon is going to vertically integrate shipping, no question. The market demands it, and Amazon will probably eventually ship more packages than any of its competitors.

Amazon already delivers half of its own packages. Currently they're about 85% of the size of FedEx.

https://www.theverge.com/2019/12/13/21020938/amazon-logistic...


Large companies spend a LOT of money trying to increase conversions by even tenths of a percent. Yes, 2% is substantial.


yeah , large companies. like , the 50-100 top sites right? Why would everybody else care about minor speed improvements


The third line of thinking is a combination of the two: "In the short term, the market is a voting machine. In the long term, the market is a weighing machine". This is a popular quote from Benjamin Graham (https://en.wikipedia.org/wiki/Benjamin_Graham), who taught Warren Buffett. It's basically the whole principle behind value investing.


WeWork takes this much further than other SV companies. In their S-1 filing, they had to disclose something like 100+ related party transactions: https://www.forbes.com/sites/alapshah/2019/08/19/just-how-un...


Wow, those filings make it seem like the founder was using WeWork as his personal piggy bank. Did I understand it right that he took out a loan from WeWork then used a bonus from the company to pay it back?


He sold the company a trademark for the word "we" for $6M. It was eventually rolled back after media exposure.


If you're going to rely on personal experience in an argument, "in six weeks I learned enough to criticize many engineers with decades of experience" is not a strong argument. That's not even claiming to be a 10x engineer, that's claiming to be a 1000x engineer.

I don't intend this to sound harsh, apologies if it does. I strongly recommend you introspect on your own confidence and experience levels. I've mentored a lot of junior engineers with similar viewpoints and often there's a lot of hidden complexity they simply lack the experience to understand.

This isn't to say you should take everything anyone with more experience says at blind faith, simply that dismissing without understanding is counter to a growth mentality.


I invoked the personal experience only as evidence that I did what (little) I could to push along the project that I think has the most long term potential. I'm not criticizing without at least trying to do what I can.

In short, the reasons gccgo produces worse code than gc are the result of fairly basic optimizations that are/were missing. For example, open-coding string slicing [0] and string equality [1] is enough to close the gap in the TimeParse benchmark in the blog post above. In fact, with those changes, gccgo actually produces better code than gc, because the full power of GCC can be unleashed on the IR, and GCC has more aggressive optimizations than gc.

> This isn't to say you should take everything anyone with more experience says at blind faith, simply that dismissing without understanding is counter to a growth mentality.

Quite honestly, I think you're more guilty of dismissing without understanding than I am. It's true that I haven't been programming for decades, but I've spent two years dealing with the Go toolchain's shortcomings on a large Go project, and six weeks specifically on a passion project to improve gccgo. Of course it's possible that I'm wrong! But I've spent a while thinking about it, and often just as relevant as experience is a fresh, outside perspective. It's easy for a team to get stuck in tunnel vision or groupthink.

[0]: https://github.com/golang/gofrontend/commit/62e3a8cc0a862b0a... [1]: https://github.com/golang/gofrontend/commit/89b442a0100286ee...


You're assuming there's unlimited demand for employees by McD's... which, in point of fact, is absolutely not the case.


It was a single example of a low-skilled job. The generalized point is that you can go to any employer looking for low-skilled labor. There's high transferability between these sort of jobs.


My point was that there's not an unlimited supply of low-skilled jobs. The fact that if you're qualified for one, you're qualified for another isn't really relevant when they can be very hard to find in some areas.


There's been a bifurcation in employment: high-skilled and low-skilled employees are most in demand. The service industry is hurting for people. Hotels, restaurants, fast food places, etc. In fact, the NYTimes recent wrote about the hotel industry:

https://www.nytimes.com/2019/09/09/travel/hotel-jobs.html


Doesn't the worker get some say in this?

I, for one, would much rather drive for Uber than run a fryer. To the point of willing to take a significant pay cut to avoid the fast food industry.


You still have a choice where to work. Why do you think AB5 takes that away?


It takes that away with Uber stops "hiring" me because now I am too costly to have because AB5 makes me their employee.


Whether or not it's profitable for Uber or any business to hire you, is that business' decision. It's not yours to make. And there is no evidence that ridesharing companies cannot afford to pay drivers more. What if prices go up 20-30% and the level of service stays exactly the same? Then it was a silly concern with no basis in reality. I don't think evidence shows that Uber will immediately fire all drivers if they must be classified as employees.


Do you genuinely believe that this change will have no effect on the market? That the number of people driving will be the same? That everyone will just be able to continue to drive for Uber/Lyft, on the same schedule that they currently do, but make 20-30% more?

I know that the answer is "no" since you've already said "they can just go work a fast food fryer". But that's hard to reconcile with this last statement of yours.


This is an interesting read about the hotel industry. I don't think it disproves the idea though that there are people who want to low-skilled jobs who can't find them. For instance, from that article:

"The popular Mackinac Island in northern Michigan has only 500 year-round residents but approximately 3,000 jobs in the summer months. Delays on the approval for seasonal worker visas this year forced one resort to temporarily close its restaurant."

When it's their "season", they're probably hurting for staff, but when it's not, all those thousands of people are out of work and need to try to find a new job...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: