We built network isolation for 1500 services - <AUTHOR> https://monzo.com/blog/we-built-network-isolation-for-1-500-services <comment><USER2> Locking down this network of services is a massive security improvement and they've used some very neat ways of achieving it. Overall, I really appreciate them writing this up.

However, 1500 services? That really feels like they're separating things at too granular a level. Does every one of those things really need to sit behind a network call? Couldn't some of that re-use be via code libraries? I wonder what the service to developer ratio is?

<comment><USER3> Code libraries in microservices can lead to a distributed monolith. each service needs to be be able to evolve independently. if you end up with a library where an update will require more than one service to be updated at the same time, then you are losing the advantage of microservices.

nevertheless 1500 is a lot, but if you think it's a lot, wait till someone builds out their entire business with lambda/serveless. :-)

<comment><AUTHOR> Yeah, our (mostly) ban on shared code is a major reason we end up with a lot of services; there's even service.business-day which tells you if a day is a working day

<comment><USER2> I'm interested in the term "distributed monolith" and why shared libraries are bad, can you elaborate? (I'm an experienced dev who's never worked on micro services). Say a service that consumed 6 other services became a service that consumed 3 other services and 3 libraries. The interfaces were the same, the libraries are consumed via package management and have good test coverage. Why is that worse?

I'm actually not surprised you have a service for handling working days. The list of UK bank holidays should ideally be stored in one place, with everything else consuming that. But not all of the 1500 services have their own data stores, do they?

<comment><USER4> It seems crazy to me that you'd have to do a HTTP(S) request to find out whether a day was a working day. A HTTP(S) call which then probably does a DB lookup over the network. Just seems like an extra layer of overhead, when you could just have a library instead.

I've never worked on microservices, so I may just have a fundamental misunderstanding of how granular you're supposed to be & also don't know if this is the norm.

Would be nice to hear some other opinions on this.

<comment><USER5> Figuring out whether today is a working day is actually a dynamic problem. It is different for every locale, and it changes more frequently than one might expect.

It's actually a great example of something that changes rather frequently, and it's a concern that cuts across dozens (or in Monzo's case, maybe hundreds) of services.

Causing a roll-out to hundreds of critical business functions (whether hosted in a monolith or microservices) because Uganda added a holiday seems quite excessive.

The rule I and my company follows is that the shape of a module should follow its deployment model and scope. Some services are global in scope (literally targeted at the earth) others are scoped to a small subset of our inner network. They should have a different code repo because they have a different rollout schedule.

In the case of the working-days services. Only 1 rollout needs to occur, and it seems like a fairly safe rollout.

Let's consider another service, the CriticalTransactionService, or CTS. It executes critical business transactions in a very stateful way. When deploying a new version, in order to avoid any loss of availability, often a special rollout dance must be executed. E.g. switching the master transaction writer to another region, which means changing databases from passive replication to active master, and vice-versa.

One might consider this rollout "risky" and therefore only limits it to happen at 3am on a Saturday. It seems like a good idea to limit the scope of this 3am Saturday rollout only to the CriticalTransactionService, and most other services are free to deploy to prod whenever they wish.

<comment><USER4> I guess what I don't get is that the service needs to be rolled out/restarted too.

Doesn't the data just live in a database & there's a cache going on that can be invalidated?

Or is everything just so overcomplicated these days?

<comment><USER5> This particular case could be a couple tables in a database. To follow proper encapsulation guidelines, it would have to be front-ended by some stored procedures, so that the underlying representation is free to change.

How would you roll out this change to production? If you just swapped out tables and stored procedures, you'd have downtime. You can't just install a parallel table and stored procedures, because there is no way to tell all of the consumers to use the v2 of your functions. So you'd have to temporarily remove availability of the WorkingDays functionality.

If it were deployed as a microservice, you are free to deploy a v2 of WorkingDays in parallel. When it's live, the old one goes away, and there is no loss of availability.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Great post. I really appreciate engineering blogs written in this storytime format. I don't have time to dive into the implementation of Calico or <insert one of the 1,261 kubernetes projects here> _, but I learn a lot from reading the process a team goes through in figuring out and iterating on a solution.

_ [https://landscape.cncf.io/](https://landscape.cncf.io/)

<comment><USER7> What is the purpose of the link at the end of your comment?

<comment><USER8> It's a ref for his "1261 k8s projects" statement.

</comment></comment></comment><comment><USER9> Another potential solution is to use a constraint solver like MSFT Z3, or if you want a nicer syntax and more flexibility, Prolog.

E.g. [https://medium.com/@ahelwer/checking-firewall-equivalence- wi...](https://medium.com/@ahelwer/checking-firewall-equivalence- with-z3-c2efe5051c8f)

This is much more scalable in the long run.

</comment><comment><USER10> If the authors are reading this I was wondering two things:

1\. Why was static analysis of the code chosen over observing the system during runtime and integration testing?

2\. What was the reason rhe CNI layer was chosen for the implementation of this over the service mesh layer?

Something that really interests me about bazel/buck/pants/please is it automates #1 entirely with dep queries.

<comment><AUTHOR> 1\. We have a lot of code paths, there isn't an integration test for everything. And for runtime, just because something is rarely called doesn't mean it never called; a bank can have yearly processes 2\. We'll do service mesh too but this was probably an easier first step. We have rolled our own mesh with envoy sidecars and moving it towards istio style behaviour isn't trivial

<comment><USER11> > We have a lot of code paths, there isn't an integration test for everything.

but you will have the service names that you're contacting configured somewhere (or in the worst case hardcoded). I would think this is much easier to analyze than the traffic flows.

<comment><USER12> It's done by importing a protobuf, so I imagine rpcmap just checks all the protos imported by a service

<comment><AUTHOR> It's slightly more complicated than that because you can import protos to use a constant or to consume an event from another service. But that is the gist

</comment></comment></comment></comment></comment><comment><USER13> Applying network filtering, while being a nice extra layer, it should not be the only layer. Services should need authorization like if it was an open api.

<comment><AUTHOR> Completely agree

</comment></comment><comment><USER14> "But we already have over 1,500" wow... I would start there...

</comment><comment><USER15> > attempt to find code that looked like it was making a request to another > service.

> We generally fixed those cases by adding a special comment in the code that > told rpcmap about the link

Why not enforce all endpoints/urls be defined in a config file and sidestep this? - scanning code for URLs/constructed URL is overkill and brittle.

</comment><comment><USER16> Nice write-up! Thats the beauty of scale, explain a part in detail, then go with the 30,000 foot view.

IMM, the security orchestration may actually become the "app" as speeds continue to increase, compute costs go even lower and losses incurred from compromised data/networks increase.

A true zero trust platform that keeps all of the doors closed or "instances/vm" offline until (the milliseconds) they're needed is the security symphony we might see on the horizon.

Data silos and walled gardens may never go out of style, they'll just take on new acronyms.

</comment><comment><USER17> Strikes me that some services ideally need to expose multiple interfaces, and that isolation should be on a per-service-interface basis.

E.g. the monitoring service should only be able to access the metrics part of each service.

<comment><AUTHOR> Monitoring can only access metrics, it's scoped to port. We'd like endpoint level controls and that's the next step

</comment></comment><comment><USER18> Impressive achievement. It still sounds like callee's have more knowledge of callers than is justified. Is it a security property or a component functionality property? How do those interact?

A centralised graph representation of the security/functionality properties would be a better way to represent this information, so it can catch adding interfaces which should be forbidden. Also able to be configuration managed as sets of microservices.

If you have a connectivity graph it would be good to do taint analysis to see how far bad information can propagate.

<comment><AUTHOR> I think we do effectively have a graph, but its not stored in a centralised way. If it was, then we'd have to somehow gatekeep that state, which when you consider that we do hundreds of deployments a day, becomes tricky

<comment><USER18> Then the state at present is changing hundreds of times a day, without being centrally visible, via runtime query or configuration service. Seems like it would be hard to retrospectively analyze what could connect to what. Maybe consider a permissive system, that allows a service code change to change the connectivity graph without a review step, but centrally logs the change; another service can supervise what's happening, and alert if strange things happen. It would help to have a system for categorising service types; the graph properties of the system might be useful for understanding that. Looking at service changes in terms of graph properties, like edit distance, can also be useful.

<comment><AUTHOR> I feel like we could do all of that by consuming the GitHub API. We essentially have directed graph stored as files

</comment></comment></comment></comment><comment><USER19> Nice work. If you define your policies based on a tagging taxonomy you could centrally manage these inbound/outbound service relationships. Every new instance or container would assume same network policies based on tag.

</comment><comment><USER20> Curious if you looked at using oAuth with client credentials grant for each service?

Also didn't see any mention of prior art like [https://cloud.google.com/beyondcorp/](https://cloud.google.com/beyondcorp/).

Thanks for the great writeup!

<comment><AUTHOR> This is probably our next project, although we might solve this problem with mutual tls instead of JWTs

<comment><USER20> oAuth generally won't give you JWT's. Its recommended it gives you an opaque token which you introspect. Whats nice is you delegate the Auth part to your AS. And then your resource servers (micro-services) can make the determinations based on the client_id/claims from introspection.

</comment></comment></comment><comment><USER21> > This would read all the Go code in our platform, and attempt to find code > that looked like it was making a request to another service.

Is there a link about how much Go does Monzo they use?

<comment><USER22> Almost all of the micro services referenced are written in Go.

</comment></comment><comment><USER23> 1.500 services? What the... the run times for calls must be _atrocious_ with all the network communication and latency that is happening.

<comment><USER24> It does not have to be. But that is the least of your worries, even so there might be valid reasons for setting things up this way but it would be a relatively rare case. They do have 150 devs and that alone is a difference that makes this approach untenable for most companies.

</comment></comment><comment><USER25> Can a service mesh such as Istio provide the capability that Monzo have implemented themselves here?

</comment><comment><USER26> Using YAML for critical infrastructure specification is one of the stupidest things we've ever done as an industry.

<comment><USER27> It's better than XML!

<comment><USER18> When you see how many parsing ambiguity problems there are with YAML you begin to wish for XML. Other modern alternatives include:

[https://jsonnet.org/](https://jsonnet.org/)

[https://json5.org/](https://json5.org/)

See [https://arp242.net/yaml-config.html](https://arp242.net/yaml-config.html)</comment></comment></comment>


Rate my web app: 360 Voltage is in Alpha (see comments) - <AUTHOR> http://360voltage.com Good morning, HN. We've been slaving for months and we're finally launch-ready.
This community was so amazing last time we launched a web site that we're taking our own advice (http://blog.200nipples.com/2008/07/launch-the-first-24-hours/) and doing a Hacker News launch. We're basically in Alpha right now, we'll be in Beta next week with all initial features online by 4th quarter 2009.
Anyway, this site was built with guys like you in mind, so let us know what you think. <comment><USER3> I tried it out and got some very interesting and probably useful results. For those who do not want to register: [http://360voltage.com/voltmeter/?u=c0175cf2-d8a6-102c-aea2-0...](http://360voltage.com/voltmeter/?u=c0175cf2-d8a6-102c-aea2-003048c3ab50)

Bugs: The url field disappears on my iphone when it gets focus. Works fine on my laptop.

The logo links to <http://index.php/>

</comment><comment><USER4> Try it right now by clicking "Run Voltmeter" forces me to join. No thanks.

<comment><USER5> I noticed that too but in their defense the signup was ridiculously painless. Only required a login and password. Email was optional. No confirmation required.

<comment><USER6> People reuse usernames and passwords, so even though it is painless, now they will have a database of usernames and passwords which can probably be used in a lot of places. Thus, I only sign up for new things rarely and only for things in which I suspect I will need to use frequently.

<comment><USER5> Hmm... I guess you have a point there. It's frustrating a bit as a developer because in all likelihood if they've done their jobs as developers they DON'T have access to your password at all. The problem is how do you trust a new site when there are obviously some (many?) out there that still use plaintext for passwords? Anyone have a solution for that? Some type of security audit w/a badge that your site can display saying "Hey, we DON'T store your password or have access to it!"

What would you say if they instead used some form of OpenID system (RPX Now or something) so you didn't have to give them your password? Would that help?

</comment></comment></comment></comment><comment><AUTHOR> Good morning, HN. We've been slaving for months and we're finally launch- ready.

This community was so amazing last time we launched a web site, that we're taking our own advice ([http://blog.200nipples.com/2008/07/launch-the- first-24-hours...](http://blog.200nipples.com/2008/07/launch-the- first-24-hours/)) and doing a Hacker News launch. We're basically in Alpha right now, we'll be in Beta next week with all initial features online by 4th quarter 2009.

Anyway, this site was built with guys like you in mind, so let us know what you think.

<comment><USER7> My thoughts: 1\. Like most people here I didn't really like to have to login to see anything, especially with the bait-and-switch approach. I think you either need to show a random result for people to see, or let them do a single search and log an IP address to something (difficult as I guess multiple people from one company can have same IP). Another option would be to show a reduced set of information maybe show 1 or 2 of the test results in full and all the rest just have the % without clarifying what is good and bad?

2\. Site looks really nice. I like the blurb and the site makes me want to put a URL in and find out more

3\. Personally I think it is pricey. I would have thought perhaps a per domain model or the like might work better - $10 to track a domain for a year - <USER2> alerts when it goes down or up in score etc? $20 a month might work for some design/development agencies because they can test loads of sites, but I think you are limiting to your target market majorly if you do that.

I've never heard of Amazon payments before so I'm pleased I took a look at your site - I learnt something! I think a lot of business people will prefer that over google and paypal etc.

Good luck!

</comment></comment><comment><USER8> I just tried it and it works great - I like that it produces real suggestions/actionable items.

</comment><comment><USER9> After the initial bait-and-switch annoyance, the app looks great, and it generated some very useful information. Now I need to look into improving my site's rating. :)

I'm definitely going to consider signing up for a pro account as you roll out additional features. I think if you fix that one minor UX problem this could be a very useful tool.

</comment><comment><USER5> Great idea for a site and I love the look of it right now. Simple to see what the site does and visually appealing.

You should add your site to my startup launchly (<http://www.launchly.com>). I started launchly (with a HN launch as well) to try to help other startups get the feedback and exposure they need to succeed. It also comes with some powerful analytics to track how your launch is performing. Oh and it's free too so that helps!

*Edit. ROFL... "it seems like this is taking awhile... maybe you should grab a sammich"?? Ok that's the first time I think I've had a webapp suggest I go eat while it spins. Awesome.

Also you have a typo here "Upgrade to PRO now to lock in current pricing (over 50% off) for as along you have your subscription." Should be "for as long" not "along".

<comment><AUTHOR> Typo is fixed. We'll be on launchly next week.

</comment></comment><comment><USER10> I noticed for my site that we are getting slightly different scores based on whether we submit pagerduty.com or www.pagerduty.com. We have it set up so that pagerduty.com does a 302 redirect to the www. The Voltmeter app should see both of these as a single domain.

The problems I have noticed:

* For pagerduty.com, the "Keyword Targeting" section shows: 1) moved, 2) permanently, 3) nginx. Looks like it does not follow the redirect.

* For the "Incoming Links" section, I get different results for pagerduty.com and for the www. Again, you should combine the 2 resultsets, as some people might link to the www and others to pagerduty.com.

* In the "Search Engine Index Inclusion" section, it says Pages Indexed by Bing: 68. We don't actually have 68 pages, so I don't see how this is possible.

<comment><USER11> Why are you doing a temporary redirect rather than a permanent (301) redirect?

</comment></comment><comment><USER12> I love the actual product and results, very clear and concise (although it'd be nice to allow users to probe for more information if they want). However, the process to get there was not as simple. I definitely almost bounced a few times. The homepage did not make it clear what the product was about in the first few seconds (for most users that's all the time you get. Maybe some screenshots would clear that up) The first thing the user should probably see on the sign up page is that an email address is NOT required (maybe not include it in that form but after the test is run allow the user to get weekly tests sent to this email which he then has to input). Overall, a very promising site that I would use again. As for the sign up funnel its nothing that website optimizer can't fix

</comment><comment><USER13> Instead of blocking the search you should let the search happens and show in some place, please create a user for have access to the features X, Y and Z, but stopping the user when they click in "run voltmeter" doesn't do a good impression.

</comment><comment><USER14> Minor but helpful in UI: put s on your checkbox text, like "Remember Me", so I can click the words.

Also, it'd be awesome if you could show me which pages were 400/404. A number on it's own isn't too useful in improvement.

</comment><comment><USER15> The "You must be logged in to do that. Log in (or create an account real fast) and we'll send you on your way." text is almost unreadable for me (Opera?). Thin red monospace font on big fat red background.

Good job on making your frontpage usable without Javascript (probably a SEO thing, heh). It is not very beautiful but all information is accessable.

Maybe show some examples of what one gets from the Voltmeter? Why would I give away my mail address for something I don't know much about. I too find the "Run Voltmeter" -> "Oh nonono, you have to signup!" questionable.

<comment><AUTHOR> Changed the styling on that message. You don't need ot provide an email address to sign up. We've tried to point that out more clearly.

</comment></comment><comment><USER9> Sort of unrelated to the app, but your blog is very difficult to read on Windows. ClearType combined with the small size of Adobe Garamond Pro makes it very difficult to read. Maybe try a web-safe font like Georgia?

<comment><AUTHOR> I went ahead and changed it all to the sans-serif. This was a point we were back and forth on anyway. Thanks for a push in the right direction.

</comment></comment><comment><USER16> Errored for me on my first try (just a simple 500 in an alert box, that's it)... So I tried a different URL and it yelled at me about upgrading to get 'more reports per day' -- I haven't even got one yet!

:/

<comment><AUTHOR> Ugh, sorry- that's a crap use-case. It's on the bug list.</comment></comment>


Rock-paper-scissors-lizard-spock - <AUTHOR> http://en.wikipedia.org/wiki/Rock-paper-scissors-lizard-spock

<comment><USER2> How come is a link to an old wikipedia article so valuable and new? I call shenanigans on this!

<comment><USER3> This is HN on Sundays....</comment></comment>


Racial Fault Lines in Silicon Valley - <AUTHOR> https://blog.devcolor.org/racial-fault-lines-in-silicon-valley-390cd0e4a6dc <comment><USER2> I have a caveat to add to the author's assertion that discussing race becomes easier with practice. That's not always true in the short run, but I agree that it is in the long run, assuming good faith on both sides.

What I've found is that it depends on so many variables between the people wanting to have the discussion that it's entirely unpredictable how it will turn out - and often unpredictable even if it's the same two parties with discussions separated by time.

I'm a white man married to a black woman. We've known each other over 35 years. We've had discussions on many aspects of the racial divide over the years, of course. I think that I understand her point of view as a black woman much better now than I did in the '80s, or '90s, or '00s, though even today she may say that I just don't get it. (And I think she understands where I'm coming from better, too.)

But the effort has been worth it. It's just very, very difficult sometimes to have such discussions.

As far as the substance of his experience with the interviewer, sadly, I completely believe it and am not even surprised. The author handled himself with dignity at every step. It had to take a lot of courage to tell it straight when the session on interviewing brought it all back up years later. So what everyone went silent? Their discomfort isn't comparable to what I suspect his was.

Telling the truth is always worth it, especially when it's hard. Hopefully sharing his negative experience helped at least one person in that session to reconsider what they probably considered to be long-settled (and probably vague) opinions about their own rightness in this regard.

tl;dr: It's easy to learn to avoid saying what you really feel and think when you're in a work environment and you know there could be repercussions. It's hard to challenge yourself and others to go beneath the surface, but the rewards are great.

<comment><USER3> > "It's hard to challenge yourself and others to go beneath the surface, but > the rewards are great."

The author of the post seems entirely reasonable and I'd love to have a discussion with him about this type of stuff.

The problem, at least for me, is that it's difficult to tell upfront who's reasonable and who is not. What I mean by reasonable is someone who will put forward an honest effort to have a discussion, as opposed to deliberately trying to insult the other party (like the CEO from the article), or deliberately trying look for unintended missteps and immediately paint the opponent as some kind of racist monster (like some POC).

I used to be quite honest about these things; now with more experience I think I am less so.

This seems really sad, and like a step backwards, but I don't really see how to solve it without somehow being able to guarantee the other party will cooperate. Of course, if it is your wife, I'm sure you trust her a lot and she trusts you as well, which facilitates the discussion. However, realistically the vast majority of these discussions will be between people who not only don't trust each other as much, but they might even see each other as foes/adversaries.

In that scenario, I'm not sure it's a good idea to "challenge yourself [...] to go beneath the surface".

<comment><USER4> While in general, there are sometimes people who feel put upon and don't feel like answering questions and/or having that difficult discussion of race, a job interview isn't the place to have it.

The power dynamic is too skewed for you get anything like a real answer to your question. If the question was designed to see how the interviewee handles pressure than that's a shit move to do.

Either way it's a terrible question. Also, it's an unfair one because other white applicants aren't getting this question. By definition, there really isn't a way for a white interviewer to be able to judge how well the interviewee responded to "Why isn't it OK to say n __ __r ". It can easily end up feeling like a personal judgement or worse a judgement on a person's entire race of which there is no way they could represent every perspective.

The fact that it was in a job interview just shows the that interviewee either didn't understand the context of the question which is strong evidence that they are probably a bad manager or they didn't care, which is even stronger evidence of a bad manager.

<comment><USER5> "The fact that it was in a job interview just shows the that interviewee either didn't understand the context of the question which is strong evidence that they are probably a bad manager or they didn't care, which is even stronger evidence of a bad manager."

By "they" you mean the CEO, right? Because it scans as though you mean the interviewee.

</comment></comment></comment></comment><comment><USER6> > "Why do all the Black kids sit at the same table at school?" ... "Why is it > no longer okay to say n __ __r? "

WTF. Offensive or not these questions are plain dumb. He must have been trying to illicit a reaction from Makinde.

Reminds me of the SNL skit where Richard Pryor is being interviewed by Chevy Chase doing word associations.

[https://vimeo.com/117983862](https://vimeo.com/117983862)

<comment><USER7> My sense is that he was making sure that Makinde wouldn't be too politically assertive about race issues. Borderline illegal most likely, apart from being exceedingly and odiously offensive.

<comment><USER8> > ...he was making sure that Makinde wouldn't be too politically assertive > about race issues.

I think that gives him far too much credit. It's no different than if you asked someone "Why is it offensive if I grope you, hit on you, and imply that sexual favors will advance your career?" It smacks of complete obliviousness to social issues at best, which would make the interviewer extremely unqualified to screen interview candidates for anything other than pure technical qualifications. Which, in this instance, they were obviously conducting an at least partially non-technical interview.

My suspicion is it's an aggressive move, to make sure that the racially insensitive and/or offensive status quo can be maintained with the interviewer betting heavily that their actions would not be called out post-hoc and that any candidate who was offended would walk away quietly. The people creating such a climate can claim an attempt at stimulating diversity, but that their job offers are turned down.

It's unfortunate that we don't know who did this nor does it appear that their company was contacted/informed about the inappropriate behavior of one of their employees.

</comment></comment></comment><comment><USER9> That was a really ridiculous question to ask. I'm brown and if someone asked me about middle eastern politics during an interview or worse made some low quality comment, I would promotly get up and leave. I don't have the patience for that in a professional setting.

On a separate note

> /dev/color is a community of black software engineers who help one another > reach career goals. To learn more, check out our website and follow our blog > & twitter account.

Then why not call it /dev/black? I find it confusing. Does "color" imply black? I have been called a "person of color" before, due to my brown skin and middle eastern features.

<comment><USER10> color is any ethnicity that's not "white". In the U.S. it's mostly used to refer to black people, but Asians, Hispanics, etc are also considered "colored"

<comment><USER11> I have never heard of an Asian referred to as a person of color

<comment> chao- I have never heard an Asian referred to as "colored" in a derogatory manner.

However, I know several Asian Americans (both East Asian and South Asian) who frequently use the phrase "person of color" with respect to themselves.

</comment></comment></comment></comment><comment><USER12> _Shockingly, his first question had nothing to do with technology. "Why do all the Black kids sit at the same table at school?" he asked. I was taken aback but tried to explain the social dynamics that might be at play. He followed with, "Why is it no longer okay to say n_ __ _r?"_

That's just insane. What on earth would make someone think those questions are anything relevant to work?

Maybe it's because I'm a "person of color" \- even though I'm not "black" \- but race is the last thing on my mind when I'm interviewing candidates or trying to push a new release to production. I've been patted down by store managers because they thought I was suspicious. I've been turned away from bars/clubs because I would "cause trouble." None of these things relates to how I comment on code, implement a design, build some architecture etc...

 _Conversations like this are difficult to have in the workplace, but ultimately necessary in creating an inclusive environment._

Sorry I disagree here. I don't think they are necessary. It's certainly helpful to relate to and have a great relationship with your fellow co- workers, but there are literally hundreds of other aspects of someone's life to get into other than ethnicity, sexuality or religion - the hottest button issues around.

That is taking into consideration that race is such a big part of daily life for black and "dark" people. If nothing else work should be a place where race questions aren't even in the air.

<comment><USER13> > If nothing else work should be a place where race questions aren't even in > the air.

If only that were possible. Sadly, people have blended their work, public and private life so much that it seems to me that everything is about everything now. The concept of different spheres is now dead and buried. I'm not sure that was a wise move, personally.

I also wonder, now that "meritocracy" is a bad word, what can we use to promote the idea that you can earn something through talent? I mean, we are now denied use of the word that literally means "a place where you achieve based on talent", so how do we even have a discussion about this? It seems the idea of a workplace where you get what you earn is no longer possible to discuss, so how it can be implemented is beyond me.

<comment><USER14> A bit off-topic: The word "meritocracy" carried negative connotations even at its birth. From Wikipedia:

'Although the concept has existed for centuries, the term "meritocracy" was first coined in the 1950s. It was used by British politician and sociologist Michael Young in his 1958 satirical essay The Rise of the Meritocracy, which pictured the United Kingdom under the rule of a government favouring intelligence and aptitude (merit) above all else... In this book the term had distinctly negative connotations as Young questioned both the legitimacy of the selection process used to become a member of this elite and the outcomes of being ruled by such a narrowly defined group.'

</comment></comment></comment><comment><USER15> >>>Ask If It's Okay. You might have follow-up questions or a thought to add. Don't assume I'm ready to, or want to, have a deep conversation about the issue right then and there. If I'm not ready, be okay with that. What seems like a simple question for you, might have a deep, complicated response in my mind <<<

This is exact reason people do not want to go through, talking about race for many it is like walking on egg shells. Who wants to really do it? Not only people do not want to feel rejected, but also not be dragged into a drama or creating more drama.

<comment><USER12> Just don't ask.

Curious about how race impacts someone's life? Spend time with them. It will become very obvious without you having to ask anything and you'll get the benefit of being able to empathize from seeing it first hand.

Or, if you want to really try hard - work against your biological instinct to segment people into buckets based on physical attributes. Get to know _who they see themselves as_ rather than how you see them by finding out what is important to them.

Here is an easy start: Instead of asking "where are you from" a simple and innocuous question which reveals basically nothing about someone - ask "what kind of hobbies are you into?"

<comment><USER16> If you don't ask, then you don't learn. If you don't learn, then you don't have the data and knowledge necessary to make decisions that affect this. And you're making those decisions every time you walk to the ballot box, at the very least.

<comment><USER12> There are more ways to learn than asking. Like I said elsewhere, spend time with the person, get to know them. Make a new friend and experience their life. Chances are, those experiences dwarf anything else that they might care about.

 _you don 't have the data and knowledge necessary to make decisions that affect this_

What decisions are you making that are based on questions like "why do black people sit together at lunch?"

Look, I get it. Everyone wants to dive deep within someone else experiences ostensibly to be able to relate better or whatever. There is no shortage of these stories to be read in books, online or elsewhere. Where in my opinion it crosses the line is when it's in the work environment.

The only exception I can see for this is if your work revolves around deeply understanding or catering to a specific racial/other demographic that is not your own. That's problematic enough as it is, but in those cases it wouldn't be personal in the same way that these conversations seem to go.

The whole thing is voyeuristic.

<comment><USER17> Especially so when it is simple to look up what has been written about these kinds of questions. There is literally a book (quite well known) titled "Why Are All the Black Kids Sitting Together in the Cafeteria".

<comment><USER16> I think that, if someone had to actually write a book like that (and it sells, so people do want to know), that kinda reinforces my point... ~

</comment></comment></comment></comment></comment></comment><comment><USER18> (I am not black or american) I am going to come across as clueless here but why is that 'nr' is offsensive for black people.. and yet every movie with black people has them screaming this word all the time. And the rap music is filled with them. If they find it offsensive, why do they keep using it.

I have asked this to my local population here but we don't have the necessary insight into this phenomenon. Is there any parallels to this where it's ok to call each other something but others cannot call you that (so it can help me understand better)? Thanks!

<comment><USER19> If your mom calls you "honey", it's fine, if some guy you don't know calls you "honey", perhaps it's not fine. So, there are other examples of names that have different meanings depending on who is speaking to you.

<comment><USER20> I am non-white and American, so I'm not wondering what the GP comment is, but this example isn't very helpful at all. It's hardly rare for strangers to call people "honey" in everyday interactions, and I've been called that by men as well. Those men generally happen to be gay, but that says more about our attitudes towards masculinity and the way men can express themselves than anything inherently wrong with them saying that. The only reason I can imagine that would bother someone is that they're uncomfortable with homosexuality or old-fashioned about masculinity. (If this seems wrong to you, consider whether you'd find it weird if a female waitress or something called you "honey" and what exactly the difference would be if she was "some guy").

</comment></comment></comment><comment><USER21> For a few minutes after I was done reading Mr. Adeagbo's piece I wondered if maybe the story of his interview was made up or exaggerated. It's hard to believe someone would do something that mean-spirited (or perhaps just deeply insensitive). I thought to myself that, surely, people in tech don't actually say or do these kinds of things.

But I kept reading comments and the ones at the bottom put my doubts to rest.

<comment><USER22> I once worked at a large tech company... one of those ruthless fast paced ones. An interviewer liked to ask dumb things like

"what's your GPA"

<reply>

"Why is it not 4.0?"

or

"where'd you graduate from?"

<your school>

"Why not stanford?"

I can't tell if he did it because it was a useful technique to throw people off and test them, or if he was just a supreme dick. Either way the interviewer in the article went too far into illegal mode (interviewer training 101: never mention race, marital status, military service, etc)

</comment></comment><comment><USER23> Trying to imagine a case where this CEO is just inappropriate rather than mean spirited. The only idea that comes to mind is that the CEO was trying to guard against racial division. He wanted to avoid a situation where race mattered at all in his company, and was probing to see if this person was easily triggered along those lines. While twisted, it makes some sense since a job offer was actually forthcoming.

<comment><USER24> > He wanted to avoid a situation where race mattered at all in his company, > and was probing to see if this person was easily triggered along those lines

Of all the characteristics/dimensions that makes us human - why would he isolate race as a potential trigger and why is it important? Would you be equally ok with similar 'probes' for other start-up out-groups - women, LGBT, $RELIGION, left-leaners, right-leaners, weight, disablity? I mean, he could only be probing to make sure you being an Aspie won't matter to the company, _right?_

<comment><USER23> What makes you think I'm okay with it?

By the way, are you taking a shot at people afflicted with Asperger's syndrome by referring to me as an "Aspie"? It seems rather hypocritical of you if that's true.

<comment><USER24> The way you worded your comment sounds like you were justifying the CEOs behaviour. As for 'Aspie', I wasn't calling you that, but giving an example of a slur (most of HN would be more familiar with) that a hypothetical CEO might drop in an interview.

Perhaps my outrage scale is calibrated differently, but why is it to you 'Aspie' is taking a shot, and 'Nigger' is only 'probing'?

<comment><USER23> Didn't mean to justify the CEO's behavior, rather try to understand it in the sense of giving someone the benefit of the doubt. What's the best light you could think of other than him just being a straight out racist. I did say I thought it was inappropriate and "twisted".

The reason I thought "aspie" was a shot rather than a probe is because you didn't offer me a job afterward ;-)

</comment></comment></comment></comment></comment><comment><USER25> Feels to me like you handled it extremely well on both occasions. Thanks (really) for sharing.

</comment><comment><USER26> I wish it would be safe for those to out their offenders...I really wonder which CEO would think to ask such a ridiculous and offensive question.

<comment><USER27> Nah, there is little reason to out an offender if there are no witnesses. Then it becomes another he said/he said type mess and nothing gets fixed.

We have nothing in the story to determine race, background, or such, of the person asking the question other than to imply they should have known better. Well some accomplished people truly don't or worse they are beyond reach. There are some who act out of anger having experienced a bad situation and apply the reaction to all subsequent meetings with similar.

Sadly the word is bandied about in some crowds including highly technical groups and sadly bad members of the group normally slighted with the word.

tl;dr ignorance exists at all levels of society but going after it requires an abundance of proof and sometimes its best to use said occurrences to educate instead of persecute

</comment></comment><comment><USER28> Anyone giving interviews should completely understand that there are questions that you're not allowed to ask.

Technology is now hip and cool so we break the rules is no excuse for being ignorant of how to treat another human being.

</comment><comment><USER17> It's a hard decision to make, whether to tell people your perspective from a marginalized position. They feel bad and don't know what to do with that knowledge, or how to integrate it with their own different experiences. I love the bullet points of advice Makinde gives here for people hearing unfamiliar experiences from their coworkers or friends, to figure out how they can be okay with that discomfort.

</comment><comment><USER29> "When the recruiter called as congratulated me on getting an offer, I immediately declined, citing "severe cultural differences.""

It would have been great to see the recruiter's reaction if they had straight up said, "It's because your boss asked me why he can't say nigger." Although I can understand exactly why he didn't say that.

<comment><USER30> >I immediately declined, citing "severe cultural differences.""

a good guy. An opportunist in his place could most probably have scored a nice settlement for racial discrimination after few months on the job :)

<comment><USER29> I fail to see how he'd be an opportunist considering there's a very real chance of it happening.

</comment></comment></comment><comment><USER31> Courageous post!

</comment><comment><USER32> I see a myriad of threads about interviews on HN. They all say that you can't really code in an interview. You don't have your favorite tools nor any real projet or familiarity with a codebase. These threads will say that the interview should, at most, be there to help you see if there's a culture fit.

Now you have an interview where the guy asked questions that aren't related to programming and everyone is up in arms. Maybe it's because he did his homework? Maybe he already checked M. Adeagbo work and decided he wanted him in the company?

So now I suppose the interview isn't supposed to be used to check if someone is a good programmer... but it also shouldn't approach any subject that is emotional, because by gosh you wouldn't want to know how someone will react on a sensitive subject.

You guys must have the weirdest social interactions ever. Within an hour of meeting someone I usually "size" them by throwing curved ball designed to see what makes them ticks. That is exactly what I would expect in a well designed interview, especially if you are looking for culture fit.

Frankly, I find that these questions are well designed. Look at how I immediately answered them:

>"Why do all the Black kids sit at the same table at school?"

"Same reason Asians or Whites will do the same thing under the same conditions."

What can we deduce? Not much, except that I'm aware of basic biology/human behavior. Better luck in the next question...

>"Why is it no longer okay to say n __ __r?"

"It is okay, but you need to be of the correct race... and apparently that's not racist. (with a hint of sarcasm)"

Bingo! Now you known that when I talk of sexism and racism, I use the dictionary definition, NOT the new "minorities can't be sexist/racist" version.

And just like that, you know if I'm a good fit. (If it's in SF, probably not...)

>"/dev/color is a community of black software engineers who help one another reach career goals."

This is literally a racist club. ---> A group who discriminates based on race. Now, I have nothing against that... but you can't say a word if white clubs are created.

</comment><comment><USER33> I see people lying all the time in life, about everything, then I read stories like this and they seem cringe and unreal with no reason to believe they are true. But there is this pressure to believe them because its about sexism or racism and we should take this story as true because skepticism is bad, I find it really difficult to resolve these feelings of distrust, human beings are just overall untrust worthy.

EDIT: I guess I broke the #ListenAndBelieve rule.

<comment><USER34> I don't find it hard to believe. In most of the cases where someone said something inappropriate, it was at a mostly young startup that had some success and then hired some older, white, male executives.

At one company, a married black director, my boss, had hired a black woman as an assistant. A newly hired older white executive was asking around if she was hired because she was his side girlfriend.

At another company an executive went to a bar with one of the younger guys, and advised him to always hit on the "ethnic" women.

There's nothing new to what you're saying, plenty of white people in the U.S. south said there was no civil rights problem back in the 1950s and believed it. Most of those people thought some Jewish rabbi from 2000 years ago came back from the dead. People believe what they want to believe.

<comment><USER33> White men dont have a monopoly on racism.

<comment><USER35> >the exclusive possession or control of the supply or trade in a commodity or service

huh, seems like your attempt at hyperbole is actually pretty accurate

</comment></comment></comment></comment><comment><USER36> At this point it is appropriate to exercise skepticism towards claims of random acts of racial sadism that just happen to comport with popular "social justice" narratives.

[http://www.fakehatecrimes.org/reports](http://www.fakehatecrimes.org/reports)

<comment><USER37> lol. Black people are literally getting gunned down in the streets by our government without prosecution, but you think a couple of outlandish questions in an interview are implausible. Adorable.

<comment><USER36> Unlike a policeman who shot someone, I would expect actual negative consequences would accrue to a CEO who routinely behaved like that in technical interviews, and that _they_ would expect such negative consequences to accrue.

<comment><USER37> Interviews with black software engineers are not routine. Even if they were, folks like you would believe that people were making up their stories.

</comment></comment></comment></comment><comment><USER38> Sounds to me like a good test of character. It would be interesting if this self described 'black software engineer' would tell us who the founder/CEO was and the name of the company. Why _do_ all the Black kids sit at the same table at school? Why do all the Asian kids sit at the front of the class? Why is it ok for rap singers to say nigger but not anyone else? I really want to know.

See another African American dude being racially profiled: [https://www.youtube.com/watch?v=1uTP1fdFu0c](https://www.youtube.com/watch?v=1uTP1fdFu0c)

<comment><USER39> A test of character? As in, "Are you the kind of person who can be tenacious enough to work under a manipulative bigot?" I'm trying hard to see your point of view, despite the baiting.

<comment><USER38> It's not baiting, in the wonderful world of work, you can expect to be on the receiving end of such comments. I speak from a position of experience.

"All I Really Need to Know I Learned from Watching Star Trek"

[http://www.amazon.com/Really-Need-Know-Learned- Watching/dp/0...](http://www.amazon.com/Really-Need-Know-Learned- Watching/dp/0517883864)

<comment><USER40> So the CEO fostered such a culture from literally the start of his interview. It was a warning, that the CEO was racist and not a place to work at.

</comment></comment></comment></comment><comment><USER41> Looks like somebody is finally trying to replace the BDPA, thank god.

</comment><comment><USER42> The scientific way to train white people to stop being racist [http://qz.com/656159/the-scientific-way-to-train-white- peopl...](http://qz.com/656159/the-scientific-way-to-train-white-people-to- stop-being-racist/)

</comment><comment><USER43> I am non-American mixed-race. I personally consider racism to be -- in and of itself -- a non-issue. It does not kill you, and everything that does not kill you, ultimately makes you stronger.

I consider racism to be irrelevant because it mostly is. I can barely imagine a new situation in which someone would be able to stage a racist attack. I am probably entirely hedged against those already.

The real problem is always the abuse of government power: "I've been interrogated at gunpoint by police because I fit the description".

So, yes, if they choose the time and the place, they can indeed attack you, if they so desire. However, it perfectly well works the other around as well. If you chose the time and the place, it would work too. The only solution that truly works against the problem of lack of respect, is to inflict respect- instilling reprisals.

Therefore, the real problem, are your false beliefs in their fake legitimacy. Hence, in reality, state racism is a problem of religion.

Racism against Muslims pretty much fails, because they are increasingly making that very practice insanely dangerous. The police are very aware of that. They know that there will routinely be reprisals. This is the enormous attraction of Islam. It pretty much solves all the problems of abuse of power, including state racism.</comment>


Gov Whitmer target of threats on private FB groups ahead of armed rally: Lansing - <AUTHOR> https://www.metrotimes.com/news-hits/archives/2020/05/11/whitmer-becomes-target-of-dozens-of-threats-on-private-facebook-groups-ahead-of-armed-rally-in-lansing <comment><AUTHOR> Original title too long. It was:

Gov. Whitmer becomes target of dozens of threats on private Facebook groups ahead of armed rally in Lansing</comment>


CRS-6 Falcon 9 landing barge touchdown [video] - <AUTHOR> https://vine.co/v/euEpIVegiIx?hn

<comment><USER2> Is it supposed to play? I'm just getting a single static image. (Firefox 37.0.1 on Ubuntu)

 _Edit: Plays on my Android phone._

How close was that !!! Unbelievable ...

<comment><USER3> Refreshing it seems to fix it

<comment><USER2> Tried that - didn't fix it.

I have now watched it on my phone and it's amazing. I'm just a little put out that it doesn't work on my up-to-date install of Firefox on my up-to-date install of Ubuntu.

Is there a version of Linux that really does "just work" ?</comment></comment></comment>


Plastic Soda Bottle Prosthesis - YouTube - <AUTHOR> http://www.youtube.com/watch?v=Yvev6shNvSg <comment><AUTHOR> Interesting to compare this method of making light-duty false arms out of empty soda bottles with, for example, this story of a UK teen who got a £30,000 arm for £10,000 after asking Mercedes GP to help.

([http://www.getreading.co.uk/news/s/2098108_f1_boss_helps_fun...](http://www.getreading.co.uk/news/s/2098108_f1_boss_helps_fund_bionic_hand_for_matthew_14))

I know that $46,000 arms for everyone is unrealistic, but surely there's a better solution than waste soda bottles?</comment>


Ask HN: Have web apps been commoditized? - <AUTHOR>

Am I too paranoid, or have web apps as a whole already become commodities?  I started thinking this after reading this post:
http://news.ycombinator.com/item?id=656804
It seems a bit too easy to create a web app nowadays.  There are a few businesses that make hosting easy, and there are a variety of 3rd party tools that help as well.  Amazon and Google give the entrepreneur access to seemingly unbounded resources.  There's even a web app for creating web apps.  (http://appjet.com/)  Is it over already?  Are web apps already heavily commoditized, and how would your own app escape this trap?  Does the ease of creating a web app now actually make it harder to be an entrepreneur in this field?
Mattresses are commodities now.  Companies now try to increase their margins by striving to convince consumers that their product is somehow special.  A few companies are attempting to distinguish themselves technologically.  Other companies use local advantages in manufacturing and distribution to compete.
Are the same forces at play in the web app space?  Or is it an error to think of web applications as a whole as an industry?
EDIT: Perhaps I asked the wrong question.  Perhaps I should have asked: Has web app programming become a commodity?  (Or is it just perceived as one now?) <comment><USER2> This is not the end. This is the beginning

Remember that HN users are opinion leaders, and the first ones to adopt new tech. Heck, they _make_ the new tech.

My brother, my neighbour and my boss have never even heard the term webapp before, it's still in its very early phases. And these are the people that actually buy stuff. They have money and they spend it.

And here's the thing: Making a webapp is easy, making a company is hard. There's a long way from hacking an app together over the weekend to a sustainable company that will pay your bills. But if you're willing to put in the effort and time you can make a good living. You might even make a great business.

<comment><USER3> I completely agree with mixmax - webapps are just beginning to garner interest in a variety of different niches.

Most of the webapps you see are geared towards tech minded folks, but there's still a world of opportunity in other sectors.

For example, my startup provides real time analytics data for universities regarding their student enrollment. Nobody in this space is using a cloud hosted solution. Our competition has to install servers, go through the university IT department, and batch process reports... we're blowing people out of the water.

Another example is Woobius, which is basically providing a Basecamp for construction workers.

I believe that webapps are only going to get more popular as the younger, more tech-savvy generation is moving into the decision making roles in the workforce.

</comment></comment><comment><USER4> You make a interesting observation. I think the reason it seems so popular right now is because every web app created these days caters to creatives/freelancers/webmasters. So they circulate in this area a lot. I mean I can name 20 different time tracking, invoicing, and project collaboration apps.

I see less "web apps" and more "consumer applications" in the next few years. Online software that is set out to meet a certain need in our lives.

</comment><comment><USER5> the programming contest will get easier as higher level abstractions hide the tricky stuff, but the idea contest will also be liberated. Imagine a world where you could for example launch FMyLife.com without worring about IE6.

lightweight interfaces will be able to power sophisticated implementations, and someone has to write those.

the market size will increase. dogs will be able to understand complex event loops, just as before.

</comment><comment><USER6> A commodity is something that has no or very little qualitative differentiation. All items are basically the same, and suppliers therefore compete only on price. So what is that uniform quality of all web apps that makes them completely interchangeable? If you can name it, I would say yes, web apps are commodities. Otherwise they are not commodities and it is irrelevant that they are easier to make than a few years ago (if that's actually the case)

<comment><AUTHOR> Most webapps are mostly CRUD, with a few specialized screens and a few Roles.

Plastic is a commodity. Injection molded plastic comes in a variety of colors, shapes, and densities. It can be used to create very specialized parts/products.

Perhaps my question is misphrased. Perhaps I should have asked, "Is web app _programming_ a commodity?"

<comment><USER7> Plastic, at least, has to be formed into a product by someone. The value derrived from act of forming something depends on the output of the process. Therefore, the act of forming has little value if the output is of little value to the market.

What you're observing in our industry, likely without realizing it, is that no one is innovating. There are no Thomas Edisons.

</comment></comment></comment><comment><USER8> Appjet shut down, you know. So there isn't even a good web app that lets you do what appjet used to let you do!

</comment><comment><USER9> I remember people saying this back in 2001.</comment>


PostgreSQL 9.3 Beta 1 Released - <AUTHOR> http://www.postgresql.org/about/news/1463/ <comment><USER2> The short log is missing one of the most important and awesome new feature to _application_ writers: a bunch of new PQresultErrorFields[0] on constraint failure, providing access to (context-dependent) the raw schema name, table name, column name, constraint name and datatype involved.

Previously these remained locked into the database and to get programmatically-useable info (for logging, better error messages or to translate in terms of e.g. your ORM) you had to parse error messages which were potentially localized and usually lacked half the necessary information.

And even better, for python developers, psycopg2 already supports these fields[1][2]

[0] [http://www.postgresql.org/docs/devel/static/libpq- exec.html#...](http://www.postgresql.org/docs/devel/static/libpq- exec.html#LIBPQ-PQRESULTERRORFIELD)

[1] <http://psycopg.lighthouseapp.com/projects/62710/tickets/149>

[2] [http://initd.org/psycopg/docs/extensions.html#psycopg2.exten...](http://initd.org/psycopg/docs/extensions.html#psycopg2.extensions.Diagnostics)

<comment><USER3> Where would one find out if anyone is working on a patch for ActiveRecord?

<comment><USER2> The Rails/ActiveRecord bug tracker?

edit: the underlying connector might be a better idea to start with, as it'll need to expose the fields somehow before an ORM can take advantage of them.

<comment><USER4> Looks like work has started on the underlying connector: [https://bitbucket.org/ged/ruby-pg/issue/161/add-support- for-...](https://bitbucket.org/ged/ruby-pg/issue/161/add-support-for-pg_diag_- _name-error)

<comment><USER2> I wouldn't say "work has started" when the bug has just been reported.

</comment></comment></comment></comment></comment><comment><USER5> So, what's still missing in postgres?

To make the responses as constructive as possible, please also specify:

* Whether you currently use postgres, and what other systems you use (presumably ones that do have the feature that is missing in postgres)

* Whether you currently need the feature, or whether you anticipate the need in the future, or whether you expect that other people will need it

* Whether the missing feature is preventing you from using postgres, or just a significant pain point (which could include ease-of-use issues)

<comment><USER4> I could really use UPSERT.

I'm using postgresql right now.

My use case: I could have a table like:

        create table items (id uuid primary key, attributes json);

I'd have a webapp using javascript for adding/editing new items. If the user wants to add a new item, the client code would generate the uuid.

Editing and adding new rows would both use the same UPSERT/MERGE code -- no need for separate insert or update statements -- if the uuid already exists, it's assumed to be an update, if it doesn't, it's inserted as a new row.

<comment><USER6> Here's an UPSERT in postgresql: <https://gist.github.com/paul/855efdecaaa2ec4deec7>

While we're at it, here's a "find or create" in a single atomic statement: <https://gist.github.com/paul/75ec84d131e36492b17b>

<comment><USER7> I believe both of these still have race conditions, and are not the same as truly atomic upserts. Granted the window is considerably smaller, but their is still a race condition.

</comment></comment></comment></comment><comment><USER8> Postgres type system is so much better than any other RDBMS that it's a shame NoSQL guys didn't spend more time building on top of it. While their optimizer could use some work here and there it's improving all the time.

We are doing some pretty obscure stuff to it and it's serving us well. Oracle on the other hand requires so much attention and special handling with it's type system, that if there were an alternative, I wouldn't even bother with it.

<comment><USER9> It seems you could easily get a nosql postgres if you limit yourself to one table with two columns (id, json). Snark apart, it would work quite ok, no?

<comment><USER2> the json support is fairly recent and doesn't support operating directly on the data yet (e.g. you have to create functional indexes through plv8js and you can't directly query on the document's content as you can with array, xml or hstore columns)

<comment><USER10> PostgreSQL 9.3 adds functions for accessing JSON data without having to use plv8js.

<comment><USER2> Yeah but since it's just being added, it precludes "NoSQL guys" having built upon it, which is the original complaint.

<comment><USER5> Another intepretation of zapov's comment is that it's a shame the NoSQL projects didn't try achieving their goals by building postgres extensions (or even adding new features).

A reasonable question. MongoDB could have focused their energies on really good JSON support in postgres and making postgres sharding easier.

<comment><USER2> An interesting interpretation, which I had not considered. Thank you.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The PostgreSQL team just keeps on giving. There is nothing that can stop these guys.

<comment><USER12> In that spirit, what are the best resources for getting started and diving in to working with PostgreSQL?

<comment><AUTHOR> Postgresql documentation is terrific, really [1]. Then you can also use pgsql wiki [2]. Other useful resources are the searchable mailing lists archive [3]. Have a look also to pgcon.org web site, it's fully packed of presentation material (mainly pdf slides) gathered since 2007, just to give you an example look at Tom Lane's "<http://www.pgcon.org/2011/schedule/events/350.en.html> [4]

Speaking of books a few of the best I'm aware of are:

\- PostgreSQL 9 Admin Cookbook (Simon Riggs, Hannu Krosing)

\- PostgreSQL 9.0 High Performance (Gregory Smith)

\- Instant PostgreSQL Backup and Restore How-to (Shaun M. Thomas)

all them from Packt Publishing

[1] <http://www.postgresql.org/docs/devel/static/>

[2] <http://wiki.postgresql.org/wiki/Main_Page>

[3] <http://www.postgresql.org/list/>

[4] <http://www.pgcon.org/2011/schedule/events/350.en.html>

<comment><USER13> The docs really are great. I once downloaded the whole lot as a PDF and read it from the beginning on my phone during downtime (like 15 mins on the train). Read all the way through to the parts that discuss internals then stopped. I now appreciate it as a relational database, not just as a storage backend.

<comment><USER14> Great idea, you've inspired me to do the same just now. I've been using PostgreSQL since ~2000 and love it, but I'm still finding new little corners of the docs worth reading.

If anyone else wants to do this and has Calibre installed, the commandline ebook-convert utility does a decent job. Change to the postgresql docs directory and then run

      ebook-convert html/index.html postgresql_docs.mobi --authors="Postgresql" --title="Postgresql 9.2 Documentation"

(or substitute postgresql_docs.epub). There are a lot of tweaks that'd make it better, but it's readable and properly handles the code font, etc. If you want much more than that using the Calibre gui might be a good idea. Biggest issue I'm seeing is that "Up" links & such are broken, so I'm working on that now.

</comment></comment></comment></comment></comment><comment><USER15> "Indexed regular expression search"

How does that work from a computer science point of view?

UPDATE: Found this talk about it from PGCon last year: <http://lanyrd.com/2012/pgcon/schdzf/>

<comment><USER10> It is an extension of how 9.2 can use trigram indexes for LIKE '%foo%' searches.

</comment></comment><comment><USER16> Materialized Views! Well, sort of; it appears they don't automatically refresh when data has been updated in the underlying tables ala Oracle's implementation, but this gets you rather close.

<comment><USER2> FWIW, since Posgtres has hard version cycles (6 months I believe?) the point was to have a working base out and about, future versions will likely add auto-update:

> This is a minimal implementation, but should still be useful in many cases. > Currently data is only populated "on demand" by the CREATE MATERIALIZED VIEW > and REFRESH MATERIALIZED VIEW statements.

> It is expected that future releases will add incremental updates with > various timings, and that a more refined concept of defining what is "fresh" > data will be developed. At some point it may even be possible to have > queries use a materialized in place of references to underlying tables, but > that requires the other above-mentioned features to be working first.

[http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;...](http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=3bf3ab8c563699138be02f9dc305b7b77a724307)

<comment><USER10> The cycles are 12 months, otherwise you are correct.

</comment></comment></comment><comment><USER17> Eversince I heard Mike Krieger of Instagram Tech Talk at airbnb about how scaleable Postgres was for them, I've become very interested in Postgres. Probably will use it for my next startup.

</comment><comment><AUTHOR> for a more in depth list of changes / new features look at release note[1] and the wiki 9.3Beta1 page[2]

[1] <http://www.postgresql.org/docs/devel/static/release-9-3.html>

[2] [http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9...](http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3)

<comment><USER18> Materialised views! Damn, I really could have used that a year and a bit ago..

<comment><USER19> They're a little less than what you might be expecting since they require you to manually signal when they should be updated, but otherwise they sound pretty great.

<comment><USER4> And you can't read from the matview while it's being updated, iirc.

</comment></comment></comment></comment><comment><USER20> I was working professionally with Oracle and MSSQL databases (with way bigger focus on the latter). I did some freelance projects with MySQL databases, heck, I managed to hack some small things on Pervasive once or twice.

PostgreSQL was always an outsider which I had ignored, but in my recent position PostgreSQL is the main database engine for our whole stack. It took my about a month to get used to the differences in the syntax and PostgreSQL related stuff and I'm amazed about the features and quality of it, especially when you remember that this is a free and open source database engine.

On the other hand, if PostgreSQL devs would start a Kickstarter project for PGSQL specific version of Microsoft SQL Server Management Studio, my both hands (and feet) would pay. I had tried Database Visualiser (paid version), PGAdmin and few others, but none of those as is even close to the capabilities of Management Studio.

Does anybody maybe know any alternative or have any tips to share?

<comment><USER21> There are plenty if you are willing to pay. I've heard good things about EMS SQL Management Studio for PostgreSQL for Windows administrators.

</comment></comment><comment><USER22> The "User-defined background workers for automating database tasks" feature sounds very interesting: <http://www.postgresql.org/docs/9.3/static/bgworker.html>

I wonder if it would be possible to plug a python/node interpreter into that.

<comment><USER5> "I wonder if it would be possible to plug a python/node interpreter into that."

Sure, why not?

This is a great feature because it is a significant extensibility improvement. And that's what postgres is really about: the idea that any user/developer with an idea has many powerful APIs that can help them achieve that without waiting for anyone else to agree that the idea is good.

</comment></comment><comment><USER23> Clearly the best addition in 9.3 is \watch to psql

<comment> iso8859-1 Here's a blog post about it: [http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-...](http://michael.otacoo.com/postgresql-2/postgres-9-3-feature- highlight-watch-in-psql/)

</comment></comment><comment><USER24> "pg_isready database connection checker"

Will pg have less time for YC and HN since he'll be checking so many database connections now?</comment>


SummitDB – NoSQL DB, Geospatial Index, Raft, Redis API and Fencing Tokens – v0.4.0 - <AUTHOR> https://github.com/tidwall/summitdb/releases/tag/0.4.0 <comment><USER2> This looks really cool! I love Redis and it's nice to see that family of datastores growing.

What's the catch? Are there any success/horror stories with large datasets or heavy load?

<comment><AUTHOR> It's an in-memory database like Redis, so there's that limitation. A large dataset would require lots of ram.

It also runs over Raft, which makes it ideal as a primary data store, rather than a caching server. Though writes to Raft cluster will be slower than writing straight to a Redis server.

</comment></comment><comment><USER3> does anyone know the main differences (in objectives) from the author's other project: tile38?

<comment><AUTHOR> SummitDB is primarily a general purpose data store. You use it if you need to store various types of application data such as user records. It's aims to be a fast, durable, and consistent. It's kinda like Redis but with indexes and Raft.

Tile38 is specifically a geospatial/geofencing database. You use Tile38 if you have a traffic heavy proximity based application. It aims to be very fast at geo queries and geofence detection.

</comment></comment><comment><USER4> Cool, how can I use this with PHP/Laravel?</comment>


Microsoft FFmpegInterop library for Windows - <AUTHOR> https://github.com/Microsoft/FFmpegInterop <comment><USER2> I find these first-party interop libraries from Microsoft really interesting, in light of the fact that Oracle v. Google is still ongoing.

Depending on how that case finally comes back, I'd expect that could really affect Microsoft's strategy, here.

<comment><USER3> Can you elaborate what you mean? What risk is there to what Microsoft is doing?

<comment><USER4> If APIs are copywritable, then the GP2.1 license of ffmpeg would apply to this library, which is only licensed under the Apache license.

This issue has popped up a number of times for Linux kernel modules, and at what point they are a derived work - [https://lwn.net/Articles/13398/](https://lwn.net/Articles/13398/). Here is an email thread concerning this [http://yarchive.net/comp/linux/gpl_modules.html](http://yarchive.net/comp/linux/gpl_modules.html).

<comment><USER5> ffmpeg is also distributed under LGPL, which would be necessary to link this library against it, otherwise the whole product would be GPL anyway.

</comment></comment></comment></comment><comment><USER6> I really am liking these Microsoft projects. FFMPEG on Windows would make so many thing MUCH easier for my Audio and Video Projects. Right now ffmpeg on Windows is hit or miss for me currently.

<comment><USER7> FFmpeg on the command line on Windows has been fine for me every time I use it, using the Zeranoe builds. They seem to come with the right codecs and everything.

<comment><USER6> Those are the ones I also use and it hasn't been flawless for me, BUT I tend to do a TON of video for professional production (Happens only a few times a year). I get hiccups that I don't know everyone would really notice or care about, but is HUGE for my purposes.

Edit: Works Flawlessly in Linux.

</comment></comment></comment><comment><USER8> Title should spell Microsoft correctly.

</comment><comment><USER9> Dang, you about? Typo! Mircosoft...

<comment><USER10> Better late than never?

<comment><USER9> :-) always appreciated, well by me at any rate!

</comment></comment></comment><comment><USER11> Who's Mircosoft?</comment>


Doc Gets New Heart, Loses Residency in 5 Weeks - <AUTHOR> https://www.medscape.com/viewarticle/922499 <comment><USER2> HN seems to be obsessed with paywalls.

<comment><AUTHOR> What follows is very similar to my reply to someone else within the last hour who also complained about paywalled submissions. I may add that part of the notion of being an intellectually curious person/hacker is finding workarounds:

A quick search reveals a vast armamentarium of workaround options to paywalls. It has also been discussed in HN.

In addition from HN FAQ: Are paywalls ok?

It's ok to post stories from sites with paywalls that have workarounds.

In comments, it's ok to ask how to read an article and to help other users do so. But please don't post complaints about paywalls. Those are off topic.</comment></comment>


Flipboard, Once-Hot News Reader App, Flounders Amid Competition - <AUTHOR> http://www.wsj.com/articles/flipboard-once-hot-newsreader-app-flounders-amid-competition-1446075404 <comment><USER2> I found Flipboard always be a nice app to show what a cool device it runs on. Other than that it had major flaws which were never fixed or only after a very long time of not listening to user complaints.

\- No easy way of using RSS/ATOM feeds. I know they can be added, but last time I checked the way to do this was counter-intuitive.

\- Read articles are not marked as such. Therefore they block the view on not yet read articles.

\- For a long time no web interface.

There was probably more I did not like, but forgot. Finding the app as part of the undeletable junk on a Samsung device did not exactly create cosy feelings on my side either.

<comment><USER3> I had the same issue with rss.

I had a bigger issue with the app not rotating. I emailed them and their response was rotation is dictated by the device. All apps on that device rotated just fine, but flipboard wouldn't. When I pointed this out it was ignored. That was 3 years ago and I've never used it since.

</comment></comment><comment><USER4> Flipboard bought Zite a while back and has been pushing people to migrate their data. Personally, the Flipboard UI isn't as friendly as Zite's, so I'll continue using Zite until it is discontinued. After that, I'll just continue using Feedly with RSS because the above products were more for discoverability.</comment>


Visualizing distributions of data - <AUTHOR> http://nbviewer.ipython.org/github/mwaskom/seaborn/blob/master/examples/plotting_distributions.ipynb

<comment><USER2> Really loving these ipython visualisation articles!

There was one about detecting bubbles in liquid for the purposes of reducing spilling that was very interesting

[http://nbviewer.ipython.org/github/soft-matter/trackpy- examp...](http://nbviewer.ipython.org/github/soft-matter/trackpy- examples/blob/master/notebooks/custom_feature_detection.ipynb)

<comment><USER3> Yo, that's not an article that's the notebook. How awesome is that? This is for science is going.

</comment></comment><comment><USER4> This may be in the notebook or on Seaborn's homepage ([http://stanford.edu/~mwaskom/software/seaborn/](http://stanford.edu/~mwaskom/software/seaborn/)), but someone compared seaborn to pandas in that it provides a terse API to a great base package (matplotlib and numpy, respectively). I'm looking forward to using this more.

<comment><USER5> That's the first time I've ever heard the pandas API described as "terse".

<comment><USER4> Relative to creating your own ndarray, adding a time index, visualizing the data, etc?

<comment><USER6> Pandas is amazing and I use it all the time, but the API for things like hierarchical multi level indexing is very complex (it has to be - it's a very difficult thing).

</comment></comment></comment></comment><comment><AUTHOR> I find it nicer than bare-bone matplotlib for plotting (one line of code per standard plot + very pleasant graphically).

I knew that it exists for some time (and I had it already installed) but only today I rediscovered it as a really useful tool for default plots in my data analysis / data exploration.

</comment><comment><USER7> The violin plots are cool and look like a great alternative to box plots, I had not seen those before. Sweet!

<comment><AUTHOR> It is nice as it shows distributions, not only - a few statistics. However, some shapes of violin plots can be... distracting. ;)

</comment></comment><comment><USER8> Very cool. I suspect many of these port to R as well, and it would be interesting to compare the code and approach.

</comment><comment><USER9> scatter matrix is my goto high dimensional visualization.</comment>


QISKit: A software development kit for writing quantum computing programs - <AUTHOR> https://github.com/QISKit/qiskit-sdk-py <comment><USER2> Very interesting project, it's not my area, but it looks more like the program code is intertwined with the architecture of the quantum computer hardware.

Take for example this piece of code. It seems to define the registers and measure them, so this is more like writing quantum emulators, rather than programs. Right?

        from qiskit import QuantumProgram
        qp = QuantumProgram()
        qr = qp.create_quantum_register('qr',2)
        cr = qp.create_classical_register('cr',2)
        qc = qp.create_circuit('Bell',[qr],[cr])

<comment><AUTHOR> They are quantum programs. The bell state program you posted is not really enough to show how you would use this SDK. Here is a better example [0] that shows how intermediate quantum computers will be used to solve optimization problems.

[0]: [https://nbviewer.jupyter.org/github/QISKit/qiskit- tutorial/b...](https://nbviewer.jupyter.org/github/QISKit/qiskit- tutorial/blob/stable/4_applications/classical_optimization.ipynb)</comment></comment>


Baby carrots are not baby carrots - <AUTHOR> https://www.washingtonpost.com/news/wonk/wp/2016/01/13/no-one-understands-baby-carrots/ <comment><USER2> This is pure marketing genius:

1\. Start with a _waste product_ that farmers discard (ugly, misshapen carrots).

2\. Cut it up into little pieces and put it in plastic bags.

3\. Call them "baby carrots" and sell them for _more_ than regular carrots sell for because they're convenient.

And then watch as the total market for carrots increases dramatically because people like eating "baby carrots" more than regular carrots.

</comment><comment><USER3> For a minute, I contemplated how the stubby carrots, with the small bulges, could have been CNC'd from the large carrot? The most difficult part surely would be the skin texture, and the core diameter being too large? Then I realized the author of the article probably also recently realized that fries were not in fact made from individual very thin rectangular potato tubers!

From Wikipedia: "A _baby carrot_ is an immature carrot, grown in a small size, in which it is sold. A _baby-cut carrot_ is a small piece cut from a larger carrot; baby-cut carrots are often marketed as "baby carrots", leading to potential confusion." [emphasis original] — There is a useful picture on that page, and boy, do they look yummy.

— [https://en.wikipedia.org/wiki/Baby_carrot](https://en.wikipedia.org/wiki/Baby_carrot)

</comment><comment><USER4> I'm wondering if it's possible people didn't know this. But I guess there could be a lot people (mostly city dwellers?) that have never planted a small vegetable garden and never seen where their food comes from.

</comment><comment><USER5> You can only trick the urbanized Americans with this branding...</comment>


Hidden message on the new sourceforge TrueCrypt site - <AUTHOR> https://www.livebusinesschat.com/smf/index.php?topic=5629.0

<comment><USER2> >Somebody must have been searching for both Zyxel brand hardware and NSA infiltration information to cause Google to give such a strange search suggestion, and I would bet my left pinky-toe that at least one of the people doing those searches is "JyZyXEL" from the IRC log above. Although this is probably not a coincidental connection between all of these facts, it doesn't mean JyZyXEL is somehow connected to the TrueCrypt developers. However, I'm making a note of it here in case there are further developments, or someone just wants to ask him what else he might know.

Or maybe Google suggests the term because Zyxel's NAS product line is called NSA (e.g. [http://www.zyxel.com/de/de/products_services/nsa325.shtml?t=...](http://www.zyxel.com/de/de/products_services/nsa325.shtml?t=p) ). What a bunch of bullshit

<comment><USER3> not sure about the Zyxel stuff but the message checks out...

</comment></comment><comment><USER4> In addition to the deconstructions other people have made, anyone who knows Latin well enough to leave a hidden message would know that 'cu' and 'im' aren't Latin words. 'I want' in latin would (most likely) be either 'volo' or 'cupido' and the one which fits better with the message, 'cupido,' means 'I desire' more in the sense of lust, or physical need. 'I' in Latin is 'ego,' and is an auxiliary word one would not include in a secret message. 'Im'? I don't know where they got 'I.' And furthermore, 'si' only means 'unless' with a stretch of its real definition 'if.'

</comment><comment><USER5>
      Of course, we must be cautious by not drawing unwarranted conclusions.

That's right, after seven pages of drawing unwarranted conclusions, just tack this on at the end to make it all right.

</comment><comment><USER6> No doubt, Barney the Purple Dinosaur is also Satan! I have proof! [http://www.fivesolas.com/barney.htm](http://www.fivesolas.com/barney.htm)

/me rolls his eyes, and moves on.

</comment><comment><USER7> Looks like pareidolia to me.

</comment><comment><USER8> TrueCrypt is software you download, it's not a cloud service that you have to implicitly trust to use. The source for TrueCrypt is viewable by anyone and it is being audited. What would the NSA gain by controlling software with public audited source other than esteem from the general community for helping us to secure our files.

<comment><USER9> Many different entities use TrueCrypt to secure their files and if we assume that TrueCrypt has been compromised it would give NSA access to these files.

The code base is huge and introducing small bugs which they knew how to exploit can easily slip through from individual code review.

It's true that there is on going proper audit of the code, but it's a slow process and if the infiltration was done good while back they might have not been aware that audit was ever going to happen after all TrueCrypt is fairly old software.

<comment><USER8> It would not give the NSA access to those files because those encrypted files are probably stored on a computer they don't have access to. And seriously, if the NSA wanted access to something they probably can get it anyway. They don't need a truecrypt backdoor, they'll just install monitoring software and wait for you to open it.</comment></comment></comment>


WHO warns that coronavirus cases have jumped in countries that eased lockdowns - <AUTHOR> https://www.cnbc.com/2020/05/11/who-warns-that-coronavirus-cases-have-jumped-in-countries-that-eased-lockdowns.html <comment><USER2> It'd only be surprising if cases didn't jump tbh</comment>


TeamViewer authentication protocol - <AUTHOR> http://blog.accuvantlabs.com/blog/bthomas/teamviewer-authentication-protocol

<comment><USER2> When you set up Teamviewer to be running constantly in the background, you are strongly encouraged by the UI to use a real password.

The 4 digit passwords are used for temporary sessions for giving a remote party temporary access to the machine.

In the position of the person giving support and thus needing access, I'm already very happy when I finally get my mother to launch the Teamviewer application (finding an icon on the desktop can be so hard). I don't need her to spell out a real password for me and if she was to chose one of her own it would not be much safer than what Teamviewer generates by default.

Support sessions like that last a maximum of 30 minutes, after which she closes the application (as encouraged by the UI). I really think that the short-lived nature of connections with a weak password somewhat mitigates some of the complaints in the article.

<comment><USER3> I use TeamViewer on my LAN to be able to hop onto my other Windows boxes quickly. I prefer it over VNC for a variety of reasons. I use a real password on each box tied to my TeamViewer account.

I've also used it to help my Dad. He does the same thing, launches the application to initiate a session and then closes it when he's does. Since it's only open while he's expecting a connection, I don't see how it could be much of a security issue.

It is interesting to note, however, that a company who's product is designed to allow people full access to another computer and promotes security wouldn't have periodic security audits of their protocol to ensure it's sufficiently robust.

</comment></comment><comment><USER4> Don't forget that once you're in, you still have to login into the actual machine. I'm willing to live with that probability.

</comment><comment><USER5> Great article. The only issue I had was that I wanted to look at the code examples without downloading them.</comment>


Waze Co-Founder Skips Google to Try Startup World Again - <AUTHOR> http://www.bloomberg.com/news/2014-03-24/waze-co-founder-skips-google-to-try-startup-world-again.html

<comment> jack-r-abbit That article has four links to other articles but not a link to the company it is profiling. I hate when they do that.

[https://www.feex.com/](https://www.feex.com/)

<comment><USER2> It is annoying. But on the flip side, if the link was included, someone would have invariably commented that the "article reads like an ad". The authors can't win.

<comment><USER3> I disagree. I think it's MUCH worse when, for example, you read an article about a Kickstarter project on Mashable or TechCrunch only to find that clicking on the hyperlink leads to other articles on those sites about Kickstarter and not the actual project link. I think those sites have gotten better at linking directly when commenters complain.

<comment><USER2> Oh, I wasn't saying one was better than the other. Just observing that no matter what one did, someone would be unhappy about it :)

</comment></comment></comment></comment><comment><USER4> > the 49-year-old

Given the prevalence 'youth worship' articles on here lately it is good to point his age out to people.

Get out there and make an impact regardless of your age or situation.

<comment><USER5> Like you I immediately thought of the recent ageism articles on HN and specifically PG's comment about the "cut off" age for consideration for tech- investors being 32.

<comment><USER6> What a silly thing to have a 'cut off' age for techies. Like a good Single Malt or Wine, we get better and better with time. Age delivers on certain pragmatism not found in the youth of today :)

</comment></comment></comment><comment><USER7> Awesome idea. The fees on 401Ks are awful. My company has fees on index funds 4 times the competition. When I asked why, I was told, "Because that's the only way we can make money." Umm...... Fidelity does fine with 1/4 the fees, so does Vanguard.

<comment><USER8> This could be a scale effect. Asset management is (approximately) a fix cost business to run, so if your company only has 1/4 the assets under management then their comment might be true.

<comment><USER9> > Asset management is (approximately) a fix cost business to run

It is, but not an overly expensive one. I worked for a couple of years in an asset management operation where we managed a variety of funds, all with different risk-return mixes. The smallest fund was a few hundred thousand pounds, the largest around three billion. Total assets under management were about five billion pounds, the most complex of which was a pension fund.

Front office consisted myself (the most junior member of the front office) plus 4 others, including the chief investment manager. Middle office consisted one person who was also the back office manager, and back office, including the department secretary, was four people.

Total department budget was less than a million per year - including office rent, taxes, information services (Bloomberg, Datastream, etc) yet we substantially outperformed (usually within one standard deviation, occasionally outside) performance and risk budgets, as they were defined to us by trustees. And we worked eight hour days, a rarity in the City at any institution.

In hindsight, what we did was quite simple - invest in what we thought was wise, and not worry too much. Much mainstream investment management seems to be embodiment-in-large of the Peter Principal: create work in order to seem busy / important. The upside of the Peter Principal is to collect large bonuses by virtue of seeming important, of which none of us did, as it was simply a job - look after the organisation's funds and the pensioners' pensions. This organisation was somewhat unique in both mandate and people attracted to it.

tl;dr Fund management costs, for a collection of a pretty good performing funds, was 0.02%. This excludes broker fees and management fees of indirectly invested funds.

Byline: I am of course aware that having a single middle office manager is far from ideal, and that the middle office manager managing the back office is bad from an operational control perspective. This was changed after I left.

</comment></comment></comment><comment><USER10> Has Google done anything with Waze other than buy it, or with Google Maps, incorporating some Waze treats? Haven't seen any noteworthy changes to either Waze or Google Maps that one might have (optimistically) expected as becoming both feasible and worthwhile from the deal.

<comment><USER11> I'd be really surprised if they do a whole lot with it. My impressions was that the main reason they bought Waze was to keep Facebook from acquiring it.

<comment><USER12> Your comment looks really silly in light of the two directly above it.

</comment></comment></comment><comment><USER13> A little more than [the customary] six months, but not much.

<comment><USER14> Are golden handcuffs not typical at that deal size?

<comment><USER15> 2-4 years is standard. I bet he left a lot of cash on the table.

</comment></comment></comment><comment><USER16> They did a successful pilot in Israel this past year. A lot of people use them and saved significant amounts of money. They use the Waze founder for PR but he is not the real story, the service is.

</comment><comment><USER17> The guy has drive, can't doubt that.</comment>


Ask HN: Leaving a critical project for a better job (more money). Wise? - <AUTHOR> Background: I'm currently working on a critical project at a tech company. The work is good but the salary is less than satisfactory/comparable (I didn't really negotiate - my mistake + personal reasons). I've a job offer from another company that's willing to pay me 30-40K more than what I currently earn. My manager (who knows nothing about the offer) told me that I'll only get a 10K bump after my level-up (which happens in the next month or two) - typical company "policy"...And even if I negotiate, there's noway they will match a 30-40K bump (fact, not a rumor from grapevine).
So, is it wise (or rude? - bridges will be broken) to leave a critical project (that will go live in the next 3-4 months) for a way better salaried job given that the current company would never match a huge salary bump from the offering company? Is it wrong to be selfish and not think about the greater good of the team/project/company?
Also, the offering company prefers that I join within a month or two and they can't wait for more than 3 months because otherwise I'd have seen my product go live and then switch jobs.
Would love to get/hear some advice/opinions. TIA. <comment><USER2> I'd switch. You're not indispensable. If you were, your current company would match the offer. If you want to be considerate to your current employer then just give him plenty of notice (i.e. don't wait until the last possible moment to hand over your resignation letter but do it as early as possible). That way they have more time to find a replacement and you have more time to transfer your knowledge to the other people.

<comment><AUTHOR> Touche. I'd give them a month notice and see how that pans out. Good thinking herein. Thanks!

<comment><USER3> There are companies which will have a security guard escort you to the door the day you give notice, and there are others which will want to retain some of your services on contract after you leave.

The amount of notice given should be appropriate to the circumstances.

</comment></comment></comment><comment><USER4> _Is it wrong to be selfish and not think about the greater good of the team/project/company?_

Primary, or highest ranking, responsibility for this is the company's (and so management's), not yours.

If they are significantly underpaying you, that's a risk that they chose to take on.

If no people will die, planes fall out of the sky, etc., I'd say that, speaking generally, one should be able to leave with a fairly clean conscience, barring any obligations of more personal connections ( _true_ , mutual connections -- not e.g. propaganda about "our marvelous environment").

That said, I know nothing about your personal circumstances. So, it remains your call.

</comment><comment><USER5> Having left several jobs I can tell you, they will survive without you, no matter what you think. Unless you are a founder or a shareholder, all you have is the loyalty your employer has carefully cultivated. I don't think you have any moral or ethical obligation. It might not even make them mad when you leave - if they're doing their job properly then they've already prepared for the possibility of losing an 'indispensable' employee.

</comment><comment><USER6> Follow the money, but give plenty of notice. Congratulations on getting such a great offer, too. Good luck!

</comment><comment><USER7> Almost always go for the higher offer. As odd as it sounds, company value the higher paid person more, it's almost a rationalization on the part of the company.

One more thing: never accept counter offers from your current employer.

<comment><USER8> Do you have past experiences or reasons to share for your view on never accepting a counter offer?

<comment><USER9> Common wisdom is that it creates a bad environment, but I think it has a lot to do with your personality type, I have accepted counter offers before and it has been fine, but I am a pretty open and honest person, people know where they stand with me and they know that I will take a significantly higher compensation package if all other things are equal. I usually lay that out in the initial interview, I tell my potential employer that I expect to be compensated at market rate, and to remain compensated at market rate, that I will occasionally check the market to verify and that I will always give them first right of refusal should I find a discrepancy. I think educating people on how to maintain your loyalty has a lot to do with how the situation turns out.

On a slightly tangential note, when I worked for other companies, I was generally regarded as a loyal employee, all things being equal I would rather stay with a company I know, as there are a lot of unknowns in switching companies, I was always upfront about this fact, but I was also upfront about a large discrepancy in compensation being a factor that could compromise that loyalty. Giving people the tools to maintain loyalty helps employers clearly see what they need to do to maintain personnel.</comment></comment></comment>


Norway's national oil fund value updates several times a second on its website - <AUTHOR> http://www.nbim.no/en/

<comment><AUTHOR> Norways' oil fund is the largest sovereign wealth fund in the world. That ticker is its value updated several times a second - there is nothing close to that level of transparency for a portfolio that size anywhere else in the world. I used to work at a large investment bank as a trader - most banks don't know the value of their consolidated book until the end of the day and even that tends to be an estimate of estimates.</comment>