Confused about uniform buffer objects

I find them confusing.

Are there any examples anywhere?

I have searched this forum, found some discussions, but I am still confused.

Google just gives me the ARB text file, which I find unhelpful.

I know they are used with uniform blocks, which appear to be yet another source of confusion for others.

It looks to me like there is a layer of indexes I need to manage. Why these indexes need to exist was not explained to my satisfaction.

I would prefer to interpret “uniform buffers” as just arbitrary data that can be accessed by a shader program without question of type, however it appears that this paradigm does not apply here.

My interpretation is:

-> create a buffer
-> bind it to the uniform buffer target
-> ???
-> profit

Thank you for your time.

There exists the wiki.
I am an idiot.
Never mind.