A dozen black holes may lie at the centre of our galaxy - <AUTHOR> http://www.bbc.co.uk/news/science-environment-43648152 <comment><USER2> From the article:

"A search for the X-ray signatures of low-mass black hole binaries in the Chandra data turned up 12 within three light-years of Sgr A*."

Three light years is not that big of a distance in the grand scheme of things. For reference, the nearest star to Earth is Proxima Centauri, which is 4.2 light years away. Having 12 binaries within 3 ly sounds really dense. Having several hundred sounds crazy.

<comment><USER3> The night sky at the galactic Centre is white

<comment><USER4> I am sure the region is stunningly starlit, but if it were Olber's-paradox- bright, would not the dust in the region also be glowing white-hot?

</comment></comment></comment><comment><USER5> Let me try an optimistic thought experiment.

Roughly around the end of the Napoleonic era, call it 1815, 9/10ths of humans lives in what we would call abject poverty. today it is reversed and only 1/10th does. (This is still a travesty, but it is objectively better)

In that period we have seen incredible technological, political and economic improvements. But it's not clear if we will continue to see them "we might have invented everything" is a fairly common refrain (if not on HN!)

So can we say anything about where we are in this period of chnage - near the end? Well with no other information we can only plump for "in the middle". Which roughly speaking means we expect to see change on the scale of 19th and 20th Century well into the 2200s.

And part of my monkey brain just recoils at this ... optimism. My monkey brain does not trust the numbers.

But articles like this help me quieten my monkey. We look up into the night sky with powerful telescopes and find events millennia old, light years away and they confirm how we think galaxies are made. We look into the night sky and find Dark matter that we do not even know what it is made of - and I ask my monkey brain, at some point we did not know what was over the oceans, but we predicted new lands, we did not know what the land was made of and they were made of ores and minerals.

I am by nature a skeptical optimist, but the awesomeness of astronomy, it's generally leading place in science, still impresses me.

It looks like a good two centuries to come.

Just sayin'

Bibliography: I am probably stealing from people cleverer than i whom I cannot remember to reference or am too dumb to reference

Edit: I need to write more clearly. I am not arguing that we have invented everything, just that it can feel "where can the next thing possibly come from?". And Astronomy does things like point out "We can see 13 billion years in every direction, and most of it we don't even know what it is made of. Some of it might be useful :-)"

<comment><USER6> People have been saying "we might have invented everything" for hundreds of years.

I like the "invention wavefront" analogy, but I unfortunately can't remember where I learnt it.

Imagine the high-dimensional space of all possible things that can be invented. In the "centre" of the space is a hypersphere containing everything that has been invented to date. Every new invention is invented by "poking outwards" in one small place on the boundary of this hypersphere (hyperglobule) so that the hyperglobule now contains something that it didn't contain before. All inventions that could possibly be invented right now exist on the surface of the hyperglobule. Think of this as the "invention wavefront". Notice that as the globule expands, the wavefront becomes larger, not smaller. What this means is that as more things get invented, more new inventions become possible (intuitively: you can't invent better brakes for a car until you've invented a car, and so on).

"We might have invented everything" would imply that the space of all possible inventions is bounded, and we're running up against the edges of the box. But I don't see any reason it should be bounded.

<comment><USER7> > _People have been saying "we might have invented everything" for hundreds of > years._

No, they really haven't. In fact for a good chunk of centuries (from 16th century onwards), the optimism for the eventual future developments was endless. At some point there was a few scholars saying that during the end of 19th century, but still not some widespread belief.

That said, discovery probably also follows an 80/20 rule, and we're somewhat at the tail end now. We haven't had any major new discoveries, of the kind that we had regularly until the 60s-70s, for decades now.

Progressive refinement (like going from the workstation to mobile phones and watches) yes. But nothing like the advent of the computer, the internet, and so on.

And even less earth-shattering stuff than the time before that (which got us from the steam engine and electricity, to nuclear energy, radio and tv, flight, space exploration, the digital computer, QM and relativity, the DNA, and so on). Stuff like that was coming decade after decade up until the 60s-70s. After that, not so much.

> _" We might have invented everything" would imply that the space of all > possible inventions is bounded, and we're running up against the edges of > the box. But I don't see any reason it should be bounded._

While there's some quasi-religious optimism (like the universe owe us endless discoveries forever), there are real limits, and notions like "low hanging fruit" and "marginal returns" do come into play.

<comment><USER8> I think that you (and probably many people) have a blind spot with respect to major inventions - they have been in biotechnology recently. I don't know why the popular imagination is captured by things like AI and blockchain instead.

</comment></comment></comment></comment><comment><USER9> Wasn't this some thing that puzzled cosomologists a few years ago that some galaxies emit GRBs at scary intensities?

Suddenly it sounds plausible when we consider that at a certain density of these smaller black holes, the peaceful neighborhood of these other objects and their companion stars can start to get really violent, causing collsions and whatnot which then leads to these GRBs.

</comment><comment><USER10> Is it possible that black holes could account for a good portion of "dark matter"? They literally fit the term.

<comment><USER11> the "missing matter" is not just at the galactic core but assumed distributed more thorough the galaxy. if it just were at the center, star rotational speed would follow keplerian predictions, instead they observed the same rotational speed across whole galaxy disks.

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

<comment><USER12> Dark matter is also believed to be what holds galaxies (and galactic clusters) together by enveloping them in what are called dark matter halos.

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

</comment></comment></comment><comment><USER13> To be honest, in reading this and considering the vastness of space, my initial impression was "what, only twelve?!"

<comment><USER14> Every object in the universe attracts any other object. My initial impression was : not only one ?

<comment><USER15> well it almost seems like there are only 2 options:

only one and so many we can't possible try to count them all

</comment></comment></comment><comment><USER16> I'm sure this is an oversimplified view, but doesn't it seem like, because black holes are more dense, they'd naturally tend to fall toward and gather around the center of the galaxy? Sort of like how more dense objects tend to be found at the bottom of a pond? So then perhaps it makes a lot of sense that the galactic center would contain a lot of black holes.

<comment><USER17> Imagine that our sun suddenly collapsed into a 1-solar-mass black hole. What would happen to the orbits of the planets? Nothing. The black hole would still exert the same gravitational pull as the sun did. The same is true if you replace all the planets with equivalent-mass black holes.

Denser objects in an atmosphere or other fluid, where there is friction and buoyancy, will tend to sink to the bottom. However, if you're in the vacuum of space, there is no concept of "sinking". There is nothing to sink in unless you enter the atmosphere of a planet or star.

However, maybe there is enough interstellar dust near the center of the galaxy to produce a non-negligible amount of friction over millions or billions of years.

<comment><USER16> Mkay. I see my confusion. You need something like a fluid and also in a non- inertial reference frame which is under some force of gravity or acceleration. I guess a supermassive black hole such as Sagittarius A (assuming it exists) could provide a force of gravity. Then you'd need enough dust or something to exert pressure on the objects around it. It seems likely there's not enough of anything remotely like a fluid dispersed throughout the galaxy to have such an effect though who knows? I'm clearly no physicist :).

</comment></comment></comment><comment><USER18> Some food for thought.

Let me state up front, I am no fan of the "black hole" and "neutron star" concepts so take the following comments as arising from that basis.

The x-ray data and observations are only "supposed" to be coming from "black holes" as we cannot and have not directly observed any such entities. Now, it may be that there are specific entities involved that are dark body and gravitationally significant. However, as we are unable to directly observed these entities, they may also be quite visible and as well as gravitationally significant in terms of the effects seen.

The current consensus model for the universe entails a belief that General Relativity is correct and at the base of the GR model is a belief that the ONLY significant force at solar, galactic and universal levels is gravity, in whatever form your model of gravity may specifically mean, as in a force or in GR terms a warping of space due to mass.

Since we also know that there are large areas of charged space, we need to be able to ask the question - "are these charged space areas of such significance that they effect large areas of solar, galactic or universal space?"

The thing that we call gravity is of such weakness that even weak electric or magnetic fields completely override any gravitational effects. The simplest example that I use with my grandchildren is rubbing a balloon against my limited coverage of hair on my head and that balloon will stay connected with my hair against any force of gravity that is around me.

Too oft, methinks, the consensus models of the day are considered "holy writ" and ye are considered "blasphemers of the highest order" if one even dares to voice any doubt in those models. We take ourselves so seriously, even though what we should be doing is knuckling down and looking at all the facts before us.

If our models are wrong, so what? Is not the purpose of participating in any science a means to getting a better understanding of the nature of the universe around us? If our models are wrong in any area, let's try something else. To me in a sense, we are still in the mindset of those who came before who fought against a heliocentric view, they would rather add more gears to the geocentric model than consider that maybe another model is more useful in describing the world around us.

Mayhaps, we need to take some steps back from our current models, put aside our pet theories and just look at the data that we have and see if some other pattern arises. It should be no skin off of our noses if the models and theories we have are shown to be wrong.

Let's make science fun again, because it ain't no fun today.

</comment><comment><USER19> Are discoveries about black holes legit?

Isn't it still the case that they have not been experimentally confirmed to exist, and all talk of discoveries is just conceptual?

<comment><USER20> We have recorded a video[1] of the black hole at the center of our galaxy.

[1] - [https://www.youtube.com/watch?v=k7xl_zjz0o8](https://www.youtube.com/watch?v=k7xl_zjz0o8)

<comment><USER21> That's incredible! Definitely love to see / hear more about this if anyone has any pointers?

<comment><USER20> The video came from this study - "Monitoring stellar orbits around the Massive Black Hole in the Galactic Center" \- [https://arxiv.org/abs/0810.4674](https://arxiv.org/abs/0810.4674)

the wiki article - [https://en.wikipedia.org/wiki/Sagittarius_A*](https://en.wikipedia.org/wiki/Sagittarius_A*)</comment></comment></comment></comment>


Ask HN: How do you overcome the fear of being friendly at work? - <AUTHOR> I never cared much about being a very popular person, neither in college nor in high school. That didn't stop me from having different groups of friends that I would usually hang out with. In college that time got more and more rare, as coordination is balls-hard to do among different majors and increased chance of clashing schedules. But I still had a small group that I'd sometimes meet once a month or so.
My school days are now past me, over 10 years ago. I'm now a professional software engineer that goes to work all day, go home and play video games or surf the internet at night, still manages to wake up on time.
When I go to work I mean it- I have almost no interest in getting to know people outside of work. I talk to them of course, that's part of the job to work as a team. But I'm not interested in their hobbies or making small talk. If it's not work related I don't want to know about it, and I take breaks by just distracting myself on the phone. I'm usually known as a serious person at work... well good I guess, right, because that's why it's called work and not play? Well, not really as we shall see.
I think the lack of interest in idle chat has worked against me in the long run. A small but insidious habit where you refuse to make new friends after graduation. Last time I was laid off, it hit me hard.
My social skills are now so bad that I have no idea how to interview anymore, no guidance except for one mock interview at Triplebyte and another with a person I met in a local Slack group.
I know the world isn't consciously out to get me, but holy cow it sure feels that way sometimes if you don't have a network to lean on. So how do I overcome that fear of being friendly at work? I feel distraught with my career.
And the reason my career isn't going in the direction I want it to is that I am not a good enough speaker, and because I haven't built up a good network. <comment><USER2> Humans are social animals. Technology (i.e. work, phones, netflix, computer games, browsing the internet) can distract us enough to neglect social relationships but it is no substitute. Clearly you are coming to that realisation after 10 years.

Start small, if you have any hobbies go to a meetup or group for that hobby. Go do a fitness class in a gym.

Try asking a few people each day "how are you". It doesn't matter if the conversation doesn't go any further than "I'm good thanks" but just do it. It sounds like you don't like small talk but consider where that has gotten you, maybe you need to reevaluate your thoughts on human interaction, maybe you have been wrong?

</comment><comment><USER3> Being friendly doesn't mean being friends, does it?

Something I didn't really know that was important before it was put in my face was expressing thanks. Do express thanks. It's a small thing. An office and carpet is cleaned, aircon and/or heating is more-or-less set right. A salary arrives on time. Required applications on your PC and the network is stable. Parking spaces or nearby public transport. Many other small things.

Someone's working to ensure these small things, which when compounded together are not small at all, are there. It may sound out-of-place at first, just say thanks, and say it sincerely citing appreciation or an example to demonstrate sincerity. It's not about "let's be friends", it's just appreciating someone's efforts.

If you're not feeling like a good enough speaker, I have seen some people do really well with Toastmasters, not only in presenting but also receiving and giving feedback. The format's not for everyone, my old local club was a tedium sometimes but a lot of fun when bringing variety.

</comment><comment><USER4> Start by learning to listen quietly and pay attention when someone is talking about whatever they do talk about. Ask questions instead of sharing your opinion. There is a lot to learn from others this way. How they solve problems, how they perceive change in their work/life/health. You will have time on your own to reflect how you felt about what that person shared with you, no reason to reflect right away. You can do that later, once you had time to consider.

It is in the mirror of other people's souls that we get to see who we really are.

</comment><comment><USER5> Well, you put yourself out there and explained your situation pretty well. You must have (in person) social skills, maybe they are just a little rusty?

I would try to be friendly outside work as it could be less intimidating. I think you will find that a lot of people have the same interests as you do.

To be blunt, you are actively refusing to socialize, just start talking to people. Tell people about your life and hobbies. Find out who plays the games you do and what they think about them.

A conversation starts so simply, "Play any good video games lately?", the worst you can get is 'no' and that is still a opportunity to tell the person what you've been into. Maybe they will keep the conversation going, maybe not. But it's still a conversation.

<comment><AUTHOR> There's another recent topic here from someone else, on asking how to get a job while you have a job. And some of the replies suggest he has similar problems I do which comes around to my struggles in my career.

I almost always apply to jobs cold. Go online, through the filter of unwashed masses. Then eventually I learned that referrals get you on the short list to interviews.

Someone who mocked interviewed me told me what was wrong with my approach. Generally speaking I meander too much when I talk. I hope to have another mock session with him again. We actually scheduled four of them, one week after another, but he only had time to do the first one. The rest of the schedule was postponed indefinitely because too busy to do them (because of work). No wonder finding interview help from professionals is hard, even in person.

</comment></comment><comment><USER6> Step one:

       Find a GOOD toastmasters group to join

Warning there are bad ones, find at least 3 and try each one out. I personally looked for one that was friendly and not overly strict. The very strict ones, IMHO, have trouble keeping members. Who the hell wants to go somewhere to get beat up all the time.

Note there are different speaking skills. Toastmasters will help you in business a lot! It will help you a good bit in your personal life too, but for that you might need to go out and meet and socialize with people. Consider finding a meetup group.

</comment><comment><USER7> The best thing you can do is be good at what you do AND be seen. My friend has a phrase I love "when it comes time to be called on you have to be in pointing distance."

My divorce taught me that friends are fickle and As a result I dont care at all what anyone else thinks of me. My status is dependent on the value and work i bring to the world I choose to inhabit. That's plenty to get ahead.

</comment><comment><USER8> From what you say, you have what you consider a personal problem that you want to work on (at work or not).

If you search the HN archives you'll probably find tons of advice for networking, making sincere friends, changing careers, etc. You may also benefit from therapy.

Best wishes!

<comment><USER9> > You may also benefit from therapy.

One thing that therapists can do is recommend books.</comment></comment>


I think I might be underpaid - <AUTHOR> I'm an engineer in SF with 3 years' experience in primarily Python and Django.  I make just a little over $100K, but I've been told by multiple people that I could/should be making more.
What range should an average engineer with my experience level be making on the open market in the Bay Area today?
My employer is large enough that I'm sure they can afford to pay market rates.  What can I do (besides leave) to get up to market rate? <comment><USER2> [https://www.glassdoor.com/](https://www.glassdoor.com/)

In my experience you have a moderate chance of a pay upgrade if you can show the market rate is significantly different to yours. Also this depends on how critical you are to the machine and how management view your future. Ideally time this request when they really need you to stick around for a project e.g another developer leaves. Cruel world I know. Also I wouldn't pull this unless you've been in a role for well over a year.

The best way is to get a formal alternative offer and say you want to stay but company XYZ is offering you this amazing offer and be prepared to walk. Though most people who do this are rarely in the job 6 months down the track as it usually indicates they have itchy feet anyway.

<comment><AUTHOR> > show the market rate is significantly different to yours.

Glassdoor seems not very useful in that respect, as it doesn't break things down by anything other than location and job title. Is there a site I can use that breaks down by experience level (and, optionally, skills, or, at least, front end/back end/devops, etc), in addition to location?

Informal conversations with other tech people I know have lead me to believe I could/should be making at least around $120k, but I don't feel I can take that to the table with my current company.</comment></comment>


Show HN: GraPHP, a PHP graph DB web framework - <AUTHOR> https://github.com/mikeland86/graphp

<comment><USER2> I'm really excited this was finally shared. A little backstory. This framework is the manifestation of ideas that Mike developed at Mixtent, a startup that produced three products in 2 years and eventually got acquired by Facebook.

The biggest advantage this framework has over other more traditional ones like RoR or Django is being able to model product ideas as a graph in code abstractions. This enables product engineers to rapidly prototype ideas (no need to interact with the DB), and jump into features built by other engineers (the node-edge API is standardized).

While the first product Mixtent built used more traditional django-style models, it resulted in features that became hard to manage over time. Each model had its own DB table and making changes was painful. The next two were built using a similar graph framework on top of CodeIgniter, and the benefits to prototyping speed and ease-of-understanding were visibly felt by all engineers (including myself).

<comment><AUTHOR> :)

</comment></comment><comment><USER3> Wait, so this is a graph-like layer on top of an SQL database? I don't quite understand this claim:

"DB API is designed for fast performance. No implicit joins or other magic, but expressive enough for nice readable code."

When you have a database with a node, edge, and node_data (EAV) tables.

What am I missing? How would I get a node and its properties including edges, other nodes, etc. without joining other tables or flat-out magic?

<comment><AUTHOR> What I meant by that is the joins happen explicitly in code (as opposed to implicitly in queries). I got burned using another framework where my lack of knowledge of how the ORM managed DB queries would lead to really inefficient stuff - basically really bad joins that I could have avoided if I knew what the framework would do.

When I say no magic, what I mean is how you can understand what data is being loaded every step of the way so the mistake I mentioned previously is harder to make.

Also, I wanted to avoid query joins for easy sharding (if needed), but that adds an extra round trip so if needed the developer can write their own joins (giving up a bit of flexibility in the process).

<comment><USER3> Thanks for replying. Have you tried this at scale? What is the performance like when you have thousands of records? Have you looked into traversals? I ask these things because I tried to build a product using MySQL that should had used a proper graph db and I ran into a lot of issues. I think now that I'm a bit wiser, sql may be able to do similar things, but I haven't tried.

edit: the model layer is the most impressive part about this. You should consider making it a stand-alone package.

<comment><AUTHOR> In general it scaled pretty well if you avoided loading tens of thousands of edges in a single call. A similar system was used on an app that would try to find connection strength between people using sent emails as signal. At it's peak the node table had tens of millions of rows, with some of the nodes (users) having thousands of edges each. The main pitfalls are

* loading too many edges (10K+) and associated nodes will be slow. * Traversing nodes in a meaningful way can be difficult.

To solve these, the schema has the following indices:

On edge table: (`from_node_id`,`type`,`updated`) On node_data table: (`type`,`data`(128))

Since edges rarely change, the first index allows you to paginate over edges by using updated as the order. As long as you request a reasonable number of edges, things should work OK. The second index is needed to get a node given some data, but a secondary use is sorting. By precomputing some score and saving it in node_data you can traverse nodes in that order (this is not currently built but is simple to do in SQL).

All this being said, the schema is pretty index heavy so if MySQL is forced to kick some of those out of memory it may lead to a bad time.

Thanks for the kind words on the model, I never thought about it being separate, but it makes 100% sense.

</comment></comment></comment></comment><comment><USER4> I don't understand; what does a graph DB library have to do with an MVC framework? Why not just write a nice graph schema / model library?

<comment><USER5> based on the example code: nothing. In theory, you could map urls to the graph but here it looks like an HTTP framework that use MVC where the Model maps to a graph database (supported by mysql).

</comment></comment><comment><USER6> Recently I had some related ideas, although from a completely different background. Here is what I would have done differently:

1) Implement other storages. Although databases are a natural part of web applications, a direct storage in files and/or directories may be justified. Also, for most applications the full dataset fits easily in the RAM on modern systems.

2) Keep full history. Or provide for this possibility at least. Adding history features to classic database models becomes cumbersome quickly, but for a simple schema it may be provided directly by the framework. This provides for a great audit log if something went wrong. Probably to be disabled if really unwanted and/or storage size is an issue.

Regarding the different background: Although most people want graph databases if they don't want to enforce a certain schema, my desire is the exact opposite. I want more constraints, data integrity as much as possible. I want more than can be easily reached even in PostgreSQL with user-defined functions, such as constraints across foreign keys. So a separate checker is needed, and I believe graph structure with plain links provide a good, simple base to define a constraints framework upon it.

<comment><AUTHOR> 1) I like the RAM idea and in general more storage adapters. I hadn't really thought of local storage, but it makes sense for super simple prototyping.

2) I want to add DB profiling at some point (right now Libphutil does this for me at a query level, but I want to do it at a graph abstraction level). History could presumably be similar to a permanent profiler.

I think constraints vs flexibility is always a tradeoff. The main benefit of this model is very rapid prototyping where design decisions can be changed or reversed with minimum effort.

<comment><USER6> _> I think constraints vs flexibility is always a tradeoff._

Well, that depends on the application. In the applications I have in mind, I have to make tradeoffs in the opposite direction: I know that some more constraints make totally sense. But: Is it worth implementing them, considering how hard it is to express them in the database?

So I have to make tradeoffs between missing constraints and ease/feasibility of implementation. Or checking some constraints only in the application layer, but sometimes it's even more cumbersome there, than with triggers/etc. in the database.

</comment></comment></comment><comment><USER7> I love seeing new, interesting work done with PHP. I'm particularly interested in ORMs so I'll definitely give this a try. Thanks for sharing.

</comment><comment><USER8> The Readme talks about a bank account. How would transactional update look? If I want to transfer $20 from user A to user B, the following four things need to happen transactionally:

\- make sure user A has the necessary funds (reserve)

\- put money into user B account (debit)

\- take money from user A account (credit)

\- commit

At the same time, nobody else must make an operation where they see partial results, and we can't let two operations reserve the same funds in parallel.

I don't see how this use case is supported, but that may just be because I don't know where to look?

<comment><AUTHOR> Yeah back account may have been a bad example, but still solvable:

You can use MySQL's SELECT FOR UPDATE (not currently implemented in graphp) to do this transaction safely.

Alternatively, within the framework you can do the reserve amount as a time stamped node and connect it to the user. Then you query for reserve nodes and process them in order.

</comment></comment><comment><USER9> Would be really nice to see this framework used with an actual graph database in addition to MySQL.

<comment><AUTHOR> I agree. I started with MySQL because it is what I know best, but it should be fairly simple to create new DB adapters.

</comment></comment><comment><USER10> Wow, I am glad that graph stuff is really starting to take off, for all the JavaScript people out there I wrote [http://github.com/amark/gun](http://github.com/amark/gun) .

Great work, I really hope you help usher in the era of graphs!</comment>


Cougar Gold Cheese - <AUTHOR> https://www.atlasobscura.com/foods/cougar-gold-cheese <comment><USER2> My dad had a unopened can of Cougar Gold in the back of the fridge for years when I was growing up. He finally opened it when I was in my late 20s, it was equisite, never tasted a cheese as good since.

<comment><USER3> WSU still makes it (and some cheeses I like better) if you ever find yourself in Eastern WA.

<comment><USER4> WSU also recently came out with the delicious Cosmic Crisp apple. [https://en.wikipedia.org/wiki/Cosmic_Crisp](https://en.wikipedia.org/wiki/Cosmic_Crisp)

<comment><USER5> for those in the bay area, you can find these at berkeley bowl

</comment></comment></comment></comment><comment><USER6> I'd like to know more about this bacteria that reduces the amount of co2 produced. What does that actually mean?

</comment><comment><USER7> Man seems really interesting, but $25 to $35 for a 30 ounce can is roughly 2 to 3 times what other cheeses similar cost.</comment>