You're Procrastinating Without Even Realizing It - <AUTHOR> http://codepreneur.tumblr.com/post/57158314704/youre-procrastinating-without-even-realizing-it

<comment><USER2> There's a difference between procrastination and play.

Children play all the time. They don't usually engage in orderly head-down strictly optimal activities unless parents or school forces them.

Still, children learn a lot of stuff. (Have you tried to learn a language in 3 years without a single grammar book and no dictionaries? That's what babies do playing.)

Grown-ups can optimize their activities and learn the urgently necessary things faster, while also doing the chores that win them bread (and hopefully some bacon). But stopping to learn random related things, stopping to _play_ with things that are related with whatever makes them "productive" is a mistake.

Well, maybe one can learn how to fell trees or milk cows in one year and then never have to learn anything new. I suppose that HN crowd is not like that.

Any member of the IT crowd is facing a constantly changing landscape. There's no chance to stay relevant in 10 years unless you constantly learn about a lot of things and take time to get your hands dirty with some of them. Often you don't have a chance to learn many new things while being paid for it, so you have to find time and _play_ with them.

This playing gives you experience that may be relevant and valuable for your next gig. it may _land_ you on your next gig.

~15 years ago I started to play with then-immature Python, Java, and Web, on my free time that I could be spending on making more money. In a few years I found out that people with experience in this are in demand, and eventually it led mo to a job at JetBrains, writing a top Python IDE in Java. (Regarding the Web technologies — should I even comment?..) Have I not played with Linux when it still seemed "pointless", I'd have much harder time getting me a number of my programmer and sysadmin jobs.

Currently I play with things like Haskell and Clojure and many others that don't win me any money. Well, maybe they never will. In any case, it's still fun!

<comment><USER3> You were really _learning_ through playing. Learning is an investment. Not all _play_ is learning.

Another distinction is that children are fed by their parents. So if you have a "parent" in your company who "feeds" you then you can play a lot (of course, until they realize you are 18 and kick you out of the house).

OP's point is that you need to build code or sell code. If learning helps you do either one, then I think it is not procrastination.

<comment><USER2> OP also seemed to learn a thing or two in the process. I suppose it's still valuable, it just does not usually pay off the same day.

Maybe 3 days of continued play is too much, though. It depends on urgency of other issues you might have.

</comment></comment></comment><comment><USER4> Re the headline: duh, I'm reading HN. Anyone who has convinced themselves that this is work is in denial.

I do agree with TOA though. You have to learn to call yourself on this stuff, or get a buddy/mentor/manager who will.

Do first what needs to be done now. The backfill tasks can be saved for when you have a slow time, or really need a change of pace (to solve some kind of long-slow-thought problem, or when you're tired at the end of the day, or whatever).

</comment><comment><USER5> Reminds me how I can goof off on the internet for hours, and then as soon as I bring up vim, all of a sudden I a) have to go pee b) am hungry c) need a cup of coffee d) should clean my desk ...etc.

</comment><comment><USER6> But that's how I learned to ssh into a machine. :( And how to setup Apache. That kind of "procrastination" is how I learn about 90% of the stuff I use to make my living.

</comment><comment><USER7> Also known as _Yak Shaving_ , but in this instance it's even worse because the end goal wasn't worth it.

That said, some of the best discoveries and products happen because someone was playing around. There needs to be a balance. Personally, I like to hit my core deliverables by Thursday so I have Fridays to explore and experiment.

<comment><USER8> Yak Shaving is when you start out to do a perfectly important and seemingly straightforward thing, but unexpectedly wind up having to do multiple surprising errands to achieve the goal. Yak Shaving does not refer to procrastination.

</comment></comment><comment><USER9> This post, especially the Joel Spolsky quote at the end, reminded me of the advice for new startups (especially bootstrapped ones): Don't do anything that doesn't help you get your first 10 customers.

For example, move a site from Linode to EC2? Doesn't get you a customer. Add a feature you think you'll need to the admin dashboard? Doesn't get you a customer. Finally write your landing page and start using adwords? _Does_ help get customers.

I think this advice can be generalized to the common case: Is what I am doing right now really something that matters, or just something to do so that I can say it is done?

</comment><comment><USER10> Can someone explain in what context he's stating this? Is it "if you're running a startup, anything you do in relation to your product that doesn't include building or selling it is procrastinating"? Because just from reading it, it felt way to broad, and makes me think that he's saying that anything I do ever that's not building or selling something is a waste of time, and procrastination.

I really don't think that's what he's saying, but it kind of comes across that way.

<comment><USER11> Yeah it makes more sense when you think of it in the context of making a living. Though it comes off as doing anything in any context is a waste of time if you're not making money, until he mentions startups

</comment></comment><comment><USER12> I know a lot of programmers are focused on being efficient and trying to maximize productivity.

But, it isn't nearly as cut and dry as you think it is.

Yes, you should be concerned if you aren't getting your work done, but this seemed liked a decent use of time.

He learned something new and realized it wasn't exactly worth his time. So, now, he won't do it again.

That is worth the effort in my opinion. If I learned that lesson every time I did something "unproductive", then I would be super efficient.

We are not machines, although we would like to be one sometimes.

Sometimes being efficient at a task is really wasting time, sometimes wasting time allows your brain to disengage and re-evaluate how you are allocating your time.

If you try to work like a machine, you will burn out and end up hating your life.

</comment><comment><USER13> I think the example he took of moving sites from Linode to EC2 is one of the better things he can do while avoiding working on his product. As he claimed he did learn something, adding value to his skills. But yeah, I get the point. There are so many other things which might not be productive.

<comment><USER14> ...like blogging about procrastination...

</comment></comment><comment><USER15> I find that my apartment gets very clean when I'm really procrastinating.

The only thing that works for me is a To Do list that I check things off of when they're done. There's something in the gamification that works there. And I do include learning activities in the To Do list, it's just better when they're planned. When they're spontaneous, I usually add them to the bottom of the list.

</comment><comment><USER16> I totally realize I'm on HN.</comment>


Citigroup buys Wachovia - <AUTHOR> http://money.cnn.com/2008/09/29/news/companies/wachovia_citigroup/?postversion=2008092908

<comment><USER2> 1) No, it didn't. Citi bought the banking assets of Wachovia.

2) This has already been posted in the appropriate venue: <http://www.newmogul.com/item?id=470>

</comment><comment><USER3> I went to Wachovia on Saturday to withdraw some money and they actually had a mini run on the bank.

They actually ran out of checks to issue to customers! It took them over an hour to actually get more checks so that they could pay people.

</comment><comment><USER4> It's clear that our financial system is simply unsustainable. What happens when all of the big banks have been rolled up into one, and that one super- bank is on its last legs? Nobody will be around to buy them.

<comment><USER5> The folks who didn't get into the fancy stuff, such as Wells Fargo and many of the regionals, are doing quite well.

<comment><USER4> True. I'm mostly talking about the unbelievable amount of money that exists purely as debt, thanks to the investment banks and central banking in general. A return to more conservative banking is all I really expect... but not without some major casualties.

</comment></comment></comment><comment><USER6> Well there goes my bank. Oh well, at least it didn't fail or anything and my account is always insured by the FDIC, although I'm not sure how one would go about collecting that insurance.

<comment><USER7> You won't need to - your deposit will just eventually be with Citi.

</comment></comment><comment><USER8> I hope they don't close the branch by me.</comment>


June 1: Sandboxing Day for Mac App Store Developers - <AUTHOR> http://www.macobserver.com/tmo/article/june_1_sandboxing_day/ <comment><USER2> It's a big change, for sure. I'm currently exploring other options for distributing the next version of my ebook software, because there's basically no way to make it sandbox-compliant. Among other things, it needs to call Amazon's Kindlegen tool to convert its "native format" (epub) to Kindle format, and it also allows the users to set their own preferred external HTML editor and image editor. Launching external programs from within the sandbox is disallowed (at least by my interpretation and experiments). You can include multiple binaries in the signed app bundle, but you can't launch third-party tools. Unless things have changed recently, or I overlooked it, there's no entitlement for that.</comment>


Coming clean on why my investors pushed me out of my company - <AUTHOR> https://medium.com/@truetosource/coming-clean-about-why-i-left-callfire-a7e6257786f6?callfire <comment><AUTHOR> This story is kind of unbelievable. Not sure what to take from it.

<comment><USER2> A founder pushed out. David Fincher made a movie about it once.</comment></comment>


Principles for Naming a Brand - <AUTHOR> https://mmarchny.com/naming-branding/ <comment><USER3> For the sake of your users, please NEVER EVER name your brand or product after a generic word. It makes it nigh impossible for anyone to google search you or forums where people are solving problems.

For example, Firefox is a good name. It's unique but easy to spell and search for. Searching for "Firefox not refreshing" will usually return relevant results.

Cups is not a good, but you can eliminate most unrelated results by using "cupsd", "linux cups" or "cups print spooler" when searching for help.

Motion on the other hand is an absolutely horrible name. While it accurate describes what the software does (security camera motion detection), trying to troubleshoot the software is a PITA because "pets triggering motion" is absolutely useless as a search query and there isn't really a good way to eliminate everything on the internet related to moving pets.

<comment><USER4> Apple is an exception.

</comment></comment><comment><USER5> I don't want to sound snarky... but I can't even pronounce this website's domain name. This breaks their own rules.

<comment><USER4> Aside: I personally think large typography is a terrible trend in design - <USER2> this case, it takes the valuable space on the user's first view of the page (without scrolling) and they waste it on one word "Naming".

</comment></comment><comment><USER6> This hits on a lot of the same issues we have encountered when trying to name projects or name a business. In order to make name generation less time consuming and automatically handle some of these issues we ended up building a free tool called Mashword ([https://mashword.com](https://mashword.com)) to do a lot of the heavy lifting.

Mashword allows a user to enter one or two words and then it will generate combinations(mashups) of the words or alternate spellings, taking into account the pronunciation of the entered word(s). In addition, it will automatically check for domain name availability. If you are looking to name anything, try it out and hopefully it will speed up the naming process for you.

</comment><comment><USER7> I find it quite amusing how brand names evolve. You can tell that "Flickr" came about from 2000's web 2.0 era. Similarly "Ultramax" from the 80's and "Rotomatic" from the 70's. Going by my last name, "Panchal & Sons Co." and "Panchal Brothers" would have come from the 19th and early 20th century.

I would say go back in time and explore various trends, and take inspiration from them. Also, explore different cultures and come up with made up words if it doesn't offend anyone, for e.g. "Masimoto" (Japan).

<comment><USER8> Likewise, the Fender Telecaster and Stratocaster were incredibly '50s names (and awesome names, but very in line with '50s branding).

</comment></comment><comment><USER9> "McDonalds" listed as an example under Spelling, Spaces, Hyphens - Option 4 confuses me. Sure, it may have been a compound in its original language ("Mc" meaning "Son/Son of" IIRC) but I wouldn't consider it one in modern English. Definitely sticks out to me among the other reasonable examples. Of the options listed, I'd categorize it as timeless given that it's based on the founders' last name.

</comment><comment><USER10> Damn. I misread the title as "How to Name a BAND _

<comment><USER11> I misread has "band" too and remembered Jello Biafra's spoken word "Names for Bands".</comment></comment>


Launchpad--Collaborate across software projects (sort of like a more modern Sourceforge) - <AUTHOR> http://www.launchpad.net <comment><AUTHOR> Sorry, it's <http://www.launchpad.net>

I tried editing it but you can't change the URL once it's submitted.

<comment><AUTHOR> Thanks for fixing the link.</comment></comment>


Toyota C++ - <AUTHOR> http://www.toyota.ca/toyota/en/vehicles/prius-c/features-benefits/interior

<comment><USER2> Hm ... I thought the model was really called the C plus plus, but that seems to be just a sub-page. There's also [http://www.toyota.ca/toyota/en/vehicles/prius-c/features- ben...](http://www.toyota.ca/toyota/en/vehicles/prius-c/features- benefits/exterior) playing on "C sharp". Weird. Are they trying to target programmers?

<comment><AUTHOR> Looks like they are! Good find on the c# - I missed that one.

</comment></comment><comment><USER3> THIS IS TERRIBLE.

Toyota is a huge company with serious technical and process chops and it wasn't out of the realm of possibility that they had done something interesting with C++.

Instead, one fucking dumb joke?

I'm sorry if I missed something awesome here but can someone please edit the title on this? "Car company uses obscure pun to sell cars" would do.

<comment><USER4> > Instead, one fucking dumb joke?

It's actually two dumb jokes.

[http://www.toyota.ca/toyota/en/vehicles/prius-c/features- ben...](http://www.toyota.ca/toyota/en/vehicles/prius-c/features- benefits/exterior)

</comment></comment><comment><USER5> 6 months ago, somewhere in Toyota, a programmer was asked "I know this is a bit outside your job description.. but could you help us out with this little project?"

</comment><comment><USER6> clever stuff, thinking outside of the box.

<comment><AUTHOR> That's what I thought - its a nice wink/nudge to those in the know</comment></comment>


Answering your questions about Heroku routing and web performance - <AUTHOR> https://blog.heroku.com/archives/2013/4/2/routing_and_web_performance_on_heroku_a_faq <comment><USER2> It seems to me that Heroku is still failing to understand (or at least cop to) the fact that the switch from intelligent to randomized routing was a loss of a major reason people chose Heroku in the first place.

A lot of Heroku's apparent value came from the intelligent routing feature. Everybody knew that it was harder to implement than random routing, that's why they were willing to pay Heroku for it.

Nobody's arguing random routing isn't easier and more stable; of course it is.

The problem is that by switching over to it, Heroku gave up a major selling point of their platform. Are they really blind enough not to know this? I have a hard time believing that.

It seems to me the real way to make people happy is to discount the "base" products which come with random routing and make intelligent routing available as a premium feature. Of course, people who thought they were getting intelligent routing should be credited.

<comment><AUTHOR> I hear you. Heroku's value proposition is that we abstract away infrastructure tasks and let you focus on your app. Keeping you from needing to deal with load balancers is one part of that. If you're worried about how routing works then you're in some way dealing with load balancing.

However, if someone chose us purely because of a routing algorithm, we probably weren't a great fit for them to begin with. We're not selling algorithms, we're selling abstraction, convenience, elasticity, and productivity.

I do see that part of the reason this topic has been very emotional (for us inside Heroku as well as our customers and the community) is that the Heroku router has historically been seen as a sort of magic black box. This matter required peeking inside that black box, which I think has created a sense of some of that magic being dispelled.

<comment><USER3> You sound like a politician talking to someone of the opposite party, in that you say "I hear you", but then completely fail to address anyone's concerns. Selling a "magic black box" that guarantees certain properties, changes them, then lies about having changed them presents a liability for users who want to do serious work.

A major selling point of Heroku is that scaling dynos wouldn't be a risk. This guarantee is now gone and it's not coming back soon even if routing behavior is reverted, because users prefer good communication and trust with their providers. The responses of Heroku are blithe non-acknowledgement acknowledgements of this problem.

<comment><USER4> This is really unfair. This comment:

>A lot of Heroku's apparent value came from the intelligent routing feature. Everybody knew that it was harder to implement than random routing, that's why they were willing to pay Heroku for it.

is being addressed by Adam in this comment:

>Heroku's value proposition is that we abstract away infrastructure tasks and let you focus on your app. Keeping you from needing to deal with load balancers is one part of that. If you're worried about how routing works then you're in some way dealing with load balancing.

I think Adam is getting to a really fair point here, which is that nobody really minds whether the particular algorithm is used. If A-Company is using "intelligent routing" and B-Company uses "random routing," but B-Company has better performance and slower queue times, who are you going to choose? You're going to choose B-Company.

At the end of the day, "intelligent routing" is really nothing more than a feather in your cap. People care about performance. That's what started this whole thing - lousy performance. Better performance is what makes it go away, not "intelligent routing."

<comment><USER3> Intelligent routing and random routing have different Big O properties. For someone familiar with routing, or someone who's looked into the algorithmic properties, "intelligent routing" gives one high-level picture of what the performance will be like (good with sufficient capacity), whereas random routing gives a different one (deep queues at load factors where you wouldn't expect deep queues).

This is why it was good marketing for Heroku to advertise intelligent routing, instead of just saying 'oh it's a black box, trust us'. You need to know, at the very least, the asymptotic performance beavhior of the black box.

And that's why the change had consequences. In particular, RapGenius designed their software to fit intelligent routing. For their design the dynos needed to guarantee good near-worst-case performance increased with the _square_ of the load, and my back-of-the-envelope math suggests the average case increases by O(n^1.5).

The original RapGenius post documents them here: <http://rapgenius.com/James- somers-herokus-ugly-secret-lyrics>

The alleged fix, "switch to a concurrent back-end", is hardly trivial and doesn't solve the underlying problem of maldistribution and underutilization. Maybe intelligent routing doesn't scale but 1) there are efficient non- deterministic algorithms that have the desired properties and 2) it appears the old "doesn't scale" algorithm actually worked better at scale, at least for RapGenius.

</comment></comment></comment></comment></comment><comment><USER5> Haters gonna hate.

I wonder how many people bitching here are actual customers who are having problems that haven't been address with a solution. I'm guessing that number is low.

Oh, you're a _potential_ customer? That's why you're bitching? About a problem you may or _may not_ have if you _actually choose the product?_ Think about that argument for a second.

I've never seen such a transparent response and follow up as I have from Heroku on this issue. Most other companies would have gone into immediate damage mitigation mode and let the wound heal instead of re-opening it and _giving feedback on how to fix the problem_ as Heroku has.

I applaud the Heroku team for their effort on their platform and being a kickass company.

<comment><USER6> I'm a real customer with real problems. Grep this page for latchkey's description of it.

The funny thing is, I don't have much sympathy for Rails users. Scaling problems with a single-threaded, serial request-processing architecture? No surprise there. But we have inexplicable H12 problems with Node.js. There's something broken in the system and it _isn't_ random routing.

<comment><USER7> You're talking like Node offers real concurrency. It doesn't.

<comment><USER6> There's nothing wrong with Node's concurrency. Our app, like most webapps, is I/O bound. Any individual instance should be able to handle thousands of concurrent requests as long as they are all blocked on I/O.

Being able to process more than one concurrent request (as Node can) is "real concurrency". Java-style native threading is a step above and beyond this, and unnecessary for most web applications.

</comment></comment></comment></comment><comment><USER8> Random routing to concurrent servers works fairly well if the kind of long running requests you need to worry about spend a lot of time blocking for some external service (e.g. a database call). Then you can get a lot of benefit on the from cooperative or preemptive multitasking on the server, and so the performance characteristics, from the point of view of a new request, of each server is roughly the same, and so going to a random server is pretty good.

However, if you have long running requests because they make intensive use of server resources (CPU, RAM) then concurrent servers buys you very little. In that case, sending a new request to a server that is chugging along on a difficult problem is significantly different than sending it to one that isn't. That's where knowing the resource state of each server, and routing accordingly is of huge benefit.

While load balancing is a very difficult problem, with some counterintuitive aspects, it is an area of active research, and there are some very clever algorithms out there.

For example, this article (<http://research.microsoft.com/pubs/153348/idleq.pdf>) from UIUC and Microsoft introduces the Join-Idle-Queue, which is suitable for distributed load balancers, has considerably lower communication overhead than Shortest Queue (AFAICT the original 'intelligent' routing algorithm), and compares its charateristics to both SQ and random routing.

</comment><comment><USER9> All of the stuff that Heroku are doing now to mitigate the routing issues for their Bamboo customers are things they should have done when it first became an issue. They are not going above and beyond in any way to make up for the lost time and money their customers.

Again, this is not about

-how advanced Heroku's technology is on an absolute level

-how challenging routing is for their scale

-what competitors offer in this space and for what prices

This is only about the delta between what Heroku sold their customers and what their customers received. They are collapsing the delta now, by being honest about what they are selling (and improving their offering, it seems), but they are doing _nothing_ to address the long time for which the delta was significant for a subset of their customers.

<comment><USER10> Your complaints are all about the past. What are you looking for here? For Heroku to invent a time machine?

<comment><USER11> How about refunds? Isn't that the normal response when a company screws up in a way that causes the customers to pay more money?

<comment><AUTHOR> Yes, we've given credits (or a refund, at the customer's preference) in cases where lack of visibility or inaccurate docs led to over-provisioning of dynos.

There's actually very few cases where people paid more money than they would have otherwise. Heroku is a service with your bill prorated to the second. For the most part, if people don't like the performance (which is measurable externally via benchmarks and browser inspectors), they leave the service. Many people who hit problems with visibility and performance did exactly that.

Naturally, we'll be working hard to try to recapture their business, as well as to remove any reasons that existing customers might leave as they hit performance or visibility problems scaling up in the future.

</comment></comment></comment></comment><comment><USER12> They still fail to understand that using Unicorn doesn't magically fix this issue. Like, at all. It simply means that the dunk gets tied up when n+1 requests (n is number of unicorn workers) get randomly routed to it instead of just 1. It's in no way comparable to a node.js server that handles thousands of concurrent requests asynchronously. They're simply two different designs, and Ruby's traditional design is fundamentally incompatible with Heroku's router.

<comment><USER13> That's not right. In any configuration the goal is to _minimize_ queue time. What is critical to doing this is having a request queue and a pool of concurrent "workers" (to use the generic queueing theory term) in back of it.

Unicorn uses the operating system's TCP connection queue to queue incoming requests that it is not able to immediately server. While n+1 requests can (and will) get routed to a single dyno, this only results in 1 request being queued. It will be queued until the first of the in-process requests is served, which will take ~ the average response time for the app. Given that the other n requests did not get queued (queue time = 0), the average queue time will equal Sum(queue times) / # requests = Average Response Time / n+1.

</comment></comment><comment><USER14> He forgot to explain why they won't be refunding customers who were defrauded.

<comment><USER15> Because they weren't victims of fraud.

<comment><USER16> Is promising one service but delivering another not fraud?

Promises from the Heroku website pre-Rap Genius posts:

        "Incoming web traffic is automatically routed to web dynos, with intelligent distribution of load instantly"

        "Intelligent routing: The routing mesh tracks the availability of each dyno and balances load accordingly. Requests are routed to a dyno only once it becomes available. If a dyno is tied up due to a long-running request, the request is routed to another dyno instead of piling up on the unavailable dyno's backlog."

        "Intelligent routing: The routing mesh tracks the location of all dynos running web processes (web dynos) and routes HTTP traffic to them accordingly."

        "the routing mesh will never serve more than a single request to a dyno at a time"

Actual service provided: requests are routed randomly to dynos regardless of how many requests they are currently handling or their current load.

<comment><USER15> Your definition of fraud differs from most: "Wrongful or criminal deception intended to result in financial or personal gain."

They weren't _intentionally_ and _purposefully_ misleading people. Not having docs up to date on your website, or you not knowing how the underlying backend works is not fraud.

As I've mentioned before if every AWS customer could sue Amazon for not understanding how all of the underlying tech worked, or could sue when some of the docs were out of date, there would be more lawyers working there than engineers.

</comment></comment></comment></comment><comment><USER17> This is a great response. I'm curious why something like this wasn't posted within 24 hours of RapGenius going public? I'd bet that a more thorough, technical reply would have mitigated a lot of the PR issues.

<comment><AUTHOR> Agreed, I wish we could have done it much sooner. It took a shocking amount of time to sort through all the entangled issues, emotion, and speculation to try to get to the heart of the matter, which ultimately was about web performance and visibility.

Also, we wanted to respond to our _customers_ first and foremost, and general community discussion second. So we spent close to a month on skype/hangout/phone with hundreds of customers understanding how and at what magnitude this affected their apps.

That was hugely time-consuming, but it gave us the confidence to speak about this in a manner that would be focused on customer needs instead of purely answering community speculation and theoretical discussions.

<comment><USER17> Thanks for replying. As a paying Heroku customer (who's not affected by the routing issue), while seeing a blog post earlier would have been nice, it's great to hear that you spent so much time with affected customers.

<comment><AUTHOR> Glad to hear you're not affected. But we always like talking to customers, feel free to drop me a line at adam at heroku dot com if you'd ever like to spend a few minutes chatting on skype or jabber.

</comment></comment></comment></comment><comment><USER18> I'd say there's a major flaw here - "the new world of concurrent web backends" - If now was 1995 I might agree with you, but having concurrency in web-app servers is not new. The lack of concurrency in test/demo app situations is totally understandable, in a production environment you'd have to be completely bonkers to think thats ever useful. I also agree that "having to deal with loadbalancing" is something that most people don't get and shouldn't really have to get, but when the way you do loadbalancing is so fundamentally flawed that its worse than Round Robin DNS, you also clearly don't understand it.

To be fair, I have to say I meet people all the time who don't understand it at all and think $randomcrappything is great at loadbalancing. If "connections go to more than one box!" is your metric, then yes, thats loadbalancing. My metric is "Do you send connections to servers that are responsive and not overloaded, maybe with session affinity" and in general most HW loadbalancer products since 1998 have supported that. So if you're not better than 1998 technology, you may want to reevaluate your solution.

<comment><USER19> _I'd say there's a major flaw here - "the new world of concurrent web backends" - If now was 1995 I might agree with you, but having concurrency in web-app servers is not new._

Sadly, concurrency is relatively new and unfamiliar territory to many in the Ruby on Rails community.

</comment></comment><comment><USER20> Is it true that you don't fully buffer body of POST request on router? This limitation works against Unicorn design and makes it hardly a "fix": [http://rubyforge.org/pipermail/mongrel- unicorn/2013-April/00...](http://rubyforge.org/pipermail/mongrel- unicorn/2013-April/001743.html)

<comment><USER21> Heroku only buffers the request headers: [https://devcenter.heroku.com/articles/http- routing#request-b...](https://devcenter.heroku.com/articles/http- routing#request-buffering)

</comment></comment><comment><USER22> So their solution to the random routing is for the customer to switch to Unicorn/Puma on JRuby. Wow.

<comment><AUTHOR> Yes, because that is the solution. Empirically.

We've run many experiments over the past month to try other approaches to routing, including recreating the exact layout of the Bamboo routing layer (which would never scale to where we are today, but just as a point of reference). None have produced results that are anywhere near as good as using a concurrent backend. (I'd love to publish some of these results so that you don't have to take my word for it.)

That said, we're not done. There are changes to the router behavior that could have an additive effect with apps running Unicorn/Puma/etc, and we'll continue to look into those. But concurrent backends are a solution that is ready and fully-baked today.

<comment><USER23> Please publish these results. I think a chart showing that Unicorn + Random routing is better than Thin + Intelligent routing would go a long way to ending this whole thing. That's assuming that you can make deploying a Unicorn app as easy as it was with Thin ('git push heroku')

<comment><AUTHOR> We might. But what does this actually get us? It helps clear Heroku's name, but it doesn't help our customers at all. I'd prefer to spend our time and energy making customer's lives better.

Given the choice between continuing the theoretical debate over routing algorithms vs working on real customer problems (like the H12 visibility problem mentioned elsewhere in this thread), I much prefer the latter.

<comment><USER23> I respect that mindset, I just don't think it would hurt. Maybe a middle ground would be a full-scale tutorial on how to switch from Thin on Bamboo/Cedar to Unicorn on Cedar for Rails users. It's a non-trivial process and I know I'd like some help with it. And in this same tutorial/article you could throw down the benchmarks you ran as motivation/justification.

</comment></comment></comment></comment></comment><comment><USER24> Something that's been bugging me about Heroku is that the dyno price has stayed the same ever since launch: $0.05 per hour. Compare to services like Digital Ocean and AWS (who lowered prices significantly in the past few years), Heroku is starting to get very expensive.

The 2X dyno at 2x cost doesn't really make me happy, it just invites me to spend more money when it would be more cost-efficient to move.

</comment><comment><USER25> I can't speak to the issues that people are running into when they reach large scale, but I run a small app with two dynos and we've been having issues with H12 request timeout errors for weeks now. This has been bringing down our production app for periods of about fifteen minutes almost daily.

I've been completely disappointed with Heroku's support so far. First they obviously skimmed my support request and provided a canned response that was completely off base. Their next response didn't come for four days and only after I called their sales team to see what I could do to get better support. Their only option is a $1k / mo support contract. If you're running a mission critical app, I'd think twice before choosing Heroku.

<comment><AUTHOR> The difficulty of diagnosing H12 errors is really challenging. One thing I can recommend is using the http-request-id labs feature: <https://devcenter.heroku.com/articles/http-request-id> With this enabled and some code in your app, you can correlate your app's request logs directly against the router logs and trace what happened with any particular H12.

I'd be happy to help you do this if you're game. Contact me via adam at heroku dot com.

Could you also email me some links to your support tickets so I can check out what happened there?

</comment></comment><comment><USER26> Heroku's message: "If you have slow clients you are screwed" Unicorn is designed to only serve fast clients on low-latency.

And no, they don't do any buffering.

<comment><AUTHOR> I think that overstates it a bit, but yes, there are problems with Unicorn and slow clients. We're investigating: [https://blog.heroku.com/archives/2013/4/3/routing_and_web_pe...](https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq#comment-850974645)

If this is an immediate problem for you, it might be worth your while to make your app threadsafe, which gives you more concurrent webserver options.

</comment></comment><comment><USER27> I am working for a fairly large heroku app running Node on ~50-100 web dyno's with another 20-50 backends. Here are the problems as I see it:

We get H12's all the time. Randomly. The only suggestion we get from Heroku is to make the requests process as fast as possible. Thus, we've spent considerable amount of time going through everything we can possibly do to make all requests respond as fast as possible. I've given up. I see this as a fundamental issue with the routing system. If you are going to use Heroku for a large production deployment, H12's (and your users getting dropped connections) will become a fact of life.

There is no auto scaling. We have no idea how many dyno's we actually need. So, we over do it in order to handle peek traffic times. This must be a great money maker for Heroku. There is no incentive for them to build auto scaling into their system because that would mean they wouldn't make as much money. Yes, auto scaling is a hard problem to solve, but there should at least be a plan to start on it and there is none that I have found.

Up until someone bitched loudly, nothing was happening to fix any of this. We have an expensive paid support contract with Heroku and before this whole routing issue blew up in public, their only recommendation was to tune the app more and buy into NewRelic for ~$8k / month. We did both and found NewRelic to not give any relevant information to help us. We did a NodeTime trial for ~$49/mo and that actually helped a lot in identifying slow spots in our app. We fixed all the slow spots in our app and still see an endless stream of H12's. Regardless, it shouldn't take a public bitch slapping for a company to listen to their customers.

You log into a dyno and see a load average of 30+. Who knows if that number is accurate or how big the underlying box really is, but regardless, I can't imagine that number being good. Am I getting H12's because I'm on an overloaded box or is it because the routing system is fundamentally broken? I don't know and nobody can tell me. This is not a good position to be in.

I have heard from several sources that Heroku isn't happy being on AWS and has been wanting to migrate off AWS for a while now. So, if your hosting provider isn't happy on their hosting provider, there must be a reason for that and in the bigger picture, you the customer, is getting screwed.

Given these things, I will never recommend that a company use Heroku. It is great if you know you are going to never have more than one dyno, but if you think you are going to go into a large production system with it, it is far better to find something else. Which brings me to another rant... how come none of these other PaaS solutions are as easy as Heroku? The git deploy is seriously the one thing they got mostly right. I'd love to see someone build a layer on top of all the PaaS solutions so that I can just deploy my code to any one of them (or event multiple).

<comment><AUTHOR> We're aware of the random H12s problems. Some apps are affected pretty badly, others not at all, and we're not sure why yet. Sorry that you've had such a bad experience with this. We're continuing to investigate. If we're not able to find a solution in a timely fashion, I'll completely understand if you no longer want to use our product for this app.

Knowing how many dynos you need is definitely a problem. We have implemented autoscaling in the past... but it always sucked. It's hard to find a one-size- fits-all-solution. Rather than ship something sub-par we chose not to ship anything at all.

I understand a lot of people do well with autoscaling libraries and 3rd party add-ons. Would be curious to hear your experience with any of these.

I completely agree that it shouldn't take complaining in public to get a company to listen to its customers. That's was our biggest mistake in all of this, IMO — not listening.

For dyno load, have you tried log-runtime-metrics? <https://devcenter.heroku.com/articles/log-runtime-metrics> It provides per- dyno load averages.

I gladly accept your compliment that our git deploy remains the best on the market. :)

I'm sorry we haven't been able to serve you better. Let me know if you'd be willing to talk via skype sometime — even if you end up leaving the platform (or already have), I'd like to understand in more depth where we went wrong so we can do better in the future.

<comment><USER27> Your response only re-enforces my hard won opinion that Heroku should never be used for a production environment for any business that is trying to be successful and popular. Admitting that you have no idea why critical areas of your infrastructure is causing issues, while at the same time charging people an arm and a leg for services (we pay ~$4k/mo) feels like theft to me. I've built solutions for a large porn company that runs on significantly less infrastructure than what we are running on Heroku and handles 100x more traffic. Something is wrong here with the dyno/router model and maybe it is that you guys are just oversubscribed and not admitting to it in public.

Yes, autoscaling is hard. I have apps on Google AppEngine and see their issues as well. That said, at least they are trying. Maybe even take one of those 3rd party libraries and try to harden and adapt that and make it a real solution? I think the real problem though lies in the fact that there isn't any good metrics for what dynos are doing so there is no metric for when something is too busy or not. Yes, log-runtime-metrics puts out some numbers, but those numbers are meaningless when all I have is a slider to change the amount of money we are paying you.

I should qualify that git deploy compliment because there are issues with that as well. For example, why do you have to rebuild the npm modules from scratch each time? Why not have a directory full of pre-built modules for your dyno's that are just copied into my slug? This relatively simple change would increase the speed of deployments greatly. Never mind that deployments aren't reliable and fail randomly. At least it is easy to just try again.

<comment><AUTHOR> Again, sorry to hear about your bad experience. Hard-to-diagnose errors, no autoscaling or other method to know proper dyno provisioning, and slow deploy times — these things suck.

Would love the chance to win back your trust and hang onto your business. Let me know your app name (in email if you prefer) and I can see if there's anything we can do for you in the near term.

</comment></comment></comment></comment><comment><USER28> I'd like to start by acknowledging that I'm one of the "non-customers who are watching from the sidelines". I think Adam's right that this is an important distinction.

Adam, there's something that confuses me about this. I'm no expert in routing theory, nor have I done the experiments, so forgive me if my reasoning misses something.

I understand why RapGenius took you up on your original promises of "intelligent routing", and I think I understand what you're saying about scaling, and how scaling "intelligent routing" is so far unsolvable, and the motivation for your transition from Bamboo to Cedar, especially in the context of concurrent clients. What I don't understand is this:

It seems to me that if you split into two (or more) tiers, and random-load- balance in the front tier (hit first by the customer), and then at the second tier only send requests to unloaded clients, that you eliminate RapGenius's problem for customers who followed your specific recommendations for good performance on Bamboo (to go single-threaded and trust the router).

Do you have reason to believe that this doesn't one-shot RapGenius's problem? Do you have strategic/architectural reasons for rejecting this even though it would work? Did you try it and it failed? What's the story there?

Maybe I'll write a simulator to (dis)prove my naive theory. :P

<comment><AUTHOR> > It seems to me that if you split into two (or more) tiers, and random-load- > balance in the front tier (hit first by the customer), and then at the > second tier only send requests to unloaded clients [...]

I'm unclear how you'd think introducing a second tier changes things. That tier would need to track dyno availability and then you're right back to the same distributed state problem.

Perhaps you mean if the second tier was smaller, or even a single node? In that case, yes, we did try a variation of that. It had some benefits but also some downsides, one being that the extra network hop added latency overhead. We're continuing to explore this and variations of it, but so far we have no evidence that it would provide a major short-term benefit for RG or anyone else.

> Do you have reason to believe that this doesn't one-shot RapGenius's > problem?

As a rule of thumb, I find it's best to avoid one-shots (or "specials"). It's appealing in the short term, but in the medium and long term it creates huge technical debt and almost always results in an upset customer. Products made for, and used by, many people have a level of polish and reliability that will never be matched by one-offs.

So if we're going to invest a bunch of energy into trying to solve one (or a handful) of customer's problems, a better investment is to get those customers onto the most recent product, and using all the best practices (e.g. concurrent backend, CDN, asset compilation at build time). That's a more sustainable and long-term solution.

<comment><USER28> Sorry, yes, I'm supposing that the second tier serves fewer dynos; sufficiently few that your solutions from 2009 (that motivated you to advertise intelligent routing in the first place) are still usable.

> As a rule of thumb, I find it's best to avoid one-shots (or "specials").

Absolutely, and I would never suggest that. However, it's not just RG that has this problem, right? If I understand correctly, isn't it every single customer who believed your advertising and followed your suggested strategy to use single-threaded Rails, and doesn't want to switch?

So it's not about short or medium term; it's about letting customers take the latency hit (as you note), in order to get the scaling properties that they already paid for.

</comment></comment></comment><comment><USER29> My biggest issue with heroku is the general slowness with the API - maybe I'm just impatient, but most simple commands like listing releases, viewing logs etc take at least a second, sometimes five before anything happens. Pushes also take quite a while, even the Git push part is much slower than pushing to github. It's just a general sluggishness which gets annoying after a while.

If they could get all the API requests down under 500ms I'd be much happier.

<comment><AUTHOR> Yeah, the developer-facing control surfaces on the platform (API calls and git push mainly) have gotten slower over the past year or two. This is on my list of of personal pet peeves, but so far has not made it onto our list of priorities.

We try to drive priorities based on what customers want, not what we want: and what we've heard in the last year or so is all about app uptime, security, and now performance and visibility.

I'm very much hoping that bringing back "fast is a feature" on the developer- facing portions of the product is something we can work on this year.

</comment></comment><comment><USER30> I think the most annoying thing is they still don't answer Rap Genius's questions about being owed money for paying megabucks for newrelic. I mean If you offer a service that provides incorrect data for two years and you don't offer any sort of framework for reimbursement, that still seems, at best annoying, at worst, dishonest.

<comment><AUTHOR> We spent quite a bit of time trying to find a one-size-fits-all framework. There just wasn't one, so we've done credits on a case-by-case basis.

Sorry you find it annoying. It's what was best for our customers.

</comment></comment><comment><USER31> I am surprised they do not moderate the comments on their blog. They have one visible presently that is plain offensive.

</comment><comment><USER32> Since we are on the question of visibility of Heroku dyno, what is the amount of CPU power each dyno has?

What about 2Xdyno?

<comment><AUTHOR> This is a tough area. If you go look at various types of infrastructure providers (e.g. EC2, Linode, Rackspace) you'll see that they always end up making up vague units of measurement (e.g. "cores") and then showing all the resources in reference to whatever the base unit is. So there's really no good way to talk about CPU power like there is with memory.

That said, I can say that a 1X dyno is not very powerful compared to, say, any server you'd purchase for your own datacenter. Our intention is that 2X dynos will provide twice the CPU horsepower, although CPU and I/O are harder to allocate reliability in virtualized environments.

</comment></comment><comment> j-kidd From the article:

> Q. Did the Bamboo router degrade?

> A. Yes. Our older router was built and designed during the early years of > Heroku to support the Aspen and later the Bamboo stack. These stacks did not > support concurrent backends, and thus the router was designed with a per-app > global request queue. This worked as designed originally, but then degraded > slowly over the course of the next two years.

From Adam's message on Feb 17th, 2011 ([https://groups.google.com/forum/?fromgroups=#!topic/heroku/8...](https://groups.google.com/forum/?fromgroups=#!topic/heroku/8eOosLC5nrw)):

> You're correct, the routing mesh does not behave in quite the way described > by the docs. We're working on evolving away from the global backlog concept > in order to provide better support for different concurrency models, and the > docs are no longer accurate. The current behavior is not ideal, but we're on > our way to a new model which we'll document fully once it's done.

It looks like random load balancing was already the expected behavior 2 years ago? The "slow degradation" part seems a bit dishonest to me.

<comment><AUTHOR> There are two separate issues here, and it's easy to get them confused. One is the slow degradation on Bamboo without any change to the routing algorithm code, and the other was the explicit product choice for Cedar with a different code path in the router. Both are described fully here: [https://blog.heroku.com/archives/2013/2/16/routing_performan...](https://blog.heroku.com/archives/2013/2/16/routing_performance_update)

The reason it's easy to confuse these two is also part of what confused us at the time. The slow degradation of the Bamboo routing behavior was causing it to gradually become more and more like the explicit choice we had made for our new product.

But of course it's up to you (and everyone else observing) to judge whether this was some kind of malicious intent to mislead, versus that we made a series of oversights that added up to some serious problems for our customers. And that we are now doing everything in our power to be fully transparent about, to rectify, and to make sure never happen again.

<comment> j-kidd Sorry about the accusation. I read the Bamboo's issue wrongly. The article from Feb 2013 seems to imply that the slow degradation happened from 2011 to 2013. It starts with "Over the past couple of years", I guess that's what got me confused. The FAQ clarifies that the slow degradation happened from 2009 to 2011.

</comment></comment></comment><comment><USER33> What data do you have to show that the random selection algo has superior performance to a round-robin algo?

<comment><AUTHOR> We investigated round-robin. With N routing (or load balancer) nodes, and any degree of request variance, round robin effectively becomes random very quickly.

</comment></comment><comment><USER34> > 1k req/min

Also known as <17 requests per second... or a _trickle_ of traffic. Hooray for using bigger numbers and a nonstandard unit to hide inadequacy!

Does Heroku use req/min throughout their service? I can't understand why they would, unless they also can't build the infrastructure to measure on a per- second basis.

> After extensive research and experimentation, we have yet to find either a > theoretical model or a practical implementation that beats the simplicity > and robustness of random routing to web backends that can support multiple > concurrent connections.

Does this CTO think companies like Google and Amazon route their HTTP traffic randomly? No... he knows there are scaleable routing solutions and random routing isn't the best. So he cites "simplicity and robustness." Here, this means "we can't be bothered."

<comment><USER35> (I was in the bigger engineering team at Amazon that looked into this between between '04-'08.)

After having notable issues with Cisco's hardware load balancers, there was an internal project at Amazon aimed at developing scalable routing solutions.

After years of development effort, it turned out that the "better" solutions didn't work well in production, at least not for our workloads. So we went back to million $ hardware load balancers and random routing.

I don't know if things changed after I left, but I can tell you it wasn't an easy problem. So I completely buy the robustness and simplicity argument these guys are making.

<comment><USER36> Nope, DRR is still dead :)</comment></comment></comment>


What happens when you swap the colors of famous logos? - <AUTHOR> http://sploid.gizmodo.com/what-happens-when-you-swap-the-colors-of-famous-logos-1460616784

<comment><USER2> McDonald's already has a green logo variant:

[https://www.google.com/search?q=mcdonald's+green+logo](https://www.google.com/search?q=mcdonald's+green+logo)</comment>


What I experienced on a 7 day water fast - <AUTHOR> https://hackernoon.com/my-7-day-water-fast-journey-8312e53ca3cb <comment><USER2> Interesting, though I'd not recommend forcing a water fast upon yourself, more risky than food fasting. Also reading, "I soon conducted my own research and watched as many videos about it as possible and sought out personal anecdotes. Who am I kidding, Reddit was my source of truth (j/k)" Do consult with a Doctor and not just somebody on some abstract forum that may or may not be a Doctor. Everybody is different, what works well for one, ends badly for another.

Also going without water has a quicker and more serious impact upon the body over a shorter period of time than going without food. I'd personally not advocate it at all, but again emphasise that you consult with a Doctor before going on any such exercise. [EDIT ADD] [https://www.medicalnewstoday.com/articles/325174.php](https://www.medicalnewstoday.com/articles/325174.php) adds some perspective and talking death here, so don't do it.

<comment><USER3> It is a bit difficult to tell but it appears that the author did consume water, but only water. This was just a normal fast that he called a 'water fast'.

<comment><AUTHOR> Yes, water fast as opposed to the much rarer and riskier "dry fast" in which ones relies on the body fat dissolution for hydration.</comment></comment></comment>


Ask HN: What startups are working on hard, interesting problems? - <AUTHOR> This is open for interpretation. It could be a problem that's technically hard, an idea that's trying to disrupt a technologically backwards industry, etc. And interesting in that it's working on a novel solution to a new or existing problem, and not just another boring photo sharing app. Again, this is subjective, but I'm sure your responses will be valuable nonetheless. <comment><USER2> Astronomer is working on building the platform for data scientists and data engineers to be able to pipe any source to any destination.

Some of the technical complexity comes from the sheer diversity of data sources and sinks. The infrastructure is also non-trivial.

This is somewhat future looking because most large startups have a data team that builds their own in-house system eg Airbnb, Yelp. However a lot of companies don't have that luxury and extracting value (patterns and insights, for example) from your data is useful for many businesses.

</comment><comment><USER3> I have just the company you're looking for: This company is working on solving the most difficult problem the humanity has been ever since it existed--how to get laid--it's called Tinder.

That's right! This problem is so hard that NOBODY can claim to have figured it out. And I haven't even gotten to the market size--the potential market size is literally the entire humanity! Not everyone wants to share what they had for lunch, but EVERYONE wants to get laid!

Hope this answers your question!

<comment><USER4> If, by "nobody", you mean "around 100 billion cumulative people", then I agree with you.

</comment></comment><comment><USER5> We're launching a platform for Government-solvable problems:

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

</comment><comment><USER6> [https://en.wikipedia.org/wiki/General_Fusion](https://en.wikipedia.org/wiki/General_Fusion)

</comment><comment><USER7> How do you define "hard" and "interesting?"

<comment><AUTHOR> I clarified the terms in my edit.</comment></comment>


Specialize in Something Relevant - <AUTHOR> http://blog.jayfields.com/2008/11/specialize-in-something-relevant.html <comment><USER2> To be a web developer today, you really have to have a big bag of tricks.

Do you guys find that many of your best colleagues have a wide spread of knowledge (from SQL to CSS, including sysadmin) or are they pretty specialized? (amazing with Ruby but doesn't jQuery)

<comment><USER3> > To be a web developer today, you really have to have a big bag of tricks.

Especially if there's only one of you in a small organisation. I have to do everything from troubleshooting computer hardware/software issues, support client's email, domains and & hosting, to HTML/XHTML, CSS, PHP, MySQL, JavaScript (jQuery/Prototype), etc.</comment></comment>


Moore's Law, Microprocessors, Abstractions, First Principles [video] - <AUTHOR> https://www.youtube.com/watch?v=Nb2tebYAaOA <comment><USER2> I found this interview very frustrating to listen to. Lex keeps asking questions about magic, consciousness, AI, and all that stuff... and Jim's a chip designer. Beyond that, Jim doesn't seem very forthcoming about his thoughts on novel architectural improvements other than that Moore's law will hold.

For those interested, a low level technology interview that I scratched the itch I hope'd the Jim Keller one would: [https://oxide.computer/blog/on-the- metal-1-jeff-rothschild/](https://oxide.computer/blog/on-the-metal-1-jeff- rothschild/)

 _On this episode of On the Metal, we interview Jeff Rothschild. Jeff has had a fascinating journey solving all sorts of fun problems at various levels of the stack. He is most widely known as being a co-founder of Veritas Software and the first VP of Engineering at Facebook, but his story does not start there. Join us as we hear Jeff's stories from his impressive technical endeavors including disassembling MS-DOS, editing machine code in an octal editor, trolling coworkers in error messages, the origin story of ftruncate, and more._

<comment><USER3> I agree, Lex is overall a very competent interviewer who clearly spends a lot of time prepping before each interview (for example his interview with Stephen Kotkin) but he should really reconsider the value of those deadend philosophical questions he asks every guest (what is the meaning of life? Do you think we will have AGI? Will AI eventually end human civilisation?). I have yet to see an interesting conversation follow from those questions, and quite frankly I don't find them interesting at all, certainly not 10-15 minutes of each interview.</comment></comment>


Starting a startup while working full time - <AUTHOR> Hi all,
I have an idea that I want to develop but I don't have the means to not work and work on my idea full time. I was wondering who has had experience or knows of some reference individuals who have done this?
Any insight is really appreciated! <comment><USER2> Welcome to HN. Thousands of people and they do hang out on hacker news. Your question isn't specific enough, so you might want to start using the search feature (bottom of page) and research 'side project'. Even filtering to just the last week or month will give you a couple of good discussion threads (and motivation). Good luck on your venture. Feel free to ask specific questions in the [https://news.ycombinator.com/ask](https://news.ycombinator.com/ask) category (just add 'Ask HN' to the beginning of the question).</comment>


YouTube can restrict PragerU because it is a private forum, appeals court rules - <AUTHOR> https://arstechnica.com/tech-policy/2020/02/first-amendment-doesnt-apply-on-youtube-judges-reject-prageru-lawsuit/ <comment><USER3> Since the First Amendment acts as a constraint on Government, yeah, it makes sense that YouTube is under no obligation to protect your freedom of speech. This isn't a hard concept.

<comment><USER4> I think it's a little more nuanced than that, in a way the bill of rights never had reason to consider.

The freedom of speech prohibits government control of speech in government (read: public) spaces, in order to conserve public right of criticism of the government.

These massive platforms, as a matter of business, attempt to replace and own "the public square." Google/YouTube, directly or indirectly, controls an enormous fraction of the public conversation. Their interests, as corporations constantly lobbying for favorable regulatory treatment, tend to align along the "appease the government as long as it doesn't hurt our revenue" axis.

You can with some validity argue that an entity that monopolizes control of the public square is obligated to protect the rights intrinsic in that square, all the more so when their interests align with the government's.

You can, with some validity, argue that a company doesn't have to have a monopoly on the public square to be forced to recognize those rights, but as a continuous function, as they subsume more of the public square they should undergo increasing burden for conserving the functions of that square.

It used to be "the public square" was a distinct geographic entity. We are now faced with the fact that it was, maybe, a set of functions attached to that geographic entity, and it's those functions that must be protected.

<comment><USER5> While I am quite sympathetic to the argument, PragerU would need to disagree (if we assume they actually believe their videos are true). So they are American conservatives in the sense that they argue that free markets have the right outcomes, and more importantly they are originalists, that is they argue that one should interpret the US constitution as intended when written, not in a sense, what the principle would tell one when we imagine the US constitution was written today.

<comment><USER6> > more importantly they are orientalists

Probably "originalists", although they may also be orientalists too :)

<comment><USER5> Indeed, fixed.

</comment></comment></comment></comment></comment><comment><USER7> Everyone here is saying 1A doesn't constrain private parties. But that's missing the heart of PragerU's claim.

Section 230 gives internet platforms immunity for what users post. But at the same time, platforms want to moderate their content selecting which views are acceptable and which are not.

These are inherently conflicting things. Section 230 gives special protection on the assumption that platforms aren't involved in selecting what users post. But then with the other hand, platforms _are_ selecting what users post via their content guidelines.

We have common carrier provisions for other communication mediums with no liability (ex. TV, ISP's). And we have liability for communication mediums with editorial control (ie. Newspapers, Magazines).

Tech companies are running up the center and making huge profits with an unfair legal advantage that no other communication medium gets.

Newspapers have to vet their classifieds and editorials. Facebook/YouTube/etc doesn't. And that is inherently unfair.

So either Congress or the Courts need to fix the law. And it's fair game for the courts, because the law is not being applied correctly to these platforms, given their abuses.

<comment><USER8> This argument has become a meme at this point. EFF debunks it.

[https://www.eff.org/deeplinks/2018/04/no-section-230-does- no...](https://www.eff.org/deeplinks/2018/04/no-section-230-does-not-require- platforms-be-neutral)

>These are inherently conflicting things. Section 230 gives special protection on the assumption that platforms aren't involved in selecting what users post. But then with the other hand, platforms are selecting what users post via their content guidelines.

No. If HN removes spam or off topic content or anything else, it does not automatically mean that it's suddenly liable for someone posting libel and getting sued over it. That wasn't the intent of the law from the text, and it was never interpreted that way.

<comment><USER7> EFF's word is not god. I like them, but you make it sound like it's a settled debate. I'm here to say there's another side and present that viewpoint.

As you many imagine, I agree with Sen. Cruz's line of question from the article you linked. And I don't think EFF's solution is viable. They suggest that Facebook should make their policies more transparent and give users more control over what they see.

But this misses the entire point. Facebook/YouTube/etc are in a monopoly position. They've proven that they are nakedly partisan, and they have no intention of acting in good faith.

Platforms should not be allowed to discriminate on any viewpoint or legal content. They can still provide tools for advertisers to choose what content their ads appear next to. And they can still provide tools for users to choose what they see.

But discriminating on some viewpoints and not others is anathema to a public forum. And you can read Section 230 that way.

<comment><USER9> If you believe Facebook is a monopoly, then the solution is to break up its monopoly, not to compel it to behave a certain way in its capacity as a monopoly.

<comment><USER10> In the past, other remedies have been found. For some time, there was a status called "common carrier". Firms that were considered common carriers certainly were compelled to behave in certain ways. Now they've paid lobbyists and lawyers lots of money so that doesn't exist anymore. Still, it isn't inconceivable that legislators who really valued the public good could create a "common online service" status to cover this and similar situations.

<comment><USER8> This doesn't make any sense. The common carrier status still exists. It doesn't make sense to apply it to particular websites unless Congress acts to create a new law.

</comment></comment></comment></comment></comment></comment><comment><USER11> Is every commercial content platform free to censor the content however they want? Can Verizon censor the CNN and Fox News that is delivered by cable? Can my cell phone carrier censor whatever conversations I have that they don't like? Can Google skew and eliminate searches they don't agree with?

The former cases seem unlikely, so what is the difference with YouTube?

<comment><USER12> > Can Verizon censor the CNN and Fox News that is delivered by cable?

Yes, and they already set standards for the channels they accept on their cable platform.

> Can my cell phone carrier censor whatever conversations I have that they > don't like?

No, your phone carrier is a common carrier.

> Can Google skew and eliminate searches they don't agree with?

Yes, but they might hit issues with advertising guidelines depending on intent

<comment><USER13> The question is why YouTube and Twitter shouldn't be treated as common carriers. Is it because they're one-to-many instead of one-to-one?

<comment><USER14> Because among other reasons, common carriers were given certain responsibilities to do so, among the privileges and rights they were given (legislated rights of way, exclusive access to airwaves etc.) that were deemed in the public good.

There are no such limitations on YouTube, Twitter, nor are there restrictions on competition.

</comment></comment></comment></comment><comment><USER15> YouTube is really silly to ban PragerU. Although I disagree with maybe 70% of PragerU's content (I listen to their podcast), I find it very informative of the conservative POV. It also exposes me to ideas that makes me do my own further research. I listen to them regularly; there is much worse content on other places in YouTube.

<comment><USER16> They haven't banned it; their channel is the first search result on YouTube for the keyword 'PragerU'.

They've flagged it as restricted content so that advertising isn't attached to it, organizations who specifically ask Google "Don't show me restricted content" (such as schools) can't reach it from the networks they control, and auto-recommendation engines are down-sampled on it. Essentially, PragerU is trying to argue that they should have the right to force YouTube to classify their content into the same bucket as "baby shark" videos.

It's a very silly argument from PragerU's side.

<comment><USER17> And at the same time, Google claiming that prageru is "sensitive content" is kind of ridiculous too.

<comment><USER16> I believe it falls under "Incendiary or demeaning content" ([https://support.google.com/youtube/answer/7354993?hl=en](https://support.google.com/youtube/answer/7354993?hl=en)).

Edit: other commenters ([https://medium.com/@ephromjosine/okay-prageru-lets- look-at-w...](https://medium.com/@ephromjosine/okay-prageru-lets-look-at-what- videos-youtube-restricted-46351812d4ef)) note that it may very well simply fall under "Mature Subjects" (terror, war, crime, politics).

<comment><USER17> All of those "Mature Subjects" sound like things that kids in schools should _very definitely_ be allowed to access, IMO.

And somehow I'd imagine that CNN's YouTube channel isn't limited in the same way. (Or Fox News, for that matter)

</comment></comment></comment></comment></comment><comment><USER18> While I agree with the ruling, we could use some new laws governing fairness on the Facebook and Google monopolies.

These two companies have tremendous political power and I don't think ignoring that and hoping for the best is a great option for an open society.

The other solution could be to break up FB/Instagram/WhatsApp and Google/YouTube to inject some competition back into these markets.

<comment><USER19> The problem we have is that whilst lots of people think that there should be new regulation, no one can agree on what it is and in the mean time you have to contend with:

* Both partisans pushing for legislation they can use to beat the other side with

* Monopolistic entities such as facebook that intend to use 'regulation' as a moat - writing legislation that only restricts them from doing things they already don't do

* Incompetent legislators who don't understand the issues - since they were born before colour tv was invented, let alone smart phones and the internet.

And that's before even considering the obvious anti-competitive mergers that have been happening. You talk about breaking up Facebook/Instagram/Whatsapp. Why were they allowed to be sold in the first place.

</comment></comment><comment><USER20> Seems like a pretty weak argument they made regarding the first amendment. Google censorship being considered a "state action"? Yeah right.

A more interesting test case is Google removing footage of elected officials speaking in a congressional session: [https://www.axios.com/rand-paul- whistleblower-name-youtube-v...](https://www.axios.com/rand-paul- whistleblower-name-youtube-video-removed- fcbeb035-c486-4aa1-a563-44deb10dd0be.html)

<comment><USER21> It's Google's platform, they're not the stewards of reality and are free to censor whatever they want.

<comment><USER20> Freedom to censor being a legal right?

<comment><USER22> Yes. Free speech is just as much about your right to keep your mouth shut as it is the right to open it.

</comment></comment></comment></comment><comment><USER23> I wonder, why did they use a First Amendment claim rather than something to do with safe harbour considerations (Section 230 of the Communications Decency Act)?

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

My understanding in this area is thin, but from what I understand the big tech media companies often claim limited or no liability for user generated content because of the above legal considerations. If so, and they then go on curate content, that would seem to be allowing them to accept the upside of being a publisher (a curated experience they can sell to customers and other stakeholders) without accepting the downside (liability for copyright infringement, slander and libel, etc.).

I'm not sure why PragerU's legal team didn't push in this area rather than the admittedly dodgy First Amendment claim.

edit: grammar.

<comment><USER24> This is exactly backwards. 230 does not say "you are safe if you moderate nothing but expose yourself to trouble if you moderate". It says "if you moderate, but not perfectly consistently, you are still protected from garbage on your platform".

<comment><USER23> Haha well that explains that then. Thanks.

</comment></comment></comment><comment><USER25> The world is a better world when reasonable opinions are well-considered on all sides.

Prager U's videos are not hate speech. They are reasonable opinions voiced in a calm manner.

It is sad that YouTube chooses to de-promote Prager's content. But it is not illegal.

<comment><USER24> > They are reasonable opinions voiced in a calm manner.

Many of their videos are _wildly_ against academic consensus and also inflammatory. A classic is the claim that colonialism was actually great for colonized nations.

You can absolutely voice inflammatory and bogus intellectual material in a "calm manner". That doesn't change that it is both wrong and inflammatory.

<comment><USER26> And blindly following academic consensus is good?

<comment><USER24> You are more likely to hold accurate beliefs about the world by deferring to experts. Its not a guarantee but it works well. Treating heterodox ideas as valuable simply by virtue of being heterodox is a much worse epistemological model than trusting academic consensus.

</comment></comment></comment></comment><comment><USER27> A more interesting case would be the federal government pressuring YouTube to remove some videos, similar to the Wiki leaks payment blockade a few years back.

</comment><comment><USER28> As a private company, I don't believe YouTube should be obligated to be a platform to host people's free speech. However, they do advertise themselves as a public forum so by restricting viewpoints that they disagree with they really aren't the public forum they claim to be.

</comment><comment><USER29> Leonard French (an actual lawyer) who runs the Lawful Masses YouTube channel has quite a good analysis of the failed appeal:

[https://www.youtube.com/watch?v=Ddz5u8Yygys](https://www.youtube.com/watch?v=Ddz5u8Yygys)

</comment><comment><USER30> The court could not have ruled otherwise. Still, a society where a dominant corporation has this much power to squelch voices it doesn't like is not what we ought to hope for.

</comment><comment><USER16> Or rather, First Amendment applies to YouTube, but they have freedom of the press; they are not obligated to be a medium for other people to exercise their freedom of speech.

<comment><USER13> That's the core issue in my mind -- YouTube et al. are publishers when it benefits them and platforms when it doesn't. They can't simultaneously identify as press but then not be responsible for user-uploaded content.

<comment><USER16> When they're acting as a hosting medium, they're conduit. When they add features atop the content they host to curate and surface it or down-signal it, they're press.

The two functions seem to be acceptable within one organization.

Probably worth noting there's a hefty dose of practicality in the interpretations as they currently stand. Even this forum, without safe harbor protection, could be on the hook for user-provided content if someone linked to child pornography here, yet it seems most users here are in agreement that Hacker News shouldn't lose safe harbor protections because it has moderators and community-driven karma.

</comment></comment></comment><comment><USER31> It's interesting that the article lists PragerU as a conservative outlet. The stuff I've seen of theirs in the past gave me the opposite impression.

<comment> blaser-waffle Citation needed -- link me to something that isn't conservative.

<comment><USER31> I'd have to find it. They put out one on the causes of the civil war that went viral years ago that was so misleading it was embarrassing.

( Civil War history is a hobby of mine because it's really interesting )

<comment><USER32> The only civil war cause related video of theirs I've seen is them explaining that, "No, really, the civil war was because states wanted slavery and not anything about states rights unless you think states should have the right to allow slavery"

This is an odd position to take since the typical conservative angle is to pretend slavery wasn't directly called out in like 50% of the seceding state's documents of secession, and instead claim some nebulous "states rights" claim

<comment><USER31> IIRC they circulated a video along those lines in the wake of the Charleston church shooting to capitalize on the topic for marketing purposes. It was a very oversimplified video designed for the quick "FACT! In your face!" social media argument.

If they are a conservative outlet then that video was specifically designed to engage non-conservatives so that they could reach them and that would make sense if that was the mission.

As for the the actual causes, there really is a lot of complexity to it.

The short version:

\- 11 states seceded

\- There were only 4 declarations of causes (SC, Georgia, Miss, Texas)

\- Secession happened slowly over the course of many months, from November to May

\- The border states of North Carolina, Tennessee, Virginia and Arkansas seceded in direct response to Lincoln's requisition for troops. The request bypassed Congress. Virginia legislature in particular took it as an abuse of executive power.

The viral video put out by Prager quickly listed off the states that seceded and oversimplified by saying "all the declarations of causes" which insinuated that each state produced such a declaration. It gave the appearance that the secessions were something of a quick and unified action.

It hit all of the necessary points for a viral share though. Gave the appearance of an educational entity delivering a quick video to support the "everybody in the south was evil" rhetoric.

If you ever really deep dive into the history, there was a lot going on, so seeing something like that from an "educational" institution immediately put them on my propaganda radar. I haven't seen much else from them since.

</comment></comment></comment></comment></comment><comment><USER33> Wow a fake university that promotes pseudo-science doesn't understand the first amendment? Shocker.

</comment><comment><USER34> Putting on my tinfoil hat on for a bit, I think PragerU did this lawsuit largely for marketing value, knowing full-well it wouldn't win, since their actual argument was bizarre and had implications that literally no one would get behind.

It puts the right-wing entity "PragerU" into the public consciousness, and they get to wear some badge of "We're the real defenders of free speech!" I'm sure that Dennis Prager and his ilk will go on Fox News and use this to talk about how the evil leftist court systems don't believe in open discourse, and it'll probably end up with more people watching the videos overall.

<comment><USER16> Agreed. PragerU doesn't appear to understand many things, but I think they understand Streisand Effect.

</comment></comment><comment><USER35> Was that not already well established?

</comment><comment><USER36> What a deceptive headline

</comment><comment><USER37> There are a lot of comments here suggesting that this case is cut-and-dried obvious. YouTube is a private entity, QED.

This case is more nuanced than that, and part of an ongoing, evolving understanding of the purview of the First Amendment in the United States.

(NOTE: IANAL, much less a constitutional law scholar, I'm just digging into some news over coffee as an interested citizen)

Poking around the case materials a little bit:

PragerU lawyers reference a decision (here: [https://caselaw.findlaw.com/us-9th- circuit/1332974.html](https://caselaw.findlaw.com/us-9th- circuit/1332974.html)) in which a corporate entity tried to remove street preachers from grounds (the Rose Garden) partially leased from a public entity (the City of Portland). The court found in favor of the preachers, holding that the corporation effectively was a state actor over which the court had jurisdiction.

If you read the reasoning in that case, you'll find reference to other cases in which the courts tried (unsuccessfully) to hammer down what counts as a state actor. From a very cursory reading there's substantial jurisprudential churn around the notion of "state actor" \- there are commonly accepted "tests" (which are sort of like thought experiments in philosophy), a substantial amount of common sense, and a large margin of error involved in determining whether or not a private entity is behaving in a way that might run afoul of restrictions placed on public actors.

It's clear that there are cases where publicly owned resources are leased to private entities, and that "speech" happens over these resources (broadcast frequencies, ISP rights, publicly-owned domains, etc.). There certainly are private actors in this space that do fall under the purview of the First Ammendment.

Again, I don't think YouTube is such an entity - and the courts agree - <USER2> this is a space where limits are evolving and being tested all the time.

edit:

I enjoy the court's somewhat punchy decision:

      Both sides say that the sky will fall if we do not adopt
      their position. PragerU prophesizes living under the tyranny
      of big-tech, possessing the power to censor any speech it
      does not like. YouTube and several amicus curiae, on the
      other hand, foretell the undoing of the Internet if online
      speech is regulated. While these arguments have interesting
      and important roles to play in policy discussions concerning
      the future of the Internet, they do not figure into our
      straightforward application of the First Amendment. Because
      the state action doctrine precludes constitutional scrutiny
      of YouTube's content moderation pursuant to its Terms of
      Service and Community Guidelines, we affirm the district
      court's dismissal of PragerU's First Amendment claim.

<comment><USER37> why on earth was this downvoted? did I incorrectly report something? I'm actually confused. was the observation that the case represents a sample of a complicated and interesting legal landscape in the United States of America incorrect, insulting, or what?

<comment><USER38> I have no idea why you were downvoted.

The whole concept of down/up votes is broken - I am a grown-up and quite capable of critical thinking and can form my own opinion of other people's view.

Furthermore, in this current era of group-think and censorship, comments (like yours) that are downvoted are usually the the most interesting.

On the plus side, the greying-out of such comments just makes it easier to find them among a sea of conformance.

Sincere thanks to all downvoters.

</comment></comment></comment><comment><USER39> am I the only one who finds the irony of a right wing org wanting the government to force a private company to create a safe space for their content funny?

</comment><comment><USER40> mark my words: this will get to the supreme court, and youtube will lose. sites like youtube, facebook, twitter ultimately need to be recognized as some kind of semi-public forum. once they are, the rules change.

</comment><comment><USER41> Does anyone else find it ironic that Google (rightly) led the net neutrality fight against ISPs/carriers, with one of the complaints being potential censorship from these entities.

And then they turn around and censor conservative content disproportionately, with no self awareness on perceptions of bias that it creates.

It doesn't matter if section 203 requires neutrality, a giant megacorp with a monopoly on internet video needs to stay neutral. We cannot have a "rules for thee, not for me" attitude from Google. If they won't stay neutral, they need to be regulated.

Section 203 needs to be scrapped, and something that guarantees 1A, while shielding platforms from culpability, needs to emerge.

<comment><USER42> > Does anyone else find it ironic that Google (rightly) led the net neutrality > fight against ISPs/carriers, with one of the complaints being potential > censorship from these entities.

No, because to use a transportation analogy ISPs are like buses or light rail, while websites are like the stores and offices and gathering places that you take the buses or light rail too.

There would be nothing ironic about believing that a city's bus or light rail systems should be required to accept all passengers who have the fare and are not an actual danger to other passengers, while simultaneously believing that a private store or office that one might reach by bus does not have to accept everyone.

<comment><USER41> Why does Google feel the need to censor _any_ conservative content? The right to censor doesn't have to culminate in actual censorship without cause.

Double speak is on full display here: self certified ethical, moral, freedom loving, anti authoritarians are the first to indulge in thought policing.

Moreover, this kind of censorship plays out on the daily across tech, while the companies involved lie about not being biased, with a straight face. It's all too Orwellian</comment></comment></comment>


Ask HN: Does any company want to hire me? - <AUTHOR>

My Situation:
So I am a senior in college graduating in May and I have been offered a job doing business development for a pretty cool venture backed startup when I graduate.  I think this is an awesome accomplishment since I figure it is hard in general for a business guy to get hired at a startup with less than 15 people let alone one right out of school.
I've ran a web development company throughout college and am pretty good at SEM, landing page optimization, social media marketing, and love all things business in the tech world.
The rub is that while this job is pretty much perfect and probably the best I could do for my overall life, I am getting a relatively low salary and have been instructed by the parents to search for other options just to hopefully have choices.  So this post is my solution.
I can pretty much move anywhere and most considering me a pretty eclectic guy who was seemingly born with more hours in my day than most.  I've played the bagpipes, published bio research papers, won business competitions, named Mr. February in a calendar, and looove sushi.
My personal site is:
MichaelPlaterII.com
Most of my info/resume/links are there. <comment><USER2> Context: I employ people. I have 22 employees, and the last three hires were because I saw someone that impressed me and put them on, even though neither of us knew what they would do. I knew they would be of value.

I'm not hiring at the moment, but here are some thoughts about your resume:

When I read a resume I want to know what value you will bring to my company. I want to know what you can do, and then I want to see the evidence to support your claims. I want to know why you are going to bring in more money than you cost. Your CV on your web site has to be generic, I know, but I can't easily see from it what you can do.

There are some impressive things there (teaching in Ghana, running your company, etc.) and they will lend support to your claims, but first, what will you do for me?

Secondly, I know it's unusual for a senior director of two companies (yes, I run another company as well) but I don't use Word. Yes, most people who will read your CV will, but it would be nice to have a plain text version, and a PDF version, and an HTML version. Make some effort to make it easy for people to see what you have to offer.

Finally, one of my colleagues just read this and my other comment and said - "Harsh." Yes, agreed. But still, these are things I believe to be true, and I offer them in the hope that they are of value. They might not be, feel free to ignore them, but perhaps they will help. They are offered in that spirit.

And I wish you good luck.

<comment><AUTHOR> Thank you for the advice and constructive criticism, and I do take what you say as that. Most of my counterpoints you addressed already (I guess that's a sign of a good leader :); yes my web site CV is more generic, and yes it is unusual for you to be without Word.

The truth is I really respect the leadership at the company that gave me an offer and I WANT that job. My lack of attention to detail to this could be a reflection of that.

Thank you again.

<comment><USER2> Good reply.

> The truth is I really respect the leadership at the > company that gave me > an offer and I WANT that job. > My lack of attention to detail to this could > be a > reflection of that.

Quite possible. Let me offer this thought though - if you tried _really_ hard, maybe you could find an offer that's even _more_ attractive. If you _don't_ try really hard, you'll never know if you simply took the first thing that you liked the look of. Maybe there are things that are even better.

But whatever you decide, I do wish you the best.

</comment></comment></comment><comment><USER2> Clickable: <http://MichaelPlaterII.com>

OK, question: why didn't you put in this comment to make your site clickable? If I were looking to hire, I'd want someone with impressive credientials, and who showed some initiative. You've made it harder than it needed to be for me to look at your CV. What does that tell me?

Secondly, can you negotiate options with the new company? If it's a hip, happ'nin' place then options could be worth a lot of money. Getting a stake in the company could placate your parents.

Having said that, it's certainly true that you should look around, but don't waste your time. If you're going to take time to do it, do it properly. Bend yourself to the task as if the result really mattered.

It might.

ADDED IN EDIT: Why didn't you link to your earlier question: <http://news.ycombinator.com/item?id=1105565></comment>


America could still go over the cliff — and take the rest of us with it - <AUTHOR> http://www.dailymail.co.uk/news/article-2256289/America-cliff--rest-it.html

<comment><USER2> I trust in the pragmatism of the financial elites to prevent a collapse. More pressing are Spain and Italy. But again, pragmatism over dogma. No one can win if the casino is closed.</comment>


Ask HN: What's the HN for finance? - <AUTHOR> <comment><USER2> It's a blog but Vamsi's blog is great:

[http://www.vamsitalkstech.com/](http://www.vamsitalkstech.com/)</comment>