Running Istio In Production - <AUTHOR> https://engineering.hellofresh.com/everything-we-learned-running-istio-in-production-part-1-51efec69df65 <comment><USER2> Lots of shallow dismissals in the comments for this and it seems to be a trend every time microservices come up.

"N Microservices for $BUSINESS_DOMAIN ? Crazy!"

Can't we just taka it on good faith that the engineers who do these blog posts have at least a modicum of competence and therefore their solution has _some_ merit (that is worth discussing) rather than just "Micro-services bad" dismissals?

<sideshow bob>Yes I realise this can also be taken as a shallow dismissal of the shallow dismissals</sideshow bob>

<comment><USER3> >> Can't we just taka it on good faith that the engineers who do these blog posts have at least a modicum of competence and therefore their solution has some merit

On a technical resource, no. In a technical article, technical points need to be explained. Decisions need to be checked.

Unless your argument is "it cannot be bad because it must have been checked by many people", we are totally in the position to provide any sort of constructive feedback.

<comment><USER2> If you want to give __constructive __feedback then have at it.

My comments were aimed at the shallow dismissals at the level to which I gave an example (and examples of which can be found in the comments on this post).

If a response to these articles is along the lines of "OMG they are using microservices, BAD!" then that is not constructive or useful unless you are trying to invoke Cunningham's Law (Or whatever the one was about getting help on a linux mailing list by saying something cannot be done).

</comment></comment></comment><comment><USER3> >> At HelloFresh we run hundreds of microservices that do everything from supply chain management and handling payments to saving customer preferences. Running microservices at scale is not without its own challenges and many companies are beginning to experience the pain of complexity.

Lets solve this problem by introducing another level of indirection and not solving the root cause(?).

At this point i really believe that software architects who don't code, don't belong to this industry. If the implementers and operators are suffering, there should be a feedback channel.

<comment><USER4> Indeed, it is another level of indirection, and I'm all for it (having introduced a custom service mesh based on envoy into the company I work for having ~100 microservices, though it took more like 2-3 months of me working solo).

It's a great way to get a uniform metrics and troubleshooting experience.

Most important though, especially if you have strategically compiled binaries as microservices, a service mesh lets you roll out improved routing logic easily because it's all abstracted away, not encoded in client libraries in X number of languages. Same for tracing. Wanna add a field to all traces being generated? Go recompile and redeploy a 100 services... or change one service mesh config.

Other than that, envoy can usually withstand much more traffic than the service it overlays, so you can use it to provide DoS protection in depth, by limiting on service proxies everywhere. Saved us a couple outage escalations already.

<comment><USER3> >> Other than that, envoy can usually withstand much more traffic than the service it overlays

services-to-service peer-to-peer communication creates problems on its own. and i dont even know what are the benefits. it does not guarantee you anything per-se. all the redundancy and bandwith improvements need to be... coded... like with any other approach.

</comment></comment></comment><comment><USER5> Having struggled with setting up kubernetes over the last month on my own, I've come to realize the absolute value of simplicity.

In the end Helm just introduced more problems than it solved. Rather than applying configs haphazardly and relying on 3rd party services, it was ultimately much simpler to just download the configs for whatever service was needed (nginx ingress controller for me) and committing them to source control.

My biggest take away from the k8s community is that lots of people write terrible documentation and other people write blog posts and SO answers without actually understanding how kubernetes works under the hood.

There is still an ocean of depth in regards to k8s I don't know yet, but I feel a lot stronger about getting the intermediate basics. I'm at a point where I'm being productive again.

<comment><USER6> This is actually the advice I'm giving every new systems engineer that joins our organization.

Learning how Kubernetes works is much easier if you first get a firm grasp of the basics and then start bolting stuff on like istio knative and all the other cool stickers "modern architects" wet dream about.

<comment><USER7> Here's a worrying trend: software architects seem to talk in brand names instead of concept these days.

<comment><USER6> Yes, absolutely. It is like an infection or something. Once you catch it you only can communicate in logos of hip tech brands.

Edit: punctuation

</comment></comment></comment></comment><comment><USER8> I would like to read more about this, but the Part I that was linked is very, very thin on information. It's essentially just an introduction about the cloud tech in use, not anything substantial about the actual topic "running Istio in production".

Looking forward to upcoming parts!

</comment><comment> core-questions Delivering pre-packaged meals to people requires _hundreds of microservices_. That is truly astounding.

<comment><USER9> It's not entirely unreasonable on its face; physical fulfillment is a complicated business domain. You might have services dealing with suppliers, customers, delivery vendors, regulatory compliance, payments, sales taxes, so on, so forth. You might have ML services to predict product availability or customer demand. Those subdomains might themselves be decomposed into API services, vendor gateways, background workers, etc. This doesn't factor in infra-related things like data stores, caches, etc.

Even if you only sipped the microservices kool-aid, I can easily see dozens of services.

Granted, it seems reasonable that a handful of monoliths _could_ get the job done. Without having worked at HelloFresh, I'm inclined to think there's more to the story that we don't know. Maybe there's a good reason to have as many services as they do.

<comment><USER10> I would wager that its because ex-Uber folks work there and carried their ways with them.

<comment><USER9> That's rather pointed, but also matches just about every system-design interview I've ever given to an Uber engineer.

Next time, I want to ask them how they keep track of all those services!

 _edit_ : replaced an incorrectly-used idiom

<comment><USER11> Tip - use a database.

Computers are awesome at automating things, that goes for dev tooling as well.

If you've touched the ITSM space you're used to managing and maintaining many thousand of assets. A few hundred microservices is nothing, really.

My team use what you could call a simplified CMDB (configuration management database) which is cross referenced against the service discovery.

The cmdb keep info about every service, such as persistent data-sources, vm's etc, but most important - relationships: domain, team, services and resources.

A microservice is basically a "ci" (configuration item) with a managed lifecycle.

<comment><USER12> Keeping track is one thing. Actually _running_ the Lernaean Hydra of an application in production is a whole another story. The amount of "housekeeping" you have to do to keep the thing afloat is astounding: cascading failures, distributing tracing, logging and diagnostics, metrics. Even operational side of things require a lot of attention. Presumably, each microservice would require at least a minimal level of admin-level tooling around it.

<comment><USER11> Logging and monitoring is part of the lifecycle. Use strict automated conventions to aid developer teams. Always opt for convention before configuration is our tooling motto! :)

Log shipping is what we do from thousands of servers already (you should at least!), adding a shipper for a few 100 containers on a set of hosts is no big deal.

Fluent(d/bit) -> some kind of elastic? There are a few resonable patterns available that works and scales pretty well.

Failures and issues with the actual code - well I might have been lucky... DDD with somewhat senior devs where no spaghetti action takes place. The tooling we keep usually seem to pinpoint issues fairly well.

We're on the scale of roughly 40 devs and my team of 3 support them with tooling that handles service lifecycle and operational stuff.

It let's us be pretty fluent with what and how teams build and iterate stuff. I guess it requires a certain scale and experience though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is one of those posts that brings out comments about things being over architected for the business. My mind definitely went there.

But, at some point, companies that want to keep talented tech people need to let them go build what they want to build. Maybe those things are over- architected for what the company needs right now, but it's tough to say if that's a bigger risk than losing talented tech people.

<comment><USER14> No, that's definitely the kind of talent you don't want to have. Engineers too naive to realize they've over-engineered something are a cancer in an org. You end up with home-grown complex solutions to problems that nobody but the original team can grok.

</comment></comment><comment><USER15> I recently started investigating Istio, and though it will probably be an unpopular opinion here on HN, I honestly don't understand why it's not a core part of Kubernetes.

It's amazingly simple to configure, the docs are pretty OK, and the benefits seems huge. Mutual TLS within minutes? BAM, done. Don't worry about cert rotation, Citatel does that for you.

Block all egress, and whitelist what you need? Like, that's a killer feature! Also, the inability to do 90-10 canary releases with plain K8s baffles me. With Istio? Simple...

I don't know, I'm sure I'll find the pains of Istio in the coming months, but in my dev cluster, it looks amazing.

<comment><USER16> I have a hunch various cloud providers have been aware of TLS related frustrations for some time and are working on proprietary turn key products to add to their own offerings at relatively high prices.

This quietly disincentivized them to lean into any OSS stacks that will take away from this future revenue stream.

</comment></comment><comment><USER17> Surprisingly, it is possible to build a profitable business in this space. I looked them up and they're (very slightly) profitable. They also operate in multiple countries, which likely adds complication to their infrastructure, so it's not as ridiculous as it sounds.

</comment><comment><USER18> "Now, with our new service mesh—that only took a few months to roll out—a failure in our hello-fresh-left-pad microservice can be withstood with only a few hours of downtime" /s - Don't go work for HelloFresh unless you hate your nights and weekends.

<comment><USER12> You can experience the same, if not worse, levels of pain and suffering with a monolithic application designed by the same Enterprise Architects.

</comment></comment><comment><USER19> Part 1</comment>


Hedge funds on the brink as US Federal Reserve cash fails to ease crisis - <AUTHOR> http://business.timesonline.co.uk/tol/business/industry_sectors/banking_and_finance/article3542723.ece

<comment><USER2> A question for discussion:

This article is not really hacker news, and arguably it doesn't belong here. I don't mind and like it when there is the occasional piece on economics or politics. But it is a slippery slope...

What do you think? Should HN be kept "clean" ?</comment>


The Widely Divergent Life Expectancy in Every County in the US - <AUTHOR> http://thesoundingline.com/the-widely-divergent-life-expectancy-in-every-county-in-the-us/ <comment><USER2> Note that's it's also incredibly localized, even in stereotypically "wealthy" areas. For example, life expectancy varies by >10 years across neighborhoods _in San Francisco County_ ([https://www.cityofberkeley.info/uploadedFiles/Health_Human_S...](https://www.cityofberkeley.info/uploadedFiles/Health_Human_Services/Level_3_-_Public_Health/BARHII_Health%20Inequities%20in%20the%20Bay%20Area.pdf), slide 32).

</comment><comment> Blinks- For anyone who wants to check out the direct correlation mentioned in the article between this heatmap and the obesity heatmap, here is a link: [https://maxmasnick.com/2011/11/15/obesity_by_county/](https://maxmasnick.com/2011/11/15/obesity_by_county/)

Unlike the map linked in the article this obesity heatmap is also by county so it makes for an excellent comparison.

</comment><comment><USER3> Interesting they don't mention their extreme example (Oglala Lakota County) is an American Indian reservation.

<comment><USER4> because it shouldn't matter.

The separation of powers from any reservation to the Federal Trust is completely arbitrary and is only active when it is convenient. Congress can do anything it wants to a reservation and faces zero consequences. Host States can and actually do almost anything to reservations and face zero consequences.

and that can extend to building up and improving conditions closer to a base line. even when recognizing that each reservation is entirely different, despite some common outcomes.

<comment><USER3> It matters in terms of understanding how much of the gap in lifespan could be addressed specifically by solely addressing issues on reservations.

<comment><USER5> > by solely addressing issues on reservations.

The IHS itself is the culprit. It's hard to improve life expectancy when your only access to medical care is through a system that's not only overcrowded and underfunded, but which has truly zero incentive to provide quality medical care to its patients (and a long, documented history of corruption and outright exploitation of its patients).

<comment><USER3> It is one culprit of many.

</comment></comment></comment></comment></comment><comment><USER6> Isn't this basically just a proxy of poverty and drug use?

I think a more interesting map would be life expectancy of those over 70.

</comment><comment><USER7> This data is meaningless for analysis without exposing the racial breakdown. That South Dakota county is almost certainly nearly all American Indians. The big red patch in the south is very likely largely influenced by lower African American lifespans.

<comment><USER8> How does that make it meaningless? Yes, certain segments of the population are even more underserved than others, but that's just more evidence for the fact that we're doing a crap job of keeping people healthy.

<comment><USER5> > How does that make it meaningless? Yes, certain segments of the population > are even more underserved than others, but that's just more evidence for the > fact that we're doing a crap job of keeping people healthy.

Because by not breaking out the single largest compounding factor, it's masking the real problem underlying this issue: there's a massive disparity in outcomes for people of different races.

<comment><USER9> Perhaps poverty, access to healthcare, or education is a bigger factor? Do you have evidence race is the "real problem"?

In Washington state, the counties with the worst mortality are 95% white, with 5% native (Grays Harbor and Okanagan)

(poverty, education, race are of course very correlated)

<comment><USER10> Race in fact does play a big factor in health disparities. For example, African Americans are at much higher risk for heart health related issues. And when heart disease is the number 1 killer of people of all races.. well that just doesn't bode well for the life expectancy of AA.

And it's not _just_ because minority populations have worse access to healthcare. There are in fact genetic components that predispose different races to different diseases.

Japanese people, Glaucoma. AA, heart disease. White people, Celiac.

Basically there's multiple components: Race, Healthcare access, Poverty, Education, Local Cultural proclivities for: diet, exercise, etc.

[https://jasn.asnjournals.org/content/26/2/247.full](https://jasn.asnjournals.org/content/26/2/247.full)

</comment></comment></comment></comment></comment><comment> barry-cotter How shocking that a massively multi-ethnic country that contains 5% of the human population has very large gaps in life expectancy if you measure by county.

If you look at European countries, a much coarser level of measurement the gap is 83-71, 12 years.

[https://en.m.wikipedia.org/wiki/List_of_European_countries_b...](https://en.m.wikipedia.org/wiki/List_of_European_countries_by_life_expectancy)

<comment><USER11> It is shocking because we don't officially acknowledge the existence of social classes in the USA.

All men are created equal here. It's counter to our national narrative to think of communities and areas where your life is fucked just because you're born in the wrong spot.

<comment><USER9> Or fucked because you were born to poor uneducated parents in the right spot...

</comment></comment></comment><comment><USER12> It's kind of disappointing, but I'm not at all shocked to see the South having the largest area in the red, and the North East and the West coast doing well. I'd really like to see this map over time, though. I think that would be a really interesting addition to the data, as it would give a really good picture of which areas are getting better or worse.

</comment><comment><USER13> I built this viz a few years back to visualize the top causes of death by state : [https://www.infino.me/mortality/usmap](https://www.infino.me/mortality/usmap)

Still interesting to me how bad people in Alaska have it.</comment>


How Art.sy survived a NYTimes.com homepage launch with Heroku + MongoHQ - <AUTHOR> http://success.heroku.com/artsy <comment><USER2> No offense to the Art.sy team, but this is just Heroku marketing copy. It lacks the detail we typically see on these sorts of high scalability "how we did it" posts. Non-trivial applications scale non-trivially, and when someone comes along claiming they have solved the scalability problem with the push of a button I am instantly skeptical.

I would really like to see more details about their architecture, especially about the MongoHQ integration.

<comment><USER3> I wrote a blog post on our overall tech stack here: [http://artsy.github.com/blog/2012/10/10/artsy-technology- sta...](http://artsy.github.com/blog/2012/10/10/artsy-technology-stack/)

Our MongoHQ integration is very straightforward - MongoHQ provides us with a replica set and we configure it as any other MongoDB database.

Feel free to ask any specific questions.

<comment><USER4> I realize this is off-topic but just as a bug report, I tried to search for "cezanne watercolor" and it didn't understand, despite that you have watercolors by Cézanne. Also it wasn't clear whether watercolors were best found under "paintings" or "works on paper". I think you need to make it easier for non-computer people to find specific types of image.

<comment><USER3> It's an interesting observation. We built a full text semantic search in 2011 by reverse-indexing art search results from popular search engines and it could do things like "Cezanne watercolors" at ease.

We showed it to people and we found that one could easily trick the system with things like "Worst American Art Ever". That generates results, but shows the limits of a general semantic search in a narrow context.

Happy to hear any suggestions about how to make something like this both useful and not too easy to make look really silly.

<comment><USER4> Well surely each of them is tagged with both 'cezanne' and 'watercolor', can't you just match search substrings to tags?

<comment><USER3> It only works in that case. What if there's another work that is called "Cezanne's Favorite Watercolor", and we're just in the beginning of search hell :)

</comment></comment></comment></comment></comment></comment><comment><USER5> I'd read this with a grain of salt. I remember looking at art.sy via the NYTimes link and thinking the site was terribly slow. I still find it moderately slow. I am not sure they really need mixpanel, google analytics, and kissmetrics, on every click and the api calls should take less than the 1-4 seconds I am seeing.

<comment><USER3> dblock from Art.sy here. The analytics comment is totally fair - we spent a lot of time looking at all kinds of stats as we keep experimenting and it needs to be trimmed down to 1 (or none :)).

Our average API response is 380ms. It's about 20x too long as far as I am concerned. It's not Heroku's fault to be fair, there's a mix of Ruby code, database queries and some not so easy to optimize math in some cases. It's definitely work in progress.

<comment><USER6> I suspect I'm well outside your target demographic, but I'm seeing ~22 whole seconds to onload (according to Firebug) here in Sydney, Australia (as 52 requests comprising 1.6Meg of data.)

That certainly seems excessive for a non-logged-in user on your main landing page.

<comment><USER3> China and Australia are the worst regions right now in terms of content delivery speed by a factor of 3.

I suspect with a new AWS data center in Australia Cloudfront delivery will become better there soon, and we're looking at Akamai medium term.

</comment></comment></comment></comment><comment><USER7> I'm just curious, how much traffic NYTime brought you guys. I'm also on Heroku and my app(<http://www.tubalr.com>) "survived" several articles around the web(Mashable, TechCrunch, The Verge, The Next Web, Japan LifeHacker, and several others) within a very short timespan. My bill has never been over $25, which includes no extra workers.. just extra DB storage and an upgraded DNS plugin.

Just curious, thanks!

<comment><USER8> Art.sy was lucky to be the top article on NYTimes (the one with the large image at the top of their homepage) from about 5pm to 11pm, were the #3 most emailed, and the NYT article was #3 on Hacker News. We went to 1500 concurrents almost instantly, and maintained it for several hours. This is nothing for many large sites, but was the most we'd had. We had added some extra dynos in preparation, and our API response time actually went down as more obscure routes were hit and cached.

We prepared for the worst, though, and had built a failsafe way to progressively shut off more demanding features on the site (for instance: our related search results on artwork pages) in case we were getting overwhelmed. Much better to have a reduced feature set during launch than a broken site. Fortunately we didn't have to flip that switch!

<comment><USER7> That's insane, congrats on staying up, and thanks for the response :)

</comment></comment></comment><comment><USER9> Ugh! this is just a puff from heroku. Yes, I'm sure it's a great tech, but we have no idea of whether it is accurate or not. This piece has no analysis, no comparisons, and certainly no independence or objectivity.

</comment><comment><USER10> I'd love to deploy on Heroku, but it's so dramatically more expensive than aws. For a startup, is it really worth that additional cost?

<comment><USER11> Heroku is really just AWS with convenience, isn't it? I'm not sure what else they do - but I guess that "convenience" is worth it for some.

<comment><USER12> Is it possible to launch using just a single dyno and heavy caching/optimization?

<comment><USER13> They will shut down your instance, if you don't use it for an hour or two - and then it will take like 8-10 seconds to load it again. If you can live with that, I guess that would work, yes.

<comment><USER14> There are very, very easy ways around this.

<comment><USER15> One being a service like <http://uptimerobot.com/> that pings the site every 5 minutes

<comment><USER3> From what I see, when you have a single dyno, Heroku deploys you to a different environment sandbox called "development". Typically that has less uptime and takes lots of upgrades all the time with interesting consequences. I believe they promote to "production" applications much less frequently.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> I think this article can be a little misleading. Sure, with cloud tech you can easily spool up more instances. And yes, it is great to not have to worry about configuring a load balancer (I guess). But just because adding more instances sort of fixes a problem doesn't mean it is a good thing to do. Not "having to do calculations" is a very bad attitude. You should know where the bottle necks are, and if adding instances is actually necessary or just some scotch tape. Bad architecture and coding can bite you in ways that adding hardware cannot fix.</comment>


Apple will require all new apps to be optimized for iOS 7 from February 1 - <AUTHOR> http://thenextweb.com/apple/2013/12/18/apple-will-require-all-new-apps-to-be-optimized-for-ios-7-from-february-1/

<comment><USER2> The question is, by "optimized", do they mean just the UI of the app? The article mentions that the apps must be build with xcode5. But it doesn't specify against which iOS version it must be _build_.

Do they force devs to not just make their apps looks like iOS7 but also force them to use iOS7.x as a minimum build target? That would really suck considering there still are devices out there that are ineligible to upgrade to iOS7.

<comment><USER3> This just means apps will have to be built with Xcode 5. Older iOS versions can still be supported.

<comment><USER4> More specifically, it means apps will have to be built with the iOS 7 base SDK (you can modify Xcode 5 to build with the older SDKs as base).

This ensures things like the new style keyboard and status bar UI are used in your app when running on iOS 7.

</comment></comment></comment><comment><USER5> the big problem here is that apple gets to decide what hardware can and cant be updated. The nice thing about linux and some not locked down android devices is that someone in the community can generally back port to older hardware if the device manufacturer didn't bother to do it themselves.

</comment><comment><USER6> Apple doesn't have fragmentation to worry about. I think the requirement is smart and necessary. Developers must keep up with new SDK and new iOS.

On the other hand, older devices, at least my iPad, doesn't work very well all the new updates. I wonder if this has anything to do with the backward compatibility, or the hardware, or just the fact iOS7 is new so updates are not optimized yet.

<comment><USER7> Maybe I'm cynical, but I think that's part of the Apple treadmill to keep people buying new devices. iOS 7 is written for the new hardware (as it should be), and not fully optimized for older devices because they want people to buy new ones.

I have a 5 year-old laptop that works perfectly for my purposes, but I'll probably have to buy a new one just so I can run Xcode 5, and the only reason I can't run Xcode 5 is because it won't run Mountain Lion / Mavericks. Even then, that's only because Apple won't optimize Mavericks for the GPU on my machine - the same laptop can run Windows 8.1 just fine.

<comment><USER8> You are not being cynical, that is exactly what Apple is doing and always has done. They set a limit on how far back they support older products regardless of if they are technically able to do whatever is needed.

Whether doing so is right or wrong is up to the individual to decide. Apple do not keep it a secret or advertise that whatever you buy today will be supported by their newer software in a couple of years. You buy the product as is today.

<comment><USER9> In spite of this bad behavior, Apple is still the best at supporting old devices with OS updates.

[http://www.fidlee.com/android-support-vs-ios- support/](http://www.fidlee.com/android-support-vs-ios-support/)

So Apple is the best at this but they are still the bad guys or just the less worse ?

<comment><USER10> Except that a lot of sensible people don't install the final updates for any given Apple iDevice that's going out of support, because it's often so slow as to make the device unusable and Apple have got strong anti-downgrade protections that stop anyone from rolling back to the previous version. Nice bit of forced obsolescence.

<comment><USER8> Running iOS 7 on my partners iPad 2 is fine. The biggest performance issues with it are websites that are more and more complex than just a few years ago when she got the iPad. They lag like hell.

I understand why Apple makes downgrading so difficult but I agree it is a real pain in the ass and wish it was simple to do.

<comment><USER10> It'd be pretty terrible if it didn't run properly on there, since as far as I can tell Apple are still making and selling the iPad 2. I'd be curious how the iPad 3 is doing since that was discontinued a year or so ago.</comment></comment></comment></comment></comment></comment></comment>


A Pennsylvania County Election Day Nightmare Underscores Voting Machine Concerns - <AUTHOR> https://www.nytimes.com/2019/11/30/us/politics/pennsylvania-voting-machines.html <comment><USER2> > With clearly faulty results in at least the judge's election, officials > began counting the paper backup ballots generated by the same machines.

And if the results aren't _clearly_ faulty, they'll get used, and the paper backups forgotten.

What is the advantage over just paper ballots, that outweighs introducing this much uncertainty?

<comment><USER3> These systems create more room for corruption and fraud to pass unnoticed, which was the goal all along.

</comment></comment><comment><USER4> >Lee Snover, the chairwoman of the county Republicans, said >her anxiety began to pick up at 9:30 p.m. on Nov. 5. She >had trouble getting someone from the election office on >the phone. When she eventually got through, she said: "I'm >coming down there and you better let me in."

>With clearly faulty results in at least the judge's >election, officials began counting the paper backup >ballots generated by the same machines. The paper ballots >showed Mr. Kassis winning narrowly, 26,142 to 25,137, over >his opponent, the Republican Victor Scomillio.

It's refreshing to see Lee Snover had the principles to do the right thing.</comment>


Meet Polaris, a map library for Android - <AUTHOR> http://android.cyrilmottier.com/?p=824

<comment><USER2> I wonder how the folks at Polaris feel about this:

<http://www.polaris.com/en-us/home.aspx>

The logo is also pretty similar... Not the same market at all, but it's a pretty popular company, so I'm sure they have that name trademarked or something.

</comment><comment><USER3> pretty cool he should get hired bby google.</comment>


Just Leave Them Behind  - <AUTHOR> http://www.nytimes.com/2008/11/02/education/edlife/books.html?ref=edlife&pagewanted=print <comment><USER2> It's easy for those who live in ivory towers to write books justifying how they deserve to live in ivory tower. I would be much more intruiged in somebody writing a book explaining how he should actually be a plumber.

One of my college professors always starts a new session by telling the story of how he bacame a professor. He started off by learning how to be an electrician, because that's all everyone around him was doing. This is in a 3-tier schooling system. After doing that for a while, an instructor encouraged him to go for a somewhat higher learning to become a technician. He did, and there again, he decided on a whim to try out for the university. He got in, and was encouraged to get a PHD. He got it, and some years later, was made a professor.

It would have been real easy for him to have stayed an electrician. Maybe he could have met a girl and needed to pay bills. Maybe he would have felt he was too old. He had the intellectual ability, but the tiered system could have forced him into a path where he would never have been able to contribute what he has to everyone who passed through him.

<comment><USER3> _I would be much more intruiged in somebody writing a book explaining how he should actually be a plumber._

You'll never find a well-written book which honestly claims that its author should be a plumber. Why? For the same reason as you'll never find a well- written book which honestly claims that its author is illiterate: If you're able to write well, you're overqualified to be a plumber.

<comment><USER2> What about a labourer arguing for the case that there should be an influx of labourers from Mexico? It's the same pattern everywhere. When people argue for high IQ being superior, they have high IQs. When they argue for immigration, it's because they are not affected, when they argue for more police on the streets, it's because they are not criminals.

I would be a lot more impressed by people who make arguments that are rationally correct, but that do not favour them.

It's like people who argue for Eugenics - their version of Eugenics never involves them or their friends/family being cut out from the genetic pool.

<comment><USER3> _I would be a lot more impressed by people who make arguments that are rationally correct, but that do not favour them._

I've been arguing for a long time that universities should take fewer students and technical training schools should be expanded. Given that I hope to end up with a faculty position at a university, I'd say that this isn't a position which particularly favours me.

 _It's like people who argue for Eugenics - their version of Eugenics never involves them or their friends/family being cut out from the genetic pool._

I wouldn't argue for cutting myself out of the gene pool, since I think the genes I have which are responsible for my intellect are worth keeping (both of my parents have doctorates, so I think it's safe to say that there's a strong genetic component in my case); but there is strong evidence that I have genes which predispose for autoimmune conditions, and if I'm ever in a position to have children I'd strongly support using genetic testing to eliminate zygotes with those genes.

<comment><USER4> _both of my parents have doctorates, so I think it's safe to say that there's a strong genetic component in my case_

Both of your parents have doctorates, so I think it's safe to say that there's a strong _nurture_ component in your case.

<comment><USER5> You can't draw that conclusion unless he has an adopted sibling or a biological sibling that was put up for adoption. Normal unadopted children share both their genes and their environment with their parents.

When studies _have_ been done on identical twins raised apart, they've shown that genetics matters far more than parental environment, with genes being responsible for close to 40% of the variance in a wide array of personality traits, parental nurturing responsible for about 10%, and the child's peer group responsible for the remaining 50%.

</comment></comment></comment></comment></comment></comment><comment><USER6> My personal experience from myself and everyone I've seen, is that there are very few true geniuses (much less than 20% of the population), and that the major differentiators are luck and effort. You're lucky to be born into a family that turns you on to reading and learning, or even to be born in a country where you have the freedom and equality of opportunity to try for your dreams. But you also make your own luck, in that those who put in the effort make things happen.

I don't know any really smart or accomplished people who would say that it was just their intellectual superiority that got them to where they are. Rather, they are usually eager to cite luck first, and in reality it was their effort that got them places.

Myself, I know I'm lucky as hell, but I do put in a lot of effort too, not just in my chosen field but also reading everything I can. My hope is the effort in combination with a little luck will pay off big :)

This guy has some interesting points, and there is a degree of truth in it, but he's way too absolute in citing a single determinant factor of success, and his idea of additional systemized testing is ridiculous. There are differences in intelligence levels, but through effort they even out in practice in most cases. And as if his tests could ever be completely without bias, or even perfected enough to accurately determine true intelligence vs acquired knowledge.

</comment><comment><USER7> Peter Drucker had a telling piece of (anecdotal, but telling nonetheless) evidence on the subject. After World War II, a large proportion of students at Columbia were returned veterans, thanks to the GI Bill. Most of them would not have been considered, or considered themselves, candidates for college before the war. _None of them were on academic probation._

Motivation and application are much more important than any hypothesized "native ability". "How do I get to Carnegie Hall?" Practice.

</comment><comment><USER8> Thesis of the book (article is a book review):

"it's almost impossible to raise academic ability, to turn the below-average into even the slightly less below-average. It's only "educational romanticism" that makes us think we can."

I disagree in principle, although I don't have a lot of exposure to the science/data concerned here. What is pretty clear to me is that currently, the United States as a whole is not culturally geared to hold education, science, etc as important and/or "sexy". Consider the ratio of how many people watch Reality TV compared to Mythbusters and the like.

<comment><USER9> Unless Tom Murray has significantly changed his opinion in the last few months, I think this is a major oversimplification, if not obfuscation, of his argument. I mean, half the article is devoted to a "Mr. Fish," who as far as I can tell, is just another commentator that has nothing to do with the book. The reviewer clearly dislikes this book (as well as "The Bell Curve"), and I can't help but be put off by the disjointed organization of the article.

For instance, I think this review misses a point of Murray's that I consider important. In an article I read by Murray in the American last month [[http://www.american.com/archive/2008/september-october- magaz...](http://www.american.com/archive/2008/september-october-magazine/are- too-many-people-going-to-college)], his idea seems to be that core knowledge, the kind of things that we as a culture need to know, like basic American history, geography, cultural literacy, science, etc, should be taught at a much earlier age, in the K-8 curriculum, and not wait until college. He said that the average student needs to know much more about the above fields than they know now, and so it should be taught earlier, so that most people don't need a four-year college education in order to have the core knowledge necessary in a modern society.

<comment><USER10> From the article:

"The more people who go to college, the more stigmatizing the failure to complete college becomes."

I think Mr. Murray needs to lighten up a little. One way in which American culture excels over many others, is in our embrace of failure. If you want to try to go to college, and end up failing, so what? Do something else. You're still in your early 20s.

Certainly, there is the issue of going into heavy debt in a failed attempt at a college education. But that is different from people thinking less of you for having tried something and failed.

People reading Hacker News should empathize with this sentiment more than most, I think.

</comment></comment></comment><comment><USER11> Another study: teacher motivation is the key differentiator in a school's results.

[http://www.ted.com/index.php/talks/sugata_mitra_shows_how_ki...](http://www.ted.com/index.php/talks/sugata_mitra_shows_how_kids_teach_themselves.html)

</comment><comment><USER12> If it's "almost impossible to raise achievement", then the implication is that the "leaking pipeline" in higher ed, where minorities drop out at a proportionately higher rate at each step, reflects an inherent difference in aptitude between different races.

It would also mean that Americans are inherently "dumber" (loosely speaking) than Europeans, since they on average score lower on tests of math and science. After all, nothing can be done to raise achievement, so it must be inherent.

I don't believe that for a minute.

I also think the statement is empirically false; It _is_ perfectly possible to raise achievement, and I think it's much more probable that the difficulties doing so on a large scale are rooted in flawed educational practices and cultural/societal factors.

</comment><comment><USER13> Your radical ideas about education have already occurred to Plato, Charles Murray.

Considering that 230 years ago, one-fifth of a nation consisting of 20% slaves, 50% indentured servants, and unschooled farmers for most of the rest, bought Common Sense, which isn't exactly beach reading, I'm not too impressed with his claim that 80% of people are inherently incapable of college-level work.

<comment><USER14> I've seen the claim that "The Deerslayer" sold so many copies in the 1840s that most American households must have had a copy. The idea of the majority of Americans even attempting to read a book like that now is just ridiculous.

<comment><USER13> I don't know about The Deerslayer, but The Last of the Mohicans (about which you could say the same) sold millions of copies, so it would not surprise me.

</comment></comment></comment><comment><USER15> Murray is an old school ivory tower academic who is out of date. From my understanding I feel that his theories rely too much on standardized tests, which many other studies over the years have shown that the only thing they really predict is how well someone does in academia; not beyond it

</comment><comment><USER3> _"The Bell Curve," [...] argued not only that I.Q. was genetically determined but that it amounted to destiny, predicting your job performance, your financial prospects, even how likely you were to commit a crime or become an unwed mother._

Life sucks. Deal with it.

The fact is, Charles Murray is correct: IQ _does_ predict your job performance, financial prospects, likelihood of criminality, and probability of becoming an unwed mother. It predicts these in the same sense as whether of not someone has the BRCA1 or BRCA2 genes is a predictor of whether they will die of breast cancer -- there are lots of factors, including dumb luck, but it's one of the largest.

Can we do something about this? Absolutely: If someone carries the BRCA1 or BRCA2 genes, we can recommend that they undergo routine breast cancer screening from an early age. If someone has a low IQ, we can pay special attention to them in school to make sure that they're not falling behind.

What we decide to do is a matter of public policy. Some states provide free breast cancer screening to everybody; others provide free breast cancer screening to anyone with a family history of the disease; others don't provide free breast cancer screening at all. Similarly, some states "stream" children into classes with other children with similar IQs; some states put everybody into the same class but perform testing so that teachers know which students are more likely to need help; and some states just throw all the children together without making any attempt to distinguish the high IQs from the low IQs.

Some people are born stupid. But pretending that we're all equal won't fix that. The first step towards dealing with it is to recognize that life sucks.

</comment><comment><USER16> I would suspect that above a certain threshold, intelligence would have a damping effect on one's earning potential, i.e., leading to the pursuit of a doctorate in physics instead of a medical, law, business career. Or even plumbing.

<comment><USER17> Not necessarily. See for example D.E. Shaw, J.H. Simons, N. Myhrvold.

<comment><USER16> Of course not, there are always extreme outliers. But if you do a median net worth survey of the professions mentioned above versus that of of scientists, mathematicians, and engineers, the results are indisputable. Very high intelligence careers have a poor comparative financial ROI, on average.

<comment><USER17> You are right. But to play devil's advocate: what if very high intelligence individuals are not more likely to do science, mathematics or engineering?

For a very rough approximation: if I remember well, SAT averages for Harvard/Yale/Princeton (more likely to be doctor/lawyer/executive) are very similar to (or even higher than?) scores for MIT/Caltech/Stanford (more likely to be scientist/engineer).

So, could it be that it's not the high intelligence by itself that has said dampening effect on one's earning potential, but it's more about interests of the individual?

<comment><USER16> Possible, but it doesn't sit right with me intuitively. And since I don't care enough about the issue to spend time collecting data to refute your premise, we have to leave it at that. :)

</comment></comment></comment></comment></comment><comment><USER18> Disgusting as usual. Yet another reputed scholar going out of his field and posing a controversial set of ideas with mostly anecdotal justification.

In particular, IQ is a very old and limited measure of cognitive ability with many controversies about culture bias. For example it doesn't reflect long term goal focus, a more important ability for success.

<comment><USER9> To play Devil's advocate here, isn't your personal thesis that "long term goal focus" is important for success also based on anecdotal evidence? Or do you have a study that you would like to reference? I don't know too much about education or psychology or any related field, and I'd be very interested in looking at any material that you might have.

<comment><USER19> Dr. Banfield at Harvard University wrote a book in the 70's based on his study of this question ("The Unheavenly City"). His main finding is that long term success is tied to "long term goal focus".

</comment></comment></comment><comment><USER20> We ought to equip all students with the basic level of education necessary to know about The Choice (work hard or clean toilets), and let them buy, beg, borrow, or steal the rest.

</comment><comment><USER21> Anything that can be expressed in terms of inputs and outputs, can, conceivably, be codified into a computer program. Given enough time, the hardware time required to run any program shrinks to nil.

I foresee a future where a computer scans you, and prints out your ideal career. Then a beautiful one-eyed woman puts a chip in your hand that permanently locks you into that career. The motto: "You gotta do what you gotta do."

I'm off. Gotta deliver a pizza to I. C. Wiener.

<comment><USER13> The funny thing is, that played absolutely no role in the rest of Futurama, at least as far as I can remember.

<comment><USER21> In season 3, episode 32, "The Cryonic Woman," Fry and Leela trade career chips. He thaws his ex from the 20th century, and she delivers pizzas.

</comment></comment></comment><comment><USER22> <http://www.youtube.com/watch?v=0XxmWTI4zWM>

</comment><comment><USER17> What you can't say

<http://www.paulgraham.com/say.html>

<http://www.paulgraham.com/resay.html>

</comment><comment><USER23> Doesn't this call out for a modern version of "My Fair Lady"?

</comment><comment><AUTHOR> _"... This is the same Charles Murray who was co-author of the even more controversial 1994 book "The Bell Curve," which argued not only that I.Q. was genetically determined but that it amounted to destiny ..."_

The sad thing is, this statement is sometimes true (but not as much as Murry would suggest). When I was young, down the street lived a big kid, Kenny was his name. He was never really allowed out like the other kids. But I do remember when I visited his house once he had the largest box of cars I'd ever seen. I remember asking my mum if he could come out to my house some time and possibly bring some toys. Only to be promptly told no. Why? Well he's different and has trouble learning and goes to a special school.

But why?

Surely he could take a book and learn as much as he wanted? No was the reply... Never. I remember balling my eyes out hearing this as I couldn't understand why he couldn't just pick a book up and learn as I was at school. Of course this didn't stop Kenny playing Basketball for Australia or numerous other achievements. The reason why Murray is wrong is this is an extreme. Not everyone has the intellectual disability that crippled Kenny's ability to learn and therefore if they want to learn new things all the stops should be pulled out if they show the inclination. The ability to learn is a form of emancipation.

 _"... the others are incapable of doing college-level work — and those who do should study a curriculum heavy on the great books, so they can become moral and ethical mandarins and wisely run the country for the rest of us. ..."_

China has this sort of approach and I'll give you an example of the kind of screwed up problems it can cause. Australia has a large quantity of super fine Merino wool. It's the material that all the best suits are woven from and has some unique properties that make it ideal for high-end garments. But it's expensive. So the Chinese decided that investment was one way to go ~ <http://www.abc.net.au/landline/content/2006/s1664831.htm> So they invested some money in an existing Merino Sheep-Station with the intention of growing the wool then shipping the clipped wool to China thus saving money. From clip to yarn would be all Chinese. But running a farm tested their approach to tackling things - their bias for groups of "elites" who are primarily tertiary educated instructing a greater mass of ill-educated.

Running a farm is difficult anywhere. Not having any local expertise or understanding of the local conditions as well as a group of people that could be trained or seek training on the latest techniques but could also put this training into practice turned out to be fatal. The farm failed. The highly educated couldn't translate their theory into practice. The lesser educated couldn't be show how.

What was missing was the broad spectrum of skills and intelligence, something what we class as tradesman or technicians. We severely underestimate the quality and expertise of our tradespeople and technicians.</comment>


Update on special-case subdomain elision in Chrome - <AUTHOR> https://groups.google.com/a/chromium.org/forum/#!topic/security-dev/5DIxA4yRfD0 <comment><USER2> > special-case subdomains "www" and "m"

These are not special-case subdomains, they are simply subdomains...

<comment><USER3> This. The rollback they're doing is something we of Hispanic descent call consuelo-de-bobo. They're still going to elide www so what's the point?

</comment></comment><comment><USER4> The missing rationale here seems to be:

* The domain part of a URL is a critical security indicator.

* The shorter and simpler this indicator is, the more chance users will understand and trust it.

* Very few users trust www.yahoo.com while not trusting yahoo.com.

* If we assume that users who trust www.domain.com also trust domain.com and vice versa, we can remove the "www." from the UI, creating a shorter, simpler and more understandable security token.

<comment><USER5> > The domain part of a URL is a critical security indicator.

Except when it's not.

[https://www.schrauger.com/the-story-of-how-wosign-gave-me- an...](https://www.schrauger.com/the-story-of-how-wosign-gave-me-an-ssl- certificate-for-github-com)

[http://freedns.afraid.org/](http://freedns.afraid.org/)

</comment></comment><comment><USER6> >There is more community consensus that sites should not allow the "www" subdomain to be user controlled.

Is there any record of this "consensus"? This shouldn't be happening, period. There is a difference between example.com and www.example.com: they can serve different content, and can have different DNS records. There is literally no sane reason to hide any subdomain, common or not -- it's there for a reason.

Previous discussion: [https://news.ycombinator.com/item?id=17927972](https://news.ycombinator.com/item?id=17927972)

</comment><comment><USER7> > _We do not plan to standardize how browsers should treat these special cases > in their UI_

This is a statement from the Chrome team; from Google. Since when does Google unilaterally decide on what it will or will not standardise in other browsers?

Standardisation is a multi-stakeholder collaborative process. This sounds very much like Google representatives don't view it as such. Given their dominant market position, that's a worrying sign.

<comment><USER8> It helps to read that sentence in the context of the sentence right before it.

<comment><USER7> The context doesn't change the meaning. The previous sentence talks about engaging in a (separate, different) standardisation process with others, and this sentence then does a jarring context switch by instead talking about a seemingly unilateral action (albeit thankfully in the negative, so only the tone is of concern).

<comment><USER9> No, the sentence in question is—and the context you are dismissig makes this abundantly clear, though it is also the most natural reading of the sentence in isolation, IMO—using "standardize" to mean "seek to establish as an industry standard through the process of a standards body."

(Note that while I think the language is clear, I think this whole approach from Google is ill-conceived to the point of borderline lunacy; there is no need for these to be special-case subdomains or for them to be treated specially by UIs at all.)

</comment></comment></comment></comment><comment><USER10> If only HTTP supported SRV records so people could use bare domain (google.com) in the UI while serving content transparently from other hosts. Many protocols use that (e.g. XMPP). But no, it seems to be easier to stick to www CNAME "hack" and fix it by introducing even more hacks like this "www elision".

</comment><comment><USER11> They've added a feature nobody asked for, so there must be another hidden reason why they've decided to add this. Any ideas? Is this really just a "UX enhancement", or is there a bigger strategy behind it?

</comment><comment><USER12> Context:

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

</comment><comment><USER13> I don't get it.

Putting style before substance.

To disable the annoying behaviour:

chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains

</comment><comment><USER14> My money is on Tumblr having been the primary "big site" where this was an issue.</comment>


Logos on the Surface of City Streets as a New Innovative Public Funding Tool - <AUTHOR> https://www.strategiclogosystems.com <comment><AUTHOR> We want to facilitate the placement of logos on the surface of city streets, and give 90% of the advertising revenue back to the cities. This is an innovative new funding source that will generate substantial revenue for social issues and infrastructure needs, all without increasing taxes, fees, or debt.

</comment><comment><USER2> How many more months until we reach Peak Ad?

<comment><AUTHOR> We believe this is the next generation of ads after the online advertising bubble pops. They can reach many people repetitively, although are unobtrusive on the horizon unlike billboards.</comment></comment>


Broken Sword 5: The Serpents Curse released - <AUTHOR> http://www.gog.com/game/broken_sword_5_the_serpents_curse

<comment><AUTHOR> And also in STEAM [1] with Linux support.

[1]: [http://store.steampowered.com/app/262940/](http://store.steampowered.com/app/262940/)</comment>


Show HN: Compiler Fundamentals – Closure Conversion - <AUTHOR> https://gist.github.com/rain-1/36c4851b7c29cf8e42f23ba6eec37be6 <comment><AUTHOR> I took the essence of closure conversion and implemented it as a single file racket script with explanation in comments and examples.

The idea is that this should help someone if they are a beginner wanting to implement a language that has lambda. Or anybody who is curious how a compiler might implement lambda.

</comment><comment><USER2> Lisps look so magical. I wish it were more accepted in the web application industry to pick a lisps for implementing services. I love my Ruby, and my Go, but it would be fun to experiment with a lisp some time.

<comment><USER3> Clojure and Clojurescript are both amazing. If you have the time they are absolutely worth playing around with.

</comment></comment><comment><USER4> I also made a closure converting pass to my compiler (in racket also!)

Here's mine: [https://github.com/sinistersnare/SinScheme/blob/master/src/r...](https://github.com/sinistersnare/SinScheme/blob/master/src/racket/closure- convert.rkt)

<comment><USER5> Yet another: this is the whole compiler, but for a simpler language and target. [https://github.com/darius/squeam/blob/master/eg/lambdacompil...](https://github.com/darius/squeam/blob/master/eg/lambdacompiler.scm)

It's in my own Scheme variant, I'm afraid. I guess I should translate it to something people know. But, for example

        ;; Variable reference
        (to (var-ref<- v)
          (make ({.free-vars} (set<- v))
                ({.compile s k} (cons (s v) k))))

turns a source-code variable access into an AST object with two methods: 1. The free-variable set of this AST has just that one variable. 2. To compile this to bytecode, given a scope s and following code k, ask the scope what instruction to emit for this variable, and prepend that to k. (In general k is passed in for the sake of tail-call optimization, on line 33.)

</comment></comment><comment><USER6> A shorter version in C: [https://github.com/perl11/potion/blob/master/core/compile.c#...](https://github.com/perl11/potion/blob/master/core/compile.c#L198)

</comment><comment><USER7> this is just a tiny nitpick but I'm wondering why you didn't use pattern matching? if you just wanted to stay schemey then disregard but you could skip the entire shapes section and the rest of the code would still be terser, e.g.

        ((begin? exp)
        `(begin . ,(mapply cc (cdr exp) sc)))

would become

        [`(begin ,xs ...)
         `(begin ,@(mapply cc xs sc))]

or if you're feeling fancy

        (define cc-sc (curryr cc sc))

        [`(begin ,(app cc-sc xs) ...) `(begin ,@xs)]</comment>


This is how analog clocks should be. With a polar projection of the world. - <AUTHOR> http://imgur.com/ilQdL1O

<comment><AUTHOR> More information:

Analog clocks have always annoyed me, so I decided to make my own. This is the logical solution I think. There's only one hand, which moves round once a day and shows where the sun is on the map. In the photo it is nearly 10pm in the UK so the sun is over the Alaska timezone. The 6am-6pm line is your horizon, so the top half is your daytime.

This one is for GMT/UTC - you'd need to rotate the map for different timezones, to put your location at the top under the noon marker.

The map is an azimuthal equal-area projection, made with NASA's G.Projector: [http://www.giss.nasa.gov/tools/gprojector/](http://www.giss.nasa.gov/tools/gprojector/)

I bought a 24-hour clock and simply inserted the printed map in place, after removing the minute and second hands.

Make your own!

<comment><USER2> Is it really proper to call it an "analog" clock? That word makes me think electronics, just not digital electronics. Maybe "mechanical" would be more appropriate.

That said, very nice clock! It never occurred to me that you could indicate the Sun's position that way.</comment></comment>


Lessons Learned from a Private Beta Release - <AUTHOR> http://blog.beeplapp.com/lessons-learned-from-a-private-beta-release/

<comment><USER2> If you're building a product and your product's blog doesn't provide link directly to that product so I can figure out what your product is.... I automatically assume you don't have enough attention to detail to create a valuable product. Bummer.

<comment><USER3> I dunno if my bias against direct links extends quite that far, but I definitely do take a product less seriously when I click the 'home' analogue and get taken to the root of their blog and not the app.

It's such a simple thing that people seem to overlook so frequently too.

<comment><AUTHOR> From a UX perspective, if you click on the logo or the name of the website you're at, would u expect to be redirected to another page, or go to the root of that page?

Look at buffe'rs blog: [http://blog.bufferapp.com/](http://blog.bufferapp.com/) Logo with the name of buffer goes back to the root. They added a "Whats buffer" link to point to the website.

<comment><USER3> No, I completely agree... but in this case, the link I clicked was separate from the rest of the nav, and titled "BEEPLAPP", which (to me at least) connoted a link to the app, and not the blog's home page.

Buffer's title is equally vague, but I don't have to question it there because there's the giant Hello bar at the top with a link to the app.

<comment><AUTHOR> Ohh, I see! YOu're 100% right. Will have to put something like hello bar there :) Thx!

</comment></comment></comment></comment></comment><comment><USER4> Since you implemented all those tools, the next obvious question is: what does the data say? ;)

<comment><AUTHOR> It made it clear which next feature should be built. I can literally predict now what each new user will ask for ;)

Those tools also taught me that I need to redo the landing-page ;)

Stay tuned as I'll write another post soon :)

</comment></comment><comment><USER5> Interesting..</comment>


Global in-app purchases for iPhone - <AUTHOR>

Hello everyone.
I'm a product manager who works for a small internet company that is developing an iPhone application for a social network. We monetize by offering limited and premium memberships to users (premium members get additional features not available to limited members). For billing on the web, we use a 3rd-party payment gateway that is nearing retirement, and will be replaced by an in-house solution.
The business wants a global launch for our iPhone app using iTunes + in-app purchasing as a payment gateway. The problem with going global using this payment method is that for our web service membership level, available features, and subscription costs are defined by country. For example, in the US premium/limited memberships are available at 5 pricing tiers; in France premium/limited memberships are available at 5 different pricing tiers from the US; and in Chile the service is available for free and all features are available to users.
Is it possible then to have the server-side, based on the user's country of registration, control the level of access, features, and payment options for users on the iPhone? I'd also note that since iTunes Connect does not allow variable pricing by currency and country, each "region" would need 5 in app purchase options.
I argued for a US-only launch for iPhone using iTunes in app purchase until an in-house payment gateway is available. But you know... <comment><USER2> Yes, it is possible. Use a mixture of various in app purchases and only display the appropriate ones to the end user based on their locale.

Note, it's not possible (afaik) to determine their country based on any hard data from iTunes, as you are not privy to any account information or sales receipts (for the initial download) from that user. That means you will have to rely on the user to choose their country.</comment>


Klib: A standalone and lightweight glib - <AUTHOR> https://github.com/attractivechaos/klib <comment><USER2> This is really not a "standalone and lightweight glib", this is a generic data structure library in C, and it's quite blatantly obvious they're designed for different purposes.

glib is a platform and portability library that evolved away from gtk+, with the goal being to make event driven programming simpler, both for system daemons and Gtk+ applications. Most of glib's data structures are highly _unoptimized_ simply because they don't need to run in critical paths of whatever applications they're used in; optimizing would be mostly premature (with some caveats; GSequence was added because of the need for a higher performance list-like container , GHashTable got a lot of love a few years ago because it turned out to be awful, etc). glib is ABI stable(-ish).

klib is written for doing data analysis and serialization in C, with two releases in four years and no stability claims.

The two can co-exist quite nicely - I can easily see a glib application using klib data structures along critical paths.

<comment><USER3> I'm surprised the title hasn't been changed. The actual website says "generic lib" and at no point does it draw a direct comparison with glib. Usually these things are changed much faster.

</comment></comment><comment><USER4> If anyone's interested, here is a blog post I wrote a while back about a subtle pitfall I encountered while using klib:

[http://blog.qoid.us/2014/04/10/klib.html](http://blog.qoid.us/2014/04/10/klib.html)

(Since then, after a few rewrites of similar generic containers using various implementation techniques, I've settled on a style that minimizes the use of macros in favor of inline functions [generated from an initial declaring macro], adding verbosity but making the whole thing much easier to get right.)

<comment><USER5> his macros are truly evil. i wish he would have stayed with nicer c++ stuffs ut on compiler challenged platforms...

</comment></comment><comment><USER6> Is making so much use of macros for code generation really suggested practice in C? It seems like it would be difficult to debug.

<comment><USER7> I think that macros are the only real option if you want to have an interface for multiple types and still have some semblance of type-safety. The only alternative I can think of is writing code that takes void* everywhere.

<comment><USER8> There is also the approach used for linked lists in the Linux Kernel: [http://kernelnewbies.org/FAQ/LinkedLists](http://kernelnewbies.org/FAQ/LinkedLists)

</comment></comment></comment><comment><USER9> All I have to say is that uthash and company was a lifesaver in my must-be- written-in-C compiler course. It really, really simplified things. Of course it can't just be bolted on, you need to write your code with some crazy macros.

[http://troydhanson.github.io/uthash/](http://troydhanson.github.io/uthash/)

</comment><comment><USER10> Does anyone know why it's called klib? I don't know about the prefix "k", but guess it's borrowed a lot of kernel codes?

</comment><comment><USER11> Nice library, and beautiful implementation.</comment>


What Will This Print? - <AUTHOR> https://play.golang.org/p/KpXrgRb3XZL <comment><USER2> It looks right to me? I don't get it...</comment>


Pak Warns of "Surprise", Calls Nuke Authority Meeting After Indian Air Strike - <AUTHOR> https://www.ndtv.com/india-news/indian-air-force-iaf-strikes-pak-warns-of-surprise-calls-nuke-body-meeting-1999812?pfrom=home-topscroll <comment><USER2> I could not make heads or tails of this article until I read it. The title could use some work.</comment>


Erlang/OTP – The fastest, cheapest way to build reliable clusters of computers - <AUTHOR> http://erlangotp.com/ <comment><USER2> Just linking processes together is not enough to build a cluster. How do you allocate the physical resources, deal with network splits, package and deploy new code, monitor... There's a whole layer that's missing there that would surely be nice to have. The OTP framework could even be used to sandbox in LXC and start other type of applications.

<comment><USER3> That is what LING (formerly erlang-on-xen) is here for: [http://erlangonxen.org](http://erlangonxen.org)

<comment><USER2> It's pretty cool but I don't think that it's open-source.

<comment><USER4> It seems to have an open-source, copyleft, non-GPL license [1].

[1] [https://github.com/cloudozer/ling/blob/master/LICENSE](https://github.com/cloudozer/ling/blob/master/LICENSE)

</comment></comment></comment></comment><comment><USER5> For an Erlang OTP page it doesn't cover much OTP :-) It doesn't even mention gen_server.

<comment><USER6> Gripe: OTP should be renamed. The name serves no purpose these days. Rename it "Erlang Design Patterns" and be done with it.

Ever try to tell someone about "Erlang/OTP?" They ask "What's OTP?" Then you begin a 30 minute speech about the history of Erlang and phone switches (agile web ninjas ain't got time for 80s telecom stories) and how all modern fad problems were solved 20 years ago.

Erlang is great, but the core Erlang devs don't understand "web things." See their arguments against why Erlang shouldn't support JSON: [http://erlang.org/pipermail/erlang- questions/2014-March/0782...](http://erlang.org/pipermail/erlang- questions/2014-March/078228.html)

<comment><USER7> Yea, why understand your problem space and learn from history.

If only Erlangers spent more time on marketing and less time on building things!

<comment><USER6> Marketing has always been as important as making things.

These days, someone launches a new open source product with an _insanely well designed web presence_. This open source project has a better visual design than I could make in two months: [http://www.serfdom.io](http://www.serfdom.io) (along with the related [http://www.consul.io](http://www.consul.io)).

Erlang is still stuck in "my first bootstrap page" mode of marketing (which is an improvement over the old version which was My 12 Year Old Neighbor's First Webpage mode).

Erlang is designed to appeal to people who already like Erlang. It doesn't get all the new programmer hyperfad attention of things like Go, but people who know how to use Erlang properly do amazing things more reliably in shorter timeframes than other programmers even know how to think about.

<comment><USER8> >Marketing has always been as important as making things.

This is post-modernism gone mad.

<comment><USER6> If you make something and nobody knows about it, did you actually make it?

Richard Hamming, May 1986: _you should spend at least as much time in the polish and presentation as you did in the original research. Now at least 50% of the time must go for the presentation. It 's a big, big number._

<comment><USER8> >If you make something and nobody knows about it, did you actually make it?

Of course I did. You seem to be confusing things that you use for things that you are trying to sell (e.g. if you are an an academic, you want to sell your research as valid and worthwhile.) I use tools that I built to do work, and I've never spent a moment trying to sell the tools, but I actually made them. Some things in this world aren't even open source - people use them to make money, and never reveal them to anyone. Erlang started as an internal project, and people had to bargain to get it released externally.

You're drawing a false equivalence between marketing and substance. Erlang is doing billions of dollars of business. I love to talk about it, but the fewer people that know it, the better for me professionally. People have no idea how easy it makes everything.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I wrote the site, fire thoughts at me @gordonguthrie or firstname.lastname@example.com

<comment><USER9> Oh, yeah, in response to asking this question here [https://news.ycombinator.com/item?id=7277797](https://news.ycombinator.com/item?id=7277797)

</comment></comment><comment><USER10> It's almost like frameworks can't ever solve all of our problems.

</comment><comment><USER11> Isnt Docker + etcd a higher level abstraction of erlang/OTP ?

<comment><USER12> Not even remotely.</comment></comment>


This American Life's Alex Blumberg Podcast on Starting a Startup - <AUTHOR> http://hearstartup.com/

<comment><AUTHOR> Alex Blumberg of This American Life and NPR's Planet Money has created this fantastic podcast on his personal experience on starting a startup.

It's a very interesting listen. Check it out!

<comment><USER2> Hearing Sacca live re-write his pitch and deliver it back to him 100x better in episode 1 was amazing.</comment></comment>


Show HN: Blockchain GPUs Unchained-Running Neural Nets Without Hurting Hash Rate - <AUTHOR> https://medium.com/@SnarkAI/blockchain-gpus-unchained-running-neural-networks-without-hurting-mining-hash-rate-38a88728a1c9 <comment><USER2> Being a GPU mining farm owner (currently mining ZCash) I believe this is life- saver for the current days - especially, when GPU mining is slowly dying out.

I can still keep mining on coins - but earning sidemoney, if I understand everything correctly :)

Good job! Looking forward to see more dev news!</comment>


One year in, it's still Steve Ballmer's Microsoft - <AUTHOR> http://arstechnica.com/business/2015/02/one-year-in-its-still-steve-ballmers-microsoft-satya-nadella-just-runs-it/

<comment><USER2> argues that all the initiatives were in the works. Of course they were; Microsoft tries everything and releases some of them. The difference is in what gets released and what gets shelved. That has indeed changed.</comment>


The Postgres and Illustra Codelines - <AUTHOR> https://dl.acm.org/doi/pdf/10.1145/3226595.3226623 <comment><AUTHOR> This is a fascinating history of PostgreSQL written by Wei Hong, one of the Michael Stonebraker's students, and an early contributor to PostgreSQL as well as its commercial version, Illustra. Found the link in this thread: [https://news.ycombinator.com/item?id=23529954](https://news.ycombinator.com/item?id=23529954).</comment>


Dear Airlines: Please Don't Take Away Our Video Screens - <AUTHOR> http://www.askthepilot.com/seatback-video/ <comment><USER2> I've always hated the video screens on planes, so for me it is good riddence.

But I'm a book / laptop guy who grew up w/o a TV happily. (Yes, I grew up in the US)</comment>