Ask HN: Where the hell is all this recent hate on Gen Y'ers coming from? - <AUTHOR> How does Jason Calacanis get off calling my generation "entitled trophy kids"? <comment><USER2> It seems to be an eternal truth that older generations think younger generations feel too entitled and don't respect their elders, the value of hard work, authority/hierarchy, or paying your dues. It was basically the complaint the WW2 generation had about the 60s/70s generation, the complaint the 60s/70s generation had about Gen-Xers, and now apparently the complaint Gen-Xers have about Gen Y. So I wouldn't worry too much about it.

<comment><USER3> The interesting thing is, it may actually be true. Those things have been in a long, gradual decline for centuries.

<comment> j-g-faustus Doubtful. Here's Hesiod around 800 BC:

"I see no hope for the future of our people if they are dependent on frivolous youth of today, for certainly all youth are reckless beyond words... When I was young, we were taught to be discreet and respectful of elders, but the present youth are exceedingly disrespectful and impatient of restraint"

Between the two hypotheses a) "society has been declining for thousands of years" and b) "older people tend towards grumpiness" I know which one sounds more likely :)

Although Hesiod's "I see no hope for the future of our people" may be vindicated by the fact that his culture no longer exists.

Perhaps cultures stagnate and corrupt over time, and complaints about youth is a symptom rather than a cause? Perhaps the collapse of a civilization every now and then is one of the mechanisms that keep human societies sustainable in the long run?

There are interesting questions here, but I don't think the older generation complaining about the younger generation is one of them. Not in and of itself, at least.

<comment><USER3> I wouldn't say that society has been declining for thousands of years, but there have definitely been long periods of consistent decline in things like toughness, respect for elders, and so on. Hesiod's time would have been one of them, because Greece was then in transition between the tough, impoverished warrior culture of Homeric times and the comparatively easy, luxurious city life of Plato's time.

Among English speaking peoples, toughness has on average (i.e. not including people who hit restart by moving to frontier areas) probably declined monotonically since around 1000 AD.

<comment><USER4> This seems to be a function of rising living standards, so that the population is never tougher than they need to be. If we assume that toughness is a desirable attribute, is there a way to toughen people up, even if they don't "need it".

<comment><USER3> Sure, military training tends to do that.

<comment><USER2> Wealthy societies tend to resist military training, though. I can't imagine a proposal to reinstitute the draft would be very popular in the US, and much of Europe is slowly phasing out their mandatory military service.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> More importantly, why do you care what he thinks? Just do your thing.

</comment><comment><USER6> The other year an in-law remarked that "kids today" were unwilling to do the group house thing. I asked whether n years ago he ever imagined himself using the expression, and got laughs from his sister and wife, and a rueful one from him.

How does JC get off? Well, what are going to do? Boycott him? Challenge him to a duel? A mixed martial arts match? Regard him as background noise, a minor nuisance like a loud, smelly bus stop, and move on.

But remember this in 10 or 20 or 40 years when you are tempted to say bad things about the young of that day.

</comment><comment><USER7> "They should make a phone that you put on a wall so you always know where it is!" -- Gen Y</comment>


Elixir on Google Cloud Platform and App Engine - <AUTHOR> https://cloud.google.com/elixir/ <comment><USER3> Hey all! I'm one of the engineers who worked on this. If anyone has questions or wants to get involved, feel free to open an issue on the github repos.

* Elixir clients for Google APIs: [https://github.com/GoogleCloudPlatform/elixir-google-api](https://github.com/GoogleCloudPlatform/elixir-google-api)

* Elixir runtime for App Engine: [https://github.com/GoogleCloudPlatform/elixir-runtime](https://github.com/GoogleCloudPlatform/elixir-runtime)

* Elixir examples: [https://github.com/GoogleCloudPlatform/elixir-samples](https://github.com/GoogleCloudPlatform/elixir-samples)

<comment><USER4> Thank you for your work! Is this an indicator that Google is interested in or using Elixir internally or is it just a response to growing requests from the community?

<comment><USER5> The latter. But you should realize Google is pretty conservative internally in the main repository because of the amount of code/tooling/etc. While we let people experiment in the main repository, they are controlled experiments. Even if we decided, tomorrow, to move the main repositories away from our current set of programming languages, that would be a fairly long term path, not a short one.

Outside of the main repository, or on google open source projects, or etc, people can generally do what they want, they just don't get the benefits of the above if they aren't using a language we already support very well.

<comment><USER6> So which languages are use internally in the main repository then?

<comment><USER7> Java, C++, Python, Golang, and Swift/ObfC for iOS apps

<comment><USER8> No JavaScript? Or is that because it's not used internally but in the public internet?

<comment><USER9> Google's "big" client apps (Inbox / Gmail / Calendar) are a mix of Java converted to JS (GWT) and native JS with the Closure library/compiler. I think, anyway.

<comment><USER10> Not sure if GWT is still that relevant nowadays. AngularJS was developed by Google many years ago. It was already pure JS.

<comment><USER11> Inbox by Gmail launched in 2014, long after Angular JS was first released, and uses GWT.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I wrote a book on Akka with many years of experience with it and I have been using Elixir professionally for 7 months or so on greenfield/replatforming efforts and I have to say that the BEAM VM is really an incredible piece of technology that leaves Akka on the JVM in the dust in several aspects because the VM is actor-model native. I wish there was a statically typed language that ran on BEAM but Elixir and Erlang are great technologies to run in production if you can accept some of the associated risk of newer eco-systems in Elixir (but erlang has your back!).

<comment><USER13> You may already know about it, but if you are looking for a statically typed language that runs on BEAM, you might want to check out Elchemy.

[https://github.com/wende/elchemy](https://github.com/wende/elchemy)

It allows you to write elm-like code that transpiles into easy to read and idiomatic (for the most part) elixir code.

<comment><USER14> THANK YOU. I didn't know about this, myself.

I love the philosophy and robustness of the BEAM VM, but I can't go back to the stone ages of a language with a poor (or non-existent) static type system.

<comment><USER15> I don't find staticness to be the gating criterion for me. Go, for example, has a static type system that's IMHO very poorly designed - for example, if you want to multiply a time interval by some integer, you have to convert the integer to a time type and then multiply, which breaks my poor science brain (violates fundamental concepts of dimensional analysis). You also have to do things like pick between implementing something with slices versus fixed size arrays, and generic functions are not an option. I couldn't write fn dot_product{n}(v [n]int){...} for example.

What you probably want is a _strong_ type system. Functional programming languages (I'm thinking Julia as an archetype of strongly typed systems) especially are really good at dispatching over types, and can make robust optimizing inferences using a well-designed type system.

BEAM languages are strongly typed, but there are far fewer types (and no true custom types) like julia. However, gating based on functional guards is simply _amazing_ and more than makes up for a limited type system in terms of code clarity. As for compile-time vs runtime error trapping - part of the point of BEAM languages is "who cares?" An error doesn't bring down your VM. It gets logged, you can see it, and apply a hot patch and fix it if you need to.

<comment><USER14> I like a type system that leans closer to Haskell than not. As someone else mentioned, my users prefer me to catch errors before compile time :)

Expressive, algebraic types allow me to tell my compiler, IDE, and code heirs what I'm trying to do so they know just by reading my code if I failed. That's indispensible.

</comment></comment></comment></comment></comment><comment><USER16> Really excited to see Elixir going more mainstream. It's a hidden gem that solves so many painpoints of the day to day programming. It's POWERFUL!

<comment><USER17> Likewise. I havn't come across a case of someone getting to know the language and disliking it. It's truly a great tool.

</comment></comment><comment><USER18> Excellent!

I recall someone on here (HN) saying that many of Elixir's strengths are weakened significantly because K8 does similar things (auto distribution, hot reloading, etc.)

Any truth to this? Also, can you distribute nodes on VMs and deploy them to Google Cloud?

\---

As a side note, is there a front-end equivalent to Elixir? Elm is functional but is non intuitive. Elixirscript is a thing but seems a bit too early.

<comment><USER19> I've used Elixir/Phoenix on K8s and there's some truth to this. For example - kubernetes' "if the process dies, kill the whole container and restart it" model doesn't work very well with Elixir (a process within the VM can die and K8s will have no idea). To some degree, K8s is replicating some of the BEAM functionality.

But there's still a lot from Kubernetes that Elixir can take advantage of. For example - service discovery, autoscaling, clustering, secret management - <USER2> made easier with a K8s deployment and Elixir.

I wrote a few blog posts about it a while ago if you're interested: [https://medium.com/polyscribe/a-complete-guide-to- deploying-...](https://medium.com/polyscribe/a-complete-guide-to-deploying- elixir-phoenix-applications-on-kubernetes-part-1-setting-up-d88b35b64dcd)

<comment><USER20> Hmm I'm not quite sure I follow the process examine. If your started process crashes (let's say supervisor fails to start due to too many failures), k8s would restart the process (your app) to try again. If a managed process in elixir dies, you could make that bring down your whole app, but generally you would want to handle it yourself.

This is similar to an app server in Ruby. A single worker might die, but it's still being managed by a central coordinator. If the coordinator dies, everything is down and the app restarts

<comment><USER21> Not trying to be flippant, but by extending your analogy: if the Kubernetes supervisor dies (which is conceivable, no technology is infallible), then you are in the same scenario as something bringing your whole Elixir VM down. You can always run your Elixir VM using something like supervisord if you need another watchdog.

BTW, it's very hard to bring BEAM down. Most exceptions will bring kill the faulty process, but leave the supervisor tree untouched. Only "unmanaged" code (for example, calling a C library using a NIF) might crash the whole VM.

Then again, no technology is infallible.

<comment><USER22> >BTW, it's very hard to bring BEAM down. Most exceptions will bring kill the faulty process, but leave the supervisor tree untouched. Only "unmanaged" code (for example, calling a C library using a NIF) might crash the whole VM.

Not completely true. Try to allocate more memory than available and then see what happens.

<comment><USER21> I'm actually curious. Do you have some first-hand experience with that kind of issue? I've only played around with Elixir and my only experience deploying BEAM-based applications on production has been RabbitMQ and CouchDB and both of those were very solid.

Also, isn't ENOMEM a standard error that you can handle using the standard error handling techniques?

<comment><USER22> I have and it wasn't good. It is impossible to handle out of memory exceptions inside the BEAM. At best, you can hope for a crash of the VM. At worse, it just hangs. And one will most likely not find out about this until they hit this scenario.

<comment><USER11> If BEAM is allocating memory it must either be copying a message from one process to another, allocating space in a process for its stack, or for some bookkeeping like to spawn a new process. In the first two cases why doesn't it just kill the process and send the usual link and monitor messages to let other Erlang processes handle the failure?

<comment><USER22> How would it send a message if it can't allocate memory anymore?

<comment><USER21> Haha, yeah, that's the problem with ENOMEM handling in general: unless you have a very clear path to free memory _immediately_ and then try to do some reasonable cleanup, you are screwed. Back in the bad old days of running Windows machines with 8mb of memory, I'd religiously handle that kind of error code... but I can't recall the last time I actually bothered. Commoditized hardware makes us lazy.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Could someone explain what would make the Google cloud platform a better deploy target for my elixir application than any other?

<comment><USER24> You'll need to evaluate GCP's peripheral offerings for database, APIs, pricing, etc.

The biggest thing that this does is give you first class access to the ecosystem APIs and with native setups for AppEngine (Heroku-ish), Compute Engine (do it yourself on a VM) and a provider in Gigalixir which runs on GCP that gives a Heroku-like experience but is tailored specifically to everything Elixir needs (hot loading, clustering out of the box, etc).

Between those two things, GCP is pretty strong.

<comment><USER23> Thanks for the nice answer!

I was reading up on Gigalixir thanks to this thread, is it basically a more "batteries included" version of AppEngine specifically targetted for Elixir?

<comment><USER25> I'm the founder of gigalixir.com and happy to answer any questions you might have. Also feel free to email me directly at email@example.com

</comment></comment></comment></comment><comment><USER26> Discord (a heavy Erlang/Elixir user) runs on GCP, right?

<comment><USER27> Yes we do! We've been able to shake out a fair amount of platform bugs that the Beam VM had on GCP too! Thanks to the google team for taking them all seriously and fixing them. Some were particularly nasty :)

<comment><USER24> Thanks for doing the hard work so we don't have too. :)

</comment></comment></comment><comment><USER28> Surprising development. I wonder if this will complement Gigalixir or compete with it.

The ability to connect between nodes, avoid mandatory restart, avoid connection limits and keep websocket connections alive easily gives compute engine a significant advantage over platforms like Heroku.

<comment><USER29> Disclaimer: I just got a job with Heroku

As far as I understand Heroku lets you connect between nodes (Dynos within a private space with dns discovery [0]) and also supports websockets [1]... for the mandatory restart, wouldn't you want to design your process as stateless anyway?

[0] [https://devcenter.heroku.com/articles/dyno-dns-service- disco...](https://devcenter.heroku.com/articles/dyno-dns-service-discovery) [1] [https://devcenter.heroku.com/articles/websockets](https://devcenter.heroku.com/articles/websockets)

Sorry if I'm missing something obvious!

<comment><USER28> Typically I design applications to be as stateless and tolerant of restarts as possible, as they do get restarted during deploys anyhow. That is a minor issue compared to the difficulties around connection restarts and communication between nodes.

It is wonderful that Heroku now offers exec, which at least allows using observer and other remote debugging tools. The tooling keeps getting better—but there is no denying that it was designed for Ruby deployment, and working the BEAM has significant production differences.

</comment></comment></comment><comment><USER30> This is really cool and all, but I really wish Google Cloud would move things out of beta faster. Cloud Functions are still in beta despite them being GA at both AWS and Azure for a while now. Enterprises typically won't use beta software which makes it nearly impossible to pick Google Cloud for an enterprise.

But hey, they have Elixir support !?!?

</comment><comment><USER31> Nice Elixir is becoming more mainstream

</comment><comment><USER32> Wow this is cool. Does it take advantage of Erlang's distributed networking/nodes feature?

<comment><USER3> We're not doing anything special to help set up distributed Erlang at the moment. It would probably be difficult with App Engine because it's designed to manage stateless containers. But I could imagine setting up such a network with Kubernetes Engine, or definitely with Compute Engine VMs.

<comment><USER20> At elixir ATL meetup we setup an elixir app on GKE and connected the nodes via peerage in under 2 hours. Definitely possible!

<comment><USER24> How often do y'all meet up? I'm in Greenville SC but I could see a road trip happening periodically with the Upstate Elixir group.

<comment><USER20> It's once per month. [https://www.meetup.com/atlantaelixir/](https://www.meetup.com/atlantaelixir/)

It's a pretty small group right now. I'm hoping that a new venue and push will help bring in more people.

</comment></comment></comment></comment></comment><comment><USER33> Okay.

I spent a lot of time last week trying to get elixir setup on gcloud, but variables were the one thing I could never figure out and I eventually gave up.

Is there some magical way to get variables and secrets in gcloud without having to commit them to a repo?

<comment><USER34> Deploy to Google Kubernetes Engine; `kubectl create secret`; set the env-vars of your Deployment to be derived from the secret.

<comment><USER35> Wait, you can't put secrets in GCP without first learning Kubernetes? That's pretty messed up :/

<comment><USER34> More like, Kubernetes (and Google Kubernetes Engine) is the right level of abstraction to actually have a first-class object-type of "secret."

Compute Engine is just raw IaaS, like EC2. You "store secrets" on GCE by writing them to a volume and attaching it across your cluster, or putting them in a common database. Or just pushing data onto your instances after they're up using Fabric or something. You know, just like if they were real computers.

App Engine is made to be a complete and self-contained PaaS (much moreso than anything like Heroku), to the point that it doesn't really _use_ external credentials for anything. For example, you can access BigQuery tables from App Engine without supplying any "BigQuery credentials." Oddly enough, if you _do_ need to connect to third-party services (or, say, Google Cloud SQL) from App Engine, they recommend that you store the credentials to do so in... a BigQuery table. GAE is proprietary and weird. It's basically its own "abstract machine."

Kubernetes Engine, in comparison, is exactly for the use-case of "deploying workloads" of regular potentially-stateful, potentially-long-lived POSIX apps that need things like DB connection strings passed to them. If you're a modern backend developer who burns Docker images like people 10 years ago burned CDs, Kubernetes is the service you _should_ be using on any compute cloud you interact with. Everything else is an impedance mismatch.

<comment><USER36> thanks for the summary.

</comment></comment></comment></comment></comment><comment><USER37> That's a really interesting addition to app engine. Great idea too - try to be first to an up and coming platform rather than try to move applications that have deployed in one way for a decade.

</comment><comment><USER38> This seems to be using App Engine's "flexible" environment. It's less appealing to me than "real" App Engine since as far as I know there's no free tier.

</comment><comment><USER39> I'll have to look this over, I'm running a server cluster on GCE + Appengine currently aggregating and triggering alerts against about 300k device readings per minute. Huge pain point keeping things synchronized between GCE on java and the elixir backend.

</comment><comment><USER40> This is super exciting!</comment>


Do you review your life weekly? - <AUTHOR> I've noticed that I tend to review different areas of my life such as health, relationships, finances etc.<p>I'm curious if anyone does so and what they use to track it <comment><USER2> Yes. I just use my own journaling app which I wrote (sorely needs an update). I track some things through there (exercise) and other things using more specialized tools (finances). I do one every Friday, one at the end of the month, and one at the end of the year.

It's pretty valuable.

</comment><comment><USER3> I don't track it formally, but I tend to always reflect on if I incrementally improved or declined or key metrics e.g. health, work, intellect (various fields of interest), relationships, family etc. Then I think about what I'll do to work on parts where i'm declining in the coming weeks.

</comment><comment><USER4> No. Instead, rather erratically, sometimes a month or so apart (when lots is happening) to a couple of times a year, typically at milestone events like birthdays, New Year, after big family/social events.

I just use a handwritten journal. Helps that I can easily flick back to past entries and feel the dismay at how naive and optimistic I have been in the past. In hindsight things always take far longer than planned and yield lesser results. But then, every now and then I am surprised by how well something has worked out. Still trying to discern the difference between the two. There are far too few examples of the latter to draw any solid conclusions.

</comment><comment><USER5> No.

But do you LIVE your life WEEKLY?

If you do, I bet you will not waste your time reviewing all those aspects, life is to be lived, not to be reviewed.

I have some things I track, such as money, books(just track what I read on Goodreads) etc, but the tracking automatically, if I read something on Kindle, it's on Goodreads. If my account/broker/whatever money amount changes, it gets updated in a single place. Those things are nice because once you set them up it takes no effort for you to know those things afterwards.

Of course I have my own goals and plans, I also take a lot of time to think, but it makes no sense to also have structure on that. I already have so many responsibilities everyday, I can't waste a single second of my personal time with more bulls-.

</comment><comment><USER6> I don't but maybe I should.

But this is a an important step of the "Getting things done" or GTD method, you are supposed to review your life at different level regularly.

</comment><comment><USER7> Yes. I use a journal. It also acts as a planner.</comment>


Rob Pike frustrated by Java, C++ complexity - <AUTHOR> http://www.pcworld.idg.com.au/article/354210/google_executive_frustrated_by_java_c_complexity/ Interestingly these two languages are Google's official languages. <comment><USER2> I am bothered that Rob Pike's name can't carry its own weight, and instead he is referred to just as a "Google Executive".

People wouldn't be super surprised to find out one of the members of the UNIX team, a designer of Plan 9 and the author of editors like sam and acme dislikes aspects of Java and C++. Oh well, I guess "google executive" gets hits.

<comment><USER3> I see this as somewhat more targeted at Enterprise Software type readers, or even non-tech people, where it makes a little more sense to pitch it that way. Something like: executive at big-but-iconoclastic company Google says the way other big companies write their software sucks.

<comment><USER4> Why would non-tech people be interested in Java, C++ complexity?

<comment><USER3> Probably not the languages specifically, but possibly interested in the general narrative of, "the two programming languages all the big companies use are too complex, and Google is doing things differently". But I could be wrong; PC World probably does have more software-engineering readers than non- programmer readers.

</comment></comment></comment></comment><comment><USER5> Video of his talk: [http://www.youtube.com/watch?v=5kj5ApnhPAE&feature=playe...](http://www.youtube.com/watch?v=5kj5ApnhPAE&feature=player_embedded#)!

</comment><comment><USER6> imho, arguing that java and c++ both have the _same_ deficiencies is not totally accurate. java seems to be no where as complex as c++ even with generics. however, java to me _seems_ more complex because it is verbose. and it is verbose because it is too _simple_. when the language is made simple, the complexity gets pushed into the user code a.k.a the "waterbed theory of complexity".

not sure if Go programs would still read like "quiet conversations between a well-spoken research worker and a well-studied mechanical colleague" in a decade or so of some real world usage. a fine line to walk between increased sophistication & noise...

<comment><USER7> Go might have a chance, I think, particularly because of its interface system. Defining interfaces based on an object's methods gives the programmer compile- time assurance that objects can do what they'll need to without requiring an unstable, ever-growing tower of types. It may be simple like Java, but its central abstraction is less rigid.

More info: <http://golang.org/doc/effective_go.html#interfaces_and_types>

Add to this Go's garbage collection and clean built-in concurrency model, and you've eliminated much of what bugs me in day-to-day C++. Go could still blow it with a poor treatment of generics, but I think it stands a good chance of doing Java and C++'s jobs in a much more concise, 'quiet' style.

</comment></comment><comment><USER8> This is a horrible quality article that should be below the standards of news.yc.

<comment><USER9> I agree with you.

This article mentions Java and C++ as languages that have become too complex, but without actually stating what this complexity is. Maybe it's just the summary-like nature of the article, but it talks as if we're all meant to just agree with it.

I do agree on the merits of Go (especially relating multi-core processors), but there's surely a better way of expressing these merits than bagging out Java & C++. Just seems a little tacky to me.

(Sorry for the tone of my comment.)

<comment><USER10> Guys... It's IDG. It's not for hackers, but for PHBs.

"Google executive"... Come on...

</comment></comment></comment><comment><USER11> "Rob Pike digs his own language".

</comment><comment><USER12> _The languages tend to be interpreted rather than compiled, meaning the programs written in such languages aren't compiled before running...._

Thanks for that brilliant bit of journalism there.

<comment><USER13> also (paraphrased):

a. Javascript is less than 10 years old

b. It was developed in response to the growing complexity of Java/C++

</comment></comment><comment><USER14> One of the points Larry Augustin makes is that languages become more complex as they adapt to a wider range of use cases. The fact that people end up using languages outside of their intended contexts strikes me as a case of not using the right tool for the right job. This is why learning a wide variety of languages is important -- it gives people perspective and opens up new and better ways of solving the problem at hand.

I think programmers, in general, aren't comfortable creating their own DSLs or language-level abstractions to problems, and this often leads less than ideal workarounds.

</comment><comment><USER15> Gmail is written entirely in Javascript? Even on the server side?

<comment><USER16> Well, that sure seems to be what Adam de Boor said at USENIX. Googling for reports on his talk and the Q&A session, it sounds like someone asked him if Java would have been better, and he said that Javascript's perceived shortcomings are largely due to the implementations people see in browsers, implying that he was indeed talking about server-side Javascript.

Aren't there Javascript implementations for serverside that run on the JVM?

<comment><USER15> Rhino can be used to run JS server-side atop the JVM, although maybe by this point they've switched to V8.

I still find it hard to believe they built the whole thing in JS. If it really is so, well... that's actually really, really cool.

</comment></comment></comment><comment><USER17> "At the USENIX annual conference last month, Gmail engineer Adam de Boor surprised the audience by noting that the company's Gmail service was written entirely in JavaScript, and that all of its code, around 443,000 lines worth, was written by hand."

Ignoring the inaccuracy regarding Javascript, what is so surprising about writing code "by hand"? Am I missing something?

<comment><USER18> A lot of the JavaScript at Google is written in Java and then compiled down to JS with GWT[1].

1\. <http://en.wikipedia.org/wiki/Google_Web_Toolkit>

<comment><USER19> @frog: They use it entirely for Wave. That's it though.

And I really don't think that they use JS on the backend for GMail. I figured it was Python or Java.

<comment><USER20> Perhaps they're using node?

</comment></comment></comment></comment><comment><USER21> Every time I read one these "Java, C++..." articles, I wonder, is the world getting dumber or the problems we need to solve simpler?

<comment><USER22> The world is building ever more complex things, and as such needs better abstractions provided by the programming language.

So new languages with different abstractions come along and things are simpler to do in it. That simplicity is then used to build even more complex things, which then expose how the abstractions doesn't work in the formerly new language.

Repeat ad nausum.

<comment><USER23> "So new languages with different abstractions come along and things are simpler to do in it. That simplicity is then used to build even more complex things, which then expose how the abstractions doesn't work in the formerly new language."

This is true for mathematics, but not in the same way for computer languages, because we haven't unlimited computing power and memory space.

Yes, with a more abstract language you can solve a problem easier on the implementation, source code side.

But with every abstraction you're loosing flexibility, because to get an abstraction you're putting the lower parts in a concrete combination. Thus every abstraction has it's costs.

Yes, you could use two computing languages, one for the performace/memory critical part, and one for the other parts of the programm. But in practise it's not that easy to combine the two.

There's a reason why people are still using C/C++.

<comment><USER24> > But with every abstraction you're loosing flexibility, because to get an > abstraction you're putting the lower parts in a concrete combination.

I don't think this is true. You might lose some, you might get some, in a different place, with greatly lowered brainload.

Or are you going to argue that lisps are less flexible than C?

<comment><USER23> C is more flexible on the performance and memory usage side.

That's my point. Abstractions are great, I love Lisp and Haskell. The problem of more complexity isn't completely solved by using better abstractions, because you still need to look at the performance and memory usage, as long we have a limit there.

<comment><USER22> Note that I didn't state that there would be MORE abstraction, only that it would be DIFFERENT abstractions.

You can have different abstractions compared to what C has and still retain the granularity of control you want.

<comment><USER23> "Note that I didn't state that there would be MORE abstraction, only that it would be DIFFERENT abstractions."

That doesn't makes sense. What should be a different abstraction of C? If you've an other syntax for the C pointer arithmetic it's still the same abstraction.

If you can do still the same things, then it's still the same abstraction. You can only combine multiple abstractions in one language, but I think that's not a good idea.

"You can have different abstractions compared to what C has and still retain the granularity of control you want."

I don't think so, because you would add the complexity of both, the higher abstraction parts and the C parts. You would generate a language which is harder to master than their component parts.

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> Just drumming up support for GO by dissing other languages.

<comment><USER26> To be fair, Rob's (like most of the Unix room) always disliked Java and C++. Bjarne was their colleague for a time.

In this discussion on Java in 2004 [http://groups.google.com/group/comp.os.plan9/browse_thread/t...](http://groups.google.com/group/comp.os.plan9/browse_thread/thread/5545339cd2b6b784/006fec195aeeff15?#006fec195aeeff15)

object-oriented design is the roman numerals of computing.

-rob

Or this one from the same year on manual pages !

[http://groups.google.com/group/comp.os.plan9/browse_thread/t...](http://groups.google.com/group/comp.os.plan9/browse_thread/thread/959ea44f025f7800/96c87cea811d4d08?q=group%3Acomp.os.plan9+stroustrup+stormed&lnk=ol&);

when ken and i described the new features we were proposing for plan 9 C, including inherited structure elements, to bjarne stroustrup, he said, "if you want C++ you know where to find it." and stormed from the room.

i don't think he understood exactly why we were proposing these features.

</comment></comment><comment><USER27> You know you're getting old when Java people complain about speed of scripting languages.

</comment><comment><USER28> I am expecting F# people in the next year to say that Go is a very complex language and that it doesn't address the problems we are facing in enterprises.

That is every big house has a horse in the language race.</comment>


Just launched: 24-day funding campaign for the TL;DR of terms & privacy policies - <AUTHOR> http://indiegogo.com/terms-of-service-didnt-read

<comment><USER2> Hey! We're hugoroy, michielbdejong and me. Please ask any questions you have.

And join our IRC channel #tosdr on freenode and our mailing list <https://groups.google.com/forum/?fromgroups#!forum/tosdr> if you want to participate.

</comment><comment><USER3> I had a look at the main website (<http://tos-dr.info>) and this thing is amazing. Really, really good stuff guys!

<comment><USER2> Thank you! I also put the existing website a bit more prominently in the description, to make sure people know we already have something. :)</comment></comment>


Top cities for startups - <AUTHOR> http://images.businessweek.com/ss/10/04/0422_top_ten_startup_cities/index.htm

<comment><USER2> Interesting to see Bend there. Perhaps it's the fact that it's only gotten larger very recently, or the fact that it doesn't have a university (the closest is the U of Oregon over the mountains in Eugene), but it just doesn't strike me as a good place for startups. Maybe I'm wrong though - anyone from HN in Bend?</comment>


IP2Location Programming Contest - <AUTHOR> http://contest.ip2location.com

<comment><AUTHOR> This is an online contest open to public to win US$500 and other prizes.</comment>


Justin.tv's Live Video Broadcasting Architecture (2010) - <AUTHOR> http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html <comment><USER2> I worked at Twitch from 2014 to 2018. I was never on the video team, but here are some details that have changed.

Video:

\- Everything is migrated from RTMP to HLS; RTMP couldn't scale across several consumer platforms

\- This added massive delay (~30+s) early on, the video team has been crushing it getting this back down to the now sub-2s

\- Flash is dead (now HTML5)

\- F5 storms ("flash crowds") are still a concern teams design around; e.g. 900k people hitting F5 after a stream blips offline due to the venue's connection

\- afaik Usher is still alive and well, in much better health today

\- Most teams are on AWS now; video was the holdout for a while because they needed specialized GPUs. EDIT: "This isn't quite right; it has more to do with the tight coupling of the video system with the network (eg, all the peering stuff described in the article)" -spenczar5

\- Realtime transcoding is a _really_ interesting architecture nowadays (I am not qualified to explain it)

Web:

\- No more Ruby on Rails because no good way was found to scale it organizationally; almost everything is now Go microservices back + React front

\- No more Twice

\- Data layer was split up to per-team; some use PostgreSQL, some DynamoDB, etc.

\- Of course many more than 2 software teams now :P

\- Chat went through a major scaling overhaul during/after Twitch Plays Pokemon. John Rizzo has a great talk about it here: [https://www.twitch.tv/videos/92636123?t=03h13m46s](https://www.twitch.tv/videos/92636123?t=03h13m46s)

Twitch was a great place to spend 5 years at. Would do again.

<comment><USER3> > \- No more Ruby on Rails because no good way was found to scale it > organizationally; almost everything is now Go microservices back + React > front

Ugh, I just... I keep trying to pretend I don't need to learn Go, but _every_ highly scalable system I read about that's recently been written about seems to be using it. Maybe I just need to stay away from systems that need to scale? Heh...

<comment><USER4> Before golang was a thing, there were highly scalable systems that handled way more traffic than anything written in golang today. Those systems were (and are) written in languages like C++ and Java and C#.

You're just seeing golang in articles because of hype.

<comment><USER5> Java and C# lag behind Golang on most performance metrics. Combine it with the awesome deployment story (single binary) and you'd be hard pressed to choose the former

<comment><USER6> The opposite is true. Golang is on average 2-3 times slower than Java. On the plus side, it uses less memory.

<comment><USER7> No of course. It may loses at some benchmarks made by Java or Python/Ruby coders.

Two areas where it is actually slower are

1) Memory allocation 2) Regular expression performance.

But you must understand your Java app won't have performance advantage because of faster alloc speed IRL: GC will take lots of CPU, because Go's one is much easier at memory release. You can only see allocation advantage in micro benchmarks where the app stops before the GC will start.

<comment><USER4> > You can only see allocation advantage in micro benchmarks where the app > stops before the GC will start.

The golang gc is tuned for latency at the expense of throughput, meaning if you look at the duration of time spent in GC over the course of the code execution, it would actually be longer compared to a GC tuned for throughput.

If you have a use case that requires high throughput, then you cannot change the GC behavior. Unlike on the JVM, where you have several GCs to choose from. The JVM is also getting two new low latency GCs for use cases that require low latency.

And it's not just microbenchmarks where Java does better than golang, it's especially longer running processes where the JVM's runtime optimizations really kick in. Not to mention that the JVM is getting value types as well to ease the load on the GC when required (it does an excellent job as it is even without value types).

I did a dummy port of the C# version of the Havlak code here[1] to Java, preserving the same behavior and not making any data structure changes. On the machine I tested on, the C# version took over 70 seconds to run, while the Java version took ~17 seconds. In comparison, the C++ version took ~24 seconds, and the golang version took ~30 seconds.

Yes, you could most likely spend much more time tuning the C++ version, avoiding allocations, and so on, but at the expense of readability. This is what the JVM gives you, you write straight-forward, readable code, and it does a lot of optimizations for you.

The brainfuck2 benchmark is especially interesting. Kotlin tops the list, but I was able to get Java to the same performance since Kotlin by writing it in a similar manner as the Kotlin code. Again, Java/Kotlin beat out even C++ when I tested them, and by quite a margin.

[1] [https://github.com/kostya/benchmarks](https://github.com/kostya/benchmarks)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I can barely follow along with this, it's very technical. I can't imagine how Kyle Vogt acquired the necessary knowledge to make this work. Example:

> The point of having multiple datacenters is not for redundancy, it's to be > as close as possible to all the major peering exchanges. They picked the > best locations in the country so they would have access to the largest > number of peers.

This is the kind of thing where I would have to hire some kind of network engineering expert, and he just _figured this stuff out_ and made it work? I can't fathom other people's intelligence sometime.

<comment><USER9> He leveraged the YCombinator network to absorb a lot of information quickly. For example, I taught him basic networking (routers, switches, multicast/anycast, AS numbers, etc). I shared my 10 years of knowledge with him in a single two hour session because he's a genius, and then he ran from there, vastly exceeding my knowledge. I was there because Emmet asked Steve and Steve asked me to go over, and I was happy to help. I'm sure I wasn't the only one.

<comment><USER10> That's pretty nice. Quick look at articles show Emmet was the CEO. Which Steve is this? Huffman at Reddit?

<comment><USER9> Yes Steve Huffman

</comment></comment></comment></comment><comment><USER11> Building this was really fun, and I'm very proud of what kd5bjo, Emmett, and many others did to help turn Justin.tv/Twitch into what it is today. We found a way to make what was fundamentally an unprofitable business (if you relied on CDNs) work by relentlessly focusing on reducing cost to the absolute bare minimum through good technology choices and innovating when necessary. Justin.tv would have died otherwise.

<comment><USER12> Thanks for sharing the information! Even if its 9 years old now, its very interesting for us dreamers.

</comment></comment><comment><USER13> Discussed at the time: [https://news.ycombinator.com/item?id=1196264](https://news.ycombinator.com/item?id=1196264)

</comment><comment><AUTHOR> I was the primary architect for Usher and the server-side of the video system described here. I'm happy to answer any questions, assuming I still remember the answers.

<comment><USER14> Why did you call it Usher and not T-pain

<comment><AUTHOR> I don't get your reference, but we chose the name Usher because it's the software equivalent of the person at the theater who looks at your ticket and shows you where your seat is— it doesn't actually handle any of the video data, it just knows where you should go to find it.

<comment><USER15> Surprised Microstrategy didn't sue you guys (or vice versa). They built some access / authorization tool named Usher which seemed to be a total flop (why a BI company was even toying with this perplexes me)

<comment><AUTHOR> It was/is an internal code name that never shows up except in URLs requested by the player and highly technical articles like this one; I'm not a lawyer, but I expect they might have a hard time showing consumer confusion.

</comment></comment></comment></comment></comment><comment><USER16> Slightly off topic but this is my favorite justin.tv video, and also shows something of the website and how early in the days of live streaming we were back then: [https://www.youtube.com/watch?v=BqgEm8XWXu8](https://www.youtube.com/watch?v=BqgEm8XWXu8)

<comment><USER17> Thanks for that! I hadn't seen it before, that's pretty funny.

</comment></comment><comment><USER18> "Live video can't be made by pushing video faster, it takes a completely differently architecture."

Funnily enough, that's pretty much how HLS, the modern live video standard, works - it's essentially a series of tiny video clips loaded & played one right after the other, distributed through the same CDN as normal video files.

Thanks to HLS, live video is actually much worse than it was 10 years ago with RTMP in terms of latency. There's been some recent efforts in getting it down, although they're generally not standardised, hard to scale (e.g. WebRTC) and or a bit awkward.

<comment><USER19> They're starting to become standardized. Apple announced LHLS, a "low latency extension" to the HLS standard, [https://developer.apple.com/documentation/http_live_streamin...](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low- latency_hls_preliminary_specification).

I don't think anyone really follows Apple's spec for various technical reasons, though. Most do some sort of chunked-transfer encoding, along with pre-signaling segments in playlists, as outlined by the Periscope folks here: [https://medium.com/@periscopecode/introducing-lhls-media- str...](https://medium.com/@periscopecode/introducing-lhls-media-streaming- eb6212948bef)

<comment><USER20> > _I don 't think anyone really follows Apple's spec for various technical > reasons, though._

I would have assumed it's because Apple only announced this 4 weeks ago, and the only clients that support it are beta software.

</comment></comment></comment><comment><USER21> > They also don't have chats with the 100,000 people watching a channel. What > they do is assign people into rooms of 200 people each so you can have a > meaningful interaction in a smaller group. This also helps with scaling. I > thought this was a pretty clever strategy.

Just curious if this is still a thing. I've watched an unhealthy amount of Twitch (not all with chat open) and never noticed this.

<comment><USER22> I'm sure it's not. Often, the streamer is reading the chat onscreen while streaming, and it's always identical to the one I'm seeing, except perhaps delayed by some seconds.

<comment><USER23> Maybe twitch creates an illusion by showing the streamer only a subset of people that is shared among all other groups. This allows everyone to see what the streamer sees and to communicate within their group.

</comment></comment></comment><comment><USER24> Really cool reading this when I just started 2 weeks ago and I was perusing the Video Architecture docs. It's cool to see how far Twitch has come :) thanks for sharing

</comment><comment><USER25> If I started a Twitch (or Discord) competitor today, I would use Janus as a base for web-rtc to share the load [https://janus.conf.meetecho.com/](https://janus.conf.meetecho.com/)

In fact, Evasyst is a blend of Twitch and Discord and uses Janus for this reason. [https://evasyst.com/](https://evasyst.com/)

<comment><USER26> You would look at how much that costs and make a different decision. It can't scale economically to Twitch size without massive amounts of investment into POPs (source: I built the HLS transcoding stack/infrastructure and HTML5 player at Twitch). A voice only service, sure because it's 100 times less bandwidth.

<comment><AUTHOR> Granted, we made the same evaluation about Wowza a decade ago, but it turned out to be useful as a small piece of a large system. Given how much Twitch has grown since then, no off-the-shelf system would be able to handle the scale.

A brand-new competitor, though, won't have to deal with those scaling problems for a while. They have to figure out product-market fit first, which probably can be done off-the-shelf these days. And then they'll need to figure out how to keep the lights on, which will take a similar amount of engineering work as it did for Justin/Twitch.

</comment></comment></comment><comment><USER27> Wowza is a great product. If you want to build a huge custom VOD + live boradcasting product, it is a great way to do it.

</comment><comment><USER28> How would an IC SWE find a rocket ship startup like this in 2019?

<comment><USER29> Check out [https://breakoutlist.com/](https://breakoutlist.com/), it's designed for answering just that question - with a bias towards Silicon Valley hype.

If you're interested in Atrium, reach out to me (see profile). We're hiring!

<comment><USER28> Awesome resource. Time to send some resumes over the weekend.

Who's with me?

</comment></comment></comment><comment><USER30> I miss the Justin.Tv days. Made a lot of friends there.

<comment><USER31> Some parts of Twitch are still kind of like that. The Classic WoW community especially has been amazing. Met a lot of people there that I play games & just hang out in Discord with pretty much every day.

<comment><USER30> Twitch spun out of Justin.tv and then they killed Justin.tv :(

</comment></comment></comment><comment><USER32> Can anyone recommend some stacks for hosting video streaming?

For 10k concurrent stream receivers in the US and Europe, what would you be looking at to get the stream under 30 seconds lag time?

I realize this is a hard problem but would like to explore it.

</comment><comment><USER33> I used to think high scalability was something to aspire to. Now I think it's all bullshit.

The web is a terrible architecture for videos. Torrents solved this problem. If you trying to make a camel walk with two legs, you don't deserve praise but a tomato.</comment>


How to debug Node.js in a Docker container - <AUTHOR> https://dev.to/alex_barashkov/how-to-debug-nodejs-in-a-docker-container-bhi <comment><USER2> What is the specific use for this?

If you are in development mode, you can just debug the application outside Docker. If you are in production mode, this could cause security issues.

<comment><AUTHOR> I guess it's good to know that it's possible for some scenario you might be in need of it</comment></comment>


Goodbye Digg Power Users - <AUTHOR> http://nextparadigms.com/2010/08/26/goodbye-digg-power-users/ With the new Digg, the power users are becoming irrelevant, and the new "power users" will be the news sites that ask their readers to follow them on Digg. <comment><USER2> So basically Digg is dropping the Reddit model for the Tumblr model. Let's see how that works out for them, there is a lot of competition in that space already.</comment>


Inc. Magazine: Is it crap? - <AUTHOR>

Inc. Magazine brands itself "The Handbook of the American Entrepreneur." I'm curious to know what the Hacker News collective intelligence thinks of it.
I recently picked up a cheap subscription to see if there was anything to learn. Topics vary month-to-month, but there are usually case studies on successful entrepreneurs, tactical articles on subjects like marketing or management, and general interest essays.
I wonder, though, whether I ought to ignore everything inside and spend that monthly hour elsewhere. There are ads for shady companies. They have annoying 'special advertising features' that pose as articles. The back pages swell with MLM-type scams. It seems like the sort of advertising that would target dreamers and fools instead of busy entrepreneurs looking for tips during downtime. This leads me to question the reputability of the editors and thus any advice inside. Hence this post.
What do you think?
And if not Inc. etc., where's the high signal-to-noise entrepreneurial reading? <comment><USER2> I've had a subscription to Inc. for 10-12 years. I can attribute a great deal of time/money savings to things I've learned or found out about in Inc., especially regarding general management and HR issues. I consider it a solid investment. Granted, quite a bit of what they publish is common-sense type stuff, and their slant is definitely NOT towards the small tech startup...although I've bought a few companies I've read about in Inc. and I've discovered new business trends by reading it over the years. It's a great way to get a feel for the small business market, which is my primary customer base in many ways...it also helps me figure out when niche products/services I'm already following are likely to break out into more mainstream popularity. Many internet startup guys tend to have 'Silicon Valley goggles' on and they would laugh at the technical expertise of the average Inc. reader, yet the Inc. readers are often slightly ahead of the tech curve when compared to the broader small business market. Anything that helps you to get into the shoes/mindset of your potential small business customers is worth the time. Even if you don't market DIRECTLY to small businesses, you would be a moron not to be aware of their purchasing power.

You can also learn a great deal from the less 'glamorous' industries featured in Inc. - lessons that you can transfer to software startups in sometimes surprising ways.

Regarding the ads/advertorials: that is their business. The advertorials are marked as such. They are not going to turn away ad dollars unless the ad is clearly illegal. I wouldn't either if I were in such a competitive industry. I wouldn't judge, say, 37Signals based on the customers they accept money from...so I feel it would be unfair to do so to a magazine. You just have to think for yourself and view everything with a critical eye. Just like anything else. I don't think their ads unduly influence their actual editorial content.

I also read Entrepreneur magazine, which is even sleazier ad-wise (and I must say I lost respect for them when they started publishing the lies/idiocy of Robert Kiyosaki in an actual monthly column) but the occasional gems I learn more than make up for the time spent reading magazines like that and the sleaziness/crap factor.

I read almost every business magazine I can get my hands on (Fast Company, Fortune, Forbes, Business 2.0 before it was killed, FSB, etc. - as well as about 30 industry-specific business magazines.) I think the more you read, the more likely you are to understand business and to see new opportunities before others do.

I almost bid on Inc/Fast Company when they sold to Mansueto, but I knew I didn't have the time to follow-through on it. I now regret the decision not to at least bid.

</comment><comment><USER3> Curiously enough, they were the first print publication ever to write about YC, the very first summer. But the editors killed the story, presumably because at the time we were so obscure. They could have scooped the NYT.

</comment><comment><USER4> Coffee at barnes and noble while reading through their magazines for free. Can get everything in worthwhile during a single cup.

</comment><comment><USER5> Inc. is the only magazine I regularly read. If I don't have time to skim through the entire thing, I always read the section that documents an entrepreneur's story. Many of those stories are informative and inspirational. One of them a few years ago about the Xerox CEO's humble beginnings kick- started my entrepreneurial spirit, I guess you could say.

In my opinion: definitely worth subscribing, if only for that section.

</comment><comment><USER6> What do you think? It's your hour afterall.</comment>


PHP 7 is coming soon - github-cat http://www.pixelstech.us/article/1446993883-PHP-7-is-coming-soon <comment><AUTHOR> I'm really excited to see this shiny new PHP version running on our servers. There are a lot of new features: [http://php.net/manual/en/migration70.new- features.php](http://php.net/manual/en/migration70.new-features.php) and especially huge performance advantages according php.net ("Improved performance: PHP 7 is up to twice as fast as PHP 5.6")

Frameworks like Laravel already support PHP7 :)

<comment> github-cat Ya, I am expected to see the huge performance improvement. But not sure whether it's OK to deploy it on production environment at the moment.</comment></comment>


Chrome Dev build comes with Flash 10.1 beta "integrated" - <AUTHOR> http://blog.chromium.org/2010/03/bringing-improved-support-for-adobe.html

<comment><USER2> Unfortunately most of the real discussion will be lost in a flood of worthless HTML5 x Flash war discussions by overexcited zealots, but this is great news both for developers and users alike: not because of Flash integration itself (although it's good to have a plugin always updated), but because of the new browser plugin api being proposed. This is something that has been long overdue, and something that will benefit users as a whole in allowing a more tight control of what a plugin does, and how. Think of all the interface integration problems we currently have with plugins (any plugin), from performance problems (when a plugin can't have control over what kind of resources it actually has allocated), to input problems (should/can the plugin trap shortcuts and special keys, or the scroll bar?), to device control (who controls the volume of the sound used by the plugin?). Hopefully, these will all soon be a problem of the past, as Chrome (and others) adopt the new plugin API, and we can all move on to a more well-integrated web experience.

</comment><comment><USER3> Again and again, we're seeing moves from Google that are far more pragmatic than those from other companies they're competing with (Apple and Mozilla most notably). By supporting h264 (the dominant video format) and Flash (by far the dominant general multimedia format on the web), they're positioning themselves to be the one-stop shop for everything web software wise. This can only end well for them.

<comment><USER4> _This can only end well for them_

It's hard for me to ever read a phrase like this in a sincere way.

<comment><USER5> "This can only end well for them" sound far more plausible to me than "This can only end well for us" does...

<comment><USER6> That is such a true statement.

</comment></comment></comment></comment><comment><USER7> Just so you know you can still remove flash from chrome if you want to, even though its "integrated". Just go to about:plugins and disable flash or any other plugins.

</comment><comment><USER8> Here's hoping the new API allows muting audio in background tabs/windows.

Edit: It does! <https://wiki.mozilla.org/Plugins:PepperAudioAPI>

<comment><USER2> That's indeed cool. Also device change events -- that's something we've had problems for a long time... USB headphones have their own devices, so removing one in the middle of a Flash experience would kill sound (and sometimes the whole application) until it was restarted. Same with any other plugin, I'm assuming, although I haven't tested Unity/Silverlight/etc to see if they're constantly pooling the list of devices or what.

So awesome to see Adobe/Google tackling on this.

<comment><USER8> AFAIK sound wasn't part of NPAPI before and plugins had to use platform APIs, so any sound problems were Flash's fault alone. Even so, Flash is hardly the only program that behaves badly when hotplugging sound devices so you can't really fault them too much.

Speaking of Flash problems, another one I want fixed is keyboard focus handling; specifically how keyboard navigation between HTML and Flash is impossible and browser keyboard shortcuts won't work when Flash has focus. Also, finally killing the windowed/windowless mode distinction will also be great.

</comment></comment></comment><comment><USER9> Hopefully they do something about the performance next. Flash performs much worse in Chrome than Safari (OS X 10.6).

<comment><USER10> I haven't noticed, but I usually stick Firefox (for firebug). Using the Flash version of the animation test posted a few days ago: <http://themaninblue.com/experiment/AnimationBenchmark/flash/> I get 27-29fps in Safari 4.04 and 48-50fps in Chrome 5.0 beta (maybe because it's the beta?). Firefox gets around 44fps. [older mac pro - dual dualcore 3GHz, 6GB, 10.6.2]

<comment><USER11> Nice test.

It does seem that chrome's flash support is quite fast. I pull 75 fps in chrome and 65 fps on IE8 (windows 7 - Core2 Duo P9400); on my linux box, chrome's flash support definitely feels faster than in firefox.

<comment><USER11> I take that back; firefox's default plugin is significantly faster (on linux). At a much higher resolution (this test is very resolution dependent) on my Core 2 Duo 6600 running ubuntu 9.10, I get 25 fps in chrome and 30 in firefox.

</comment></comment></comment></comment><comment><USER12> This will be a great step toward fixing a bunch of the big problems with Flash (for instance, how flaky the mouse wheel is in Flex applications). We're building our product in Flex and this will hopefully help us a great deal.

</comment><comment><USER13> kudos to google for being realistic and pragmatic instead of shouting with the masses.

<comment><USER14> Not having Flash on iPhone and iPad is just as pragmatic.

<comment><USER15> How is it pragmatic?

<comment><USER16> It is pragmatic from Apple's perspective. They don't need it to support the most popular video content. They don't need it to sell their product. They don't want to depend on third-parties for anything they don't have to. So they omit it.

Google can't do the same with Chrome and Chrome OS, because their product _is_ the browser. They need to support the web as-is or they stand to lose many more potential customers than Apple has over the iPhone's lack of Flash. They have no particular need or desire to omit it entirely, but it does have problems, so improving support for it is a wise choice.

Both companies have chosen the pragmatic solution for them.

<comment><USER17> You hit it. Best comment I've read in a while.

</comment></comment></comment></comment></comment><comment><USER18> Sounds potentially pretty cool.

From a developer's standpoint, though, I'm hoping there's a way to swap in the appropriate debug player. What would be even cooler would be if the new plugin API makes it easy to write an extension to allow swapping of plugin versions (a la Flash Switcher for FireFox).

If nothing else, it looks like they're making it easy to disable, so one could install the debug player manually, and switch between them by toggling the inbuilt-plugin enable in Chrome.

</comment><comment><USER19> This makes a lot of sense. Since Chrome OS plans to have a readonly root partition, signed by them, they needed to tweek the plugin API a little bit to conform to their standards.

</comment><comment><USER20> I hope the ClickToFlash chrome plugin still works. My mac runs a lot better since I have installed it: lower processor usage thus way more battery time.

</comment><comment><USER21> This seems like it might work to set back the anti-flash pro-html5 movement.

<comment><USER3> If it does, it's because developers let it. If HTML5 is superior to Flash from a development standpoint, developers will still have the option of going that route with this. I believe that Google's announcement on this really only benefits end users: either way a developer goes, they're going to get a better result.

<comment><USER22> HTML5 is not superior to Flash from a development standpoint. Flash comes with a nice, integrated IDE that allows quick production of visuals and scripting. I think it'd be hard to make an argument that HTML5 development is equally assisted for most use cases.

The real question is whether developers hate Adobe/Flash/proprietary standards enough to keep promoting HTML5. I think they do for now, but unless someone comes out with a Flash-esque development environment soon, the fervor will eventually die out and people will settle for the path of least resistance, which is Flash.

<comment><USER14>
      Flash comes with a nice, integrated IDE that allows
      quick production of visuals and scripting. I think
      it'd be hard to make an argument that HTML5 development
      is equally assisted for most use cases.

It's not hard at all. I can write my HTML with any editor I like. I can see the source of any page I like. No need to buy Adobe tools or hunt for .fla.

<comment><USER23> Ugh. I hate this fallacy of composition. I think you know what he means, but it is easy to be the teacher's pet with a shiny apple of misinformation.

Making complex animations (not a sliding nav, for example) is not easy in HTML5+JS. Sorry, it isn't. We can have this argument forever, have yet to see someone produce the evidence of their accusations.

Flash IDE, with all of it's flaws, trumps any "HTML editor" for animation or UX complexity. Sorry, that's just the way it is. No "Visual jQuery" exists.

<comment><USER14> Making complex animations are not easy in Flash either. Unless Flash can draw thing for you, can it? As for basic tweening, you do not need HTML and JS for that. Now you can have CSS transforms, transitions and animation. Those are extremely easy to use and while they are not enough for really complex stuff they can and will replace most of the basic effect flash has been overused for.

<comment><USER23> It's extremely clear that you have not developed in Flash. Flash isn't an extension of the CSI interface, so no, it doesn't do anything "for you". Please, don't wax your "knowledge" as fact. You know exactly what I mean.

I do agree that Flash is used when it is not necessary.

However, on the flip of the same token there are those who would have you believe that you should use JS when Flash is a clearly better choice.

<comment><USER24> "teacher's pet with shiny apple of misinformation", "wax your knowledge", "flip side of the same token"... I think you have exceeded your daily quota of metaphormixing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> Hope it's still in a sandbox.

<comment><USER4> The OA makes it sound like it is.

<comment><USER26> _With Adobe's help, we plan to further protect users by extending Chrome's "sandbox" to web pages with Flash content._

Sounds like the initial release wont be sandboxed, but later versions will...

<comment><USER25> Thanks for reading between the lines. That was my poi t too.

</comment></comment></comment></comment><comment><USER27> Ugh; I'm going to be in for a nasty shock when I upgrade. At least they make it easy to remove.</comment>


It's Not Just Microsoft Against Google  - <AUTHOR> http://www.nytimes.com/2010/03/01/technology/01cache.html

<comment><USER2> _[Google] has said that it penalizes some, but not all, vertical search engines because they are essentially spam, gathering content and links from other sites to generate traffic and ad revenue._

I thought this line was funny. Thinking about pots and kettles and the color black, etc.

</comment><comment><USER3> If your site requires Google search hits in order to be profitable, then you're hosed anyhow. Why can't these folks rely on word-of-mouth like the rest of us do?</comment>


Internet Problem Solving Contest - <AUTHOR> http://ipsc.ksp.sk/

<comment><USER2> is anybody planning on doing this? I'd sure like to.

</comment><comment><USER3> wish it was in the evening for california :P</comment>


Eric Schmidt struggled to answer a Google interview question - <AUTHOR> http://qz.com/846339/alphabet-chairman-eric-schmidt-struggled-to-answer-a-google-interview-question/ <comment><USER2> What's really funny here is not only did Eric know the answer he managed to turn it into a joke.

Not everybody knows that Eric rewrite lex as an intern at Bell Labs, or that he set up Berkeley's first network; he's actually a brilliant computer scientist who also happened to be CEO of Novell and Google. He also understands the world economy better than almost anybody I've met.

Also nobody at Google asks this question.

<comment><USER3> He didn't set up Berkeley's first network. Berkeley was an ARPANET original.

[http://bnrg.cs.berkeley.edu/~randy/Courses/CS39C.S97/Interne...](http://bnrg.cs.berkeley.edu/~randy/Courses/CS39C.S97/Internet/Internet.html)

Schmidt wrote something called BerkNet which was buggy as hell.

<comment><USER2> you're confusing a LAN with WAN. I'm talking about a LAN. Also, I believe he did hardware as well as software, and frankly, anybody building LAN hardware and software was buggy as hell. Do you have some primary citations? I'm always trying to increase my knowledge of the specific details of Berkeley's physical infrastructure from mid 70's to late 80's.

</comment></comment></comment><comment><USER4> From the question itself: _" Your crew gets to vote on how the gold is divided up."_

If you're a pirate captain and you've allowed this to happen on a ship you supposedly command, you deserve your fate.

</comment><comment><USER5> Its actually quite a good question I think, because it makes you think about the maths of the situation.

<comment><USER6> It's a simplification of a traditional math puzzle question, so it's likely that some of your interviewees have seen it before. If you actually want to ask that specific version of the problem, those that remember at least parts of the solution have quite an advantage, if not it "only" gives them a good starting point on what to ask next to get clear details on the scenario.

Or you don't actually want to extend the scenario and a math answer (because which pirate ship is going to have a crew that thinks perfectly logical?) and confuse this subset terribly ;) Which might be the point of the exercise, but I'm not a good way of going about it.</comment></comment>


The paradoxes that sit at the very core of physics - <AUTHOR> https://aeon.co/essays/the-paradoxes-that-sit-at-the-very-core-of-physics <comment><USER2> While the author postures as an advocate of science she is in fact aiding and abetting the rejection of the Western (scientific) World View and ironically using modern science to do so. You cannot just dispense with the (Aristotelian) principle of non-contradiction and then continue to pretend to do science and learn to live with contradictions.

This has been the state of modern physics since the development of quantum mechanics. During the Copenhagen debates about the "meaning" of QM, Bohr said that all the different interpretations of QM are just various choices on where to hide the contradictions. At the time ignoring these contradictions and telling physicists and students to "shut up and calculate" was not an unreasonable thing to do. There was a lot of work to do with respect to understanding and applying the new theory and the hope was it would lead to clues to resolve the questions. Fast forward a few decades and it became clear that whatever the source of the contradictions in QM, identifying it would not be simple and would probably require a new genius on par with Einstein.

So this approach has run its course and now a new approach is needed but her thesis is to reject science and just accept contradiction and paradox, i.e. the current state of modern physics. She claims that modern science is "neurotic" because of its commitment to non-contradiction and that non- scientific "narratives" and world views that accept (or even wallow in) contradiction and paradox are the answer to the conundrums in modern physics. This would the end of science.

In any case, the article does indicate the contradictions arise not from the metaphysical but from the epistemology of modern science. What she calls systems, language, categories, etc. are euphemisms for reason and, more specifically, our concepts (i.e. classes based on abstraction). Instead of discarding the principle of non-contradiction we need to apply it to our own method of reason, to our perception and conceptual methods and bring a non- contradictory and clearly defined observer into the realm of physics. This is an issue for philosophy and more specifically, epistemology.</comment>


Ask HN: Why wouldn't Uber release the settlement amount? - <AUTHOR> <comment><USER2> There's no advantage for Uber to do so - they'd be criticized no matter the amount, so why make the information public?

</comment><comment><USER3> It might encourage people to walk out in front of their cars.</comment>


Ask HN: Is Your Income above Your Country's Median Income? - <AUTHOR> I've seen a lot of submissions and comments to Hacker News recently about income inequality, which is perhaps not a core topic here but a topic a lot of people care about. It occurred to me that I might better understand where other participants are coming from on the income inequality issue if I can get a reality check on whether you are above or below your country's median level of income. My wild guess is that most Hacker News participants have incomes above the median levels in their countries, but please let me know so I understand this issue better. <comment><USER2> Its an interesting question but the sample set (people who read HN) will skew hugely toward technologists. The starting income for engineers[1] is higher than the median income. I would expect a significant fraction of the readers here to be engineers and thus have higher than median incomes.

For me though the 'income inequality' question adds little insight into meaningful problems. Consider what it would be like if you wrote equally valid copy about 'house price inequality.' You might right, "Why is it that a four bedroom 2000 square foot ranch style house is worth $170,000 in Minnesota but worth $1,500,000 in California?" You could write about how badly the $170,000 house felt about themselves that for providing the same number of bedrooms, the same quality of shelter, and the all the same appliances as the house in California but for some clearly bogus reasons people "judged" that house to be worth less. Alas the unfairness of it all.

Fortunately we're not trying to sway the vote of that $170,000 house or its shopping habits, or you would get that sort of writing.

When you look at it in that context when there isn't a person whose "value" is being equated to their "salary" (which is the central issue in this narrative in my opinion) you can see there are so many different things going on that it makes no sense to think that houses in different places would, by virtue of their similar feature, somehow demand the same sales price.

[1] [http://www.mtu.edu/engineering/outreach/welcome/salary/](http://www.mtu.edu/engineering/outreach/welcome/salary/) not a wonderful reference but the census.gov site was letting me down.

</comment><comment><USER3> According to [1] in the UK the median pretax income for an individual in 2012–13 is £21,300; the 75th percentile £33,300; the 90th percentile £50,500; the 95th percentile £68,500; and the 99th percentile £156,000.

My income is closer to the 90th percentile than the 75th or 95th.

According to [2] compared to international income distributions (rather than just my country) my income places me in the richest 0.5% of the world's population.

Needless to say, I try to stay appreciative; my position is heavily dependent on luck. I also donate around £10,000 a year to charity; seems like the least I can do really.

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

[2] [http://www.givingwhatwecan.org/get-involved/how-rich- am-i](http://www.givingwhatwecan.org/get-involved/how-rich-am-i)

</comment><comment><USER4> Yes, by a fair bit. Unwilling to quantify exactly how much without anonymization.

Have to echo zafka's sentiment: I'm incredibly lucky to be in my position, and try to remind myself often that it can vanish just as quickly as it came. I'm fortunate because of luck and preparation (more former than latter), and it ruffles my feathers when people on HN try to toss around the "self made man" thing.

</comment><comment><USER5> UK based. Yes. I believe I am significantly. I am the co-owner of a small company that writes specialist pharmaceutical related software. For the last 3 years my partners and I have pulled down around £110k per year (pre tax). In the last year work hours have gone down for us, but profit has gone up. We are just building "cash at bank" now, while maintaining the same income. We don't really have exit. Just enjoying the "good times" while they last.

The key thing is I am only as happy, if not less so than I was when we started up. There's no excitement now, an important factor for me day to day. Also, it sounds played out, but I have more financial stress now. I have a big mortgage on a big house and employees to worry about. It really can be more money more problems.

<comment><USER6> "a big mortgage on a big house" Why?

<comment><USER7> Because he didn't have enough cash for a small mortgage?

<comment><USER5> Basically yes. I was buying a house in a small (but expensive) village that I had lived in for my whole life. I was getting married. We needed a house. All my friends and family live there. Its my home. Its easy commuting distance to my office, central London, Heathrow airport and has clean air, good schools, good amenities, good community and a canal to walk and cycle down every day I want to. I wasn't buying a house as an investment. I was buying a house as somewhere to live until I possibly die.

By the time you take solicitors fees, stamp duty, etc in to account I may as well buy it for the long term. My house is already estimated to be worth 50k more than I paid for it less than 9 months ago. Why? I've fixed lots of easy problems with it, slightly modernised and I got a good deal as they were desperate for a sale, I had no chain and they needed the money (previous deal collapsed and they were on a bridging loan). I don't view it as an investment. I simply bought the house I wanted to live in, in the area I wanted to live in at a very competitive price.

</comment></comment></comment></comment><comment> chestnut-tree This interactive infographic from the BBC gives you a global overview of average wages in different countries. You can type in your monthly salary to see how near or far you are to the average wage in your country.

It obviously comes with lots of caveats and tells you nothing about the quality of life in a particular country. It's still quite eye-opening though.

Where are you on the global pay scale? (March 2012) [http://www.bbc.co.uk/news/magazine-17543356](http://www.bbc.co.uk/news/magazine-17543356)

<comment><USER8> This is bruto pay. It is massively wrong, almost deceitful.

I think they're presenting average pre-tax income. Singapore tax is between 0% and 20%, and there's 7% VAT. In Germany you're going to be paying between 42 and 45% income tax, and 19% VAT. That means in Singapore you can spend 74.4% of your income on what you want, in Germany 39%. And singapore is much less regulated than Germany, and much better connected trade-wise, which means goods are a lot cheaper there to begin with (not real estate though).

So, for the same bruto pay you'd have double the money in Singapore compared to Germany, meaning those Singaporeans can easily buy 4 or 5 ipads for that average wage, whereas an average Earning german would be doing very well to get 2.5 for their "higher" pay. Hell, the average Singaporean is probably better off than the average Luxembourgian.

Keep in mind that the "average" wage in singapore might be high, but the mean wage is a LOT lower. Same, of course, is true in Luxembourg, but I don't think it's that skewed in Germany.

</comment></comment><comment><USER9> London based. I started off below median London income and I must say it was not pleasant. Now three years later after changing my life around I earn well above median and together with my partner our combined household income is in the top 20% of London. Having been on the other side of the spectrum I feel these inequality discussion strongly. I worked just as hard and had barely enough to get through. We need to tax wealth and not labour. Even the OECD has recommended that in it's recent reports.

<comment><USER10> Taxing wealth is simply a deferred tax on labor.

<comment><USER11> That's not true. First, there are ways of accumulating wealth that do not involve labor. Second, wealth taxes would apply to the same resources over multiple periods, which is a significantly different dynamic.

</comment></comment></comment><comment><AUTHOR> Thanks to all of you for your thoughtful comments. Several of you drew the important distinction between individual income and household income, which often pools the incomes of more than one income-earner. As is surely apparent from my submission and comment history on HN, I am not a person with a technical education or technical occupation. My person income since I had children (when I reduced labor force participation in the interest of homeschooling the kids) has been below the United States median personal income. My wife likes her work and does it well, and much of the time we have had children we have been near the United States median household income, and recently above it, in nontechnical occupations. I like HN because it includes a lot of discussion about lifestyle and education tradeoffs that I wish I would have engaged in when I was the age of most participants here. I'm happy with my life, and think I am staggeringly wealthy--not least because I have this Internet technology that lets us communicate with one another all over the world. My oldest son is launched into adulthood as a hacker and has an income sufficiently high to save money in his high-expense city, and my other children look set also to have more expedient career choices than I made.

</comment><comment><USER12> I've been freelancing for a while and I've taken offers ranging from 10 USD/hour to 45 USD/hour. Minus insurance, minus VAT and other taxes, minus expenses such as electricity/heating, Internet, ~20USD/month on AWS bills, and gear (which right now is just my laptop, tablet and extra monitor).

I make between minimum wage and the average programmer's salary on my home country (which is a little above the average for senior developers but almost nothing for junior ones), without using my native language at all, and my average week is usually more than 40 hours.

I have to be available on sundays and pretty much every holiday, but at least I don't have any reason to hate mondays and I don't have to commute either :-)

Also, I get to travel a lot because I can work from almost anywhere in the world (I've lived in 2 different countries last year and visited many others), although it brings me down a little having most of my human interaction reduced to emails and online posts (Plus, when my girlfriend is not around, I have to talk to my cat to keep my vocal cords in shape. Seriously, it's quite difficult to just start talking when you remain silent for most of the day :-))

</comment><comment><USER13> Whichever responses you get, they are unlikely to be terribly informative due to heavy response bias.

Besides, even if you arrived at some reasonable aggregate, you would then have to surmount the pitfalls of ecological inference to be able to draw any meaningful conclusions: it could very well be that users whose preferences influence the most the content of top-voted submissions are far from representative.

That is not to say though your guess is _ex ante_ incorrect: programmers almost invariably earn above the median income in every country, especially in the US (and especially in the startup scene); and this is an English-based US site that distinctly up-votes programming and startup content --"niche" topics of very narrow interest to all but a particular sliver of population, and so highly informative in the "Bayesian surprise" sense.

</comment><comment><USER14> I am right at the median household income for the U.S. Consider though that I'm measuring my individual income against the median household income, which puts me at above average for individual income. I'm also young (26), and finishing up grad school, so I expect my individual income to rise significantly over the next 5-10 years.

There are lots to consider when trying to gauge your income to the median. Median for your city or state could be very different than your country's median income. You also have to take individual, family, and household income into consideration. There are many other factors, too. Age, occupation/industry, and educational background are all heavily correlated to income.

</comment><comment><USER15> Thank you for suggesting I look at this. I had a vague idea, but I didn't have a good solid number until I looked it up.

It makes me incredibly thankful for the sacrifices my parents made in hardship and poverty in order to provide me and my sister with an education.

My current income is well over 14 times what the median income for my age- group was 4 years go. No, I'm not filthy rich, I just live in a country whose population is largely on the poor side. If you're curious, it's South Africa:

[https://www.statssa.gov.za/Publications/P02112/P021122010.pd...](https://www.statssa.gov.za/Publications/P02112/P021122010.pdf)

</comment><comment><USER16> Yes, by a very large margin. I also try to maintain an attitude of gratitude at all times. I realize that my position in life is largely a matter of luck. I was born in the right place with the right genes.

</comment><comment><USER17> Switzerland, and no, I've read that a supermarket cashier or a secretary makes about the same as I do, without the long hours, but I am very frugal so I most likely save a lot more than they would (one month of salary buys me several months of runway for when I'll get serious and drop everything else) and I like what I do of course.

EDIT: I just typed 'median income switzerland' in google and damn, I am even worse off than I thought...

</comment><comment><USER18> I'm around 1.5 times my countries average wage.

For reference here are some info sources.

Countries by average wage: [http://en.wikipedia.org/wiki/List_of_countries_by_average_wa...](http://en.wikipedia.org/wiki/List_of_countries_by_average_wage)

Median household income: [http://en.wikipedia.org/wiki/Median_household_income](http://en.wikipedia.org/wiki/Median_household_income)

</comment><comment><USER19> I suggest creating a survey that would allow you to collect this information without binding it to specific identities.

As it is, yes, I am above my country's mean and median (Canada), but I'm not sure I want to tell you what the scaling factor is in a public forum. (FWIW, I'm above the median and mean for the number one countries in each respective list posted by jamilv - but again, I ain't sayin' by how much.)

</comment><comment><USER20> No; I'm probably about 15k below the national median and 25k below the state median. This is entirely my own fault. Life is OK, though.

</comment><comment><USER21> I am a grad student and my wife is a PostDoc, this puts us right at the median income in the US. I think we live well, but we also don't spend much: my wife hates stores.

On this income we are able to afford to live in a nice suburb outside Boston. I am really worried about having a kid towards the end of the year though. Daycare in this area costs about $20k per year.

</comment><comment><USER22> According to [http://en.wikipedia.org/wiki/Income_in_the_United_Kingdom](http://en.wikipedia.org/wiki/Income_in_the_United_Kingdom), with the 22% inflation, for my age range, yes, I earn more.

</comment><comment><USER23> In the UK, we're actually below the median since my wife isn't working at the moment.

OTOH, we own our house outright and don't have any crazy expensive habits or any debts, so I still currently save over 50% of my net income.

<comment><USER24> How, who, what?! You earn under 21K and own your own house and still save 10k pa?

I find myself guilty at my profligate unbudgeted ways but even so, I can't see how that's doable!

Tell me more

<comment><USER23> Hi, sorry I didn't notice your reply before.

It's not as tough as it sounds once there's no rent or mortgage. You can count your mortgage as savings for budgeting purposes though.

I work from home, so no travel expenses. My bills and council tax come to about 300 a month. About 300 a month for food. 300 a month spending money. That's 900 total and save the rest.

Note that I'm below the median for _two_ people, which is a little higher than the median for one, but it's still in the same ballpark.

</comment></comment></comment><comment><USER25> Yes, I'm pretty sure I was at 3x median income when I worked at what became a larger startup. Now I'm back to making barely enough to cover my ridiculous rent while getting a new company off the ground.

<comment><USER26> This sounds like a very San Francisco story to me!

</comment></comment><comment><USER27> Yes, more than double. I am very fortunate, which I have to remind myself on a daily basis due to my consumption of mass-media and its incessant message of consumer culture.

</comment><comment><USER28> Here in India, I started out with programming at an age of 12, today 2 years after graduation, I am 11 times higher than the national median income.

</comment><comment><USER29> Yes (in the UK), we're just slightly above it as a household, but I'm more ahead of it as an individual.

</comment><comment><USER30> Wow, I'm actually below the median...and I thought that I lived well.

<comment><USER31> > thought

Then you probably do, no?

</comment></comment><comment><USER32> 6 to 8 times. Up to 10 if I work hard. I'm working as a contractor.

</comment><comment><USER33> Yes, about 2.4x median household income (just me, not my partner).

</comment><comment><USER34> No. I am currently $4000 behind the median (Canada, Small startup)

</comment><comment><USER35> From Chile, and way above the mean, something like 4x or 5x.

</comment><comment><USER36> Well above, even if restricting the group to college grads.

</comment><comment><USER37> Yes, 3 or 4 times. I am from Argentina.

</comment><comment><USER38> www.globalrichlist.com will give you some insights to where you fall globally.

</comment><comment><USER11> Substantially above.

</comment><comment><USER39> Yes, 3.5 times.</comment>