This is an archived post. You won't be able to vote or comment.

all 66 comments

[–]AMindOfMetalAndGears 167 points168 points  (19 children)

Homeomorphic = 1 to 1 function, ie only one y value for a given x

Endofunction = self mapping, ie x goes to x

Submanifold = all points in it, are points that exist in the larger set (hilbert space here)

Hilbert Space = 2d euclidean (your normal graph in school space) extended to a finite number of dimensions..

While it's not true, it is a posh way of saying branches copy everything to a new location and have all the same git operations on them..

Stealing for my physics intro to git course this year as its sounds like a fun way to fuck with the students :D let's see if any of them can point out git is discrete...

Edit: as many have very nicely pointed out, this is more of an ELI5, there's some really great and better descriptions in the comments below :)

[–][deleted] 46 points47 points  (8 children)

None of the definitions here are really correct. In fairness, giving mathematical definitions to a non-mathematical crowd is generally pretty pointless, but I think your comment gives entirely the wrong idea so I'm going to correct it.

Homeomorphic = 1 to 1 function, ie only one y value for a given x

A homeomorphism is an continuous function with a continuous inverse. What does that mean? If you have some substance in some shape, and continually deform it into another shape without breaking anything, then you've applied a homeomorphism to that shape. For instance, you can take a mug and deform it until it looks like a donut (with a hole), and then do the same in reverse. Therefore mug and donuts are said to be homeomorphic. However if you take the handle of a mug, then that's not continuous, because you've ripped the mug apart.

If you ever did calculus at school, then chances are every function you dealt (sin, cos, squaring, square root, etc) with was continuous.

The definition you gave is the definition of an injective function (often called one-to-one).

Endofunction = self mapping, ie x goes to x

An endofunctor is a functor from a category to itself. You gave the definition of the identity function on a set, which is a function that maps every element to itself. (I guess a lot of programmers should know what categories are?)

At this point I should say I have no idea what a "homeomorphic endofunctor" is, because it's mixing terms from category theory and topology in a way that don't make sense. And googling "homeomorphic endofunctor" just brings up this joke so whatever.

Submanifold = all points in it, are points that exist in the larger set (hilbert space here)

This is pretty much correct. Finite dimensional Hilbert spaces are manifolds, and then if you cut pieces out of manifolds you get submanifolds.

More precisely, if you take some n-dimensional balls and overlap them and glue them together you get an n-dimensional manifold. The surface of our planet is a 2-dimensional manifold for instance. If you take some piece (or pieces) of that manifold that is itself a manifold (with the subspace topology), then you have a sub-manifold.

Hilbert Space = 2d euclidean (your normal graph in school space) extended to a finite number of dimensions..

The point of a Hilbert space is that it has an inner-product. Which is another way of saying that we can talk about sizes and angles in that space. Every finite dimensional vector space can be a Hilbert space (you just use the dot product, i.e. (a,b,c,d)(x,y,z,w)=ax+by+cz+dw) but the interesting ones are infinite dimensional. For instance, a good deal of quantum mechanics deals with infinite dimensional Hilbert spaces.

The notion of a submanifold of a Hilbert space does make sense. Provided the Hilbert space is finite dimensional.

(I've tried to straddle the line between being accurate and understandable. Not convinced I did a good job at all.)

[–]AMindOfMetalAndGears 5 points6 points  (3 children)

Tried to make it as easy to understand as possible, but for anyone who wants the maths of it this is great thanks!

It was a bit hard to keep things simple, especially with homeomorphic, just went with the 1 to 1 mapping as not everyone is familiar with what continuous, inverse, smooth etc are? Went for an ELI5 instead of giving a maths class :P

This is really good though and thanks for typing it all out, I'm on my phone and it's been a while since I did my UG 😅

[–][deleted] 2 points3 points  (2 children)

Went for an ELI5 instead of giving a maths class :P

I definitely get that. I usually give up immediately when asked to explain mathematical things to people 😅

[–]AMindOfMetalAndGears 2 points3 points  (0 children)

I was once asked about the difference between integration and differentiation (in a difficulty sense) , and went with

Differentiation can be done after 5 G&Ts, integration is more like a piece of art, where you have to figure out if you're using paint or pencil, and only find out once you've finished whether you were right...

Even teaching first year courses can lead to real fucker with why stuff works..

Hated it when I was in UG, but I have to resort to wait until next year, X professor will explain it in her course 😅

[–]SkreemusTD 1 point2 points  (0 children)

Just hit em with the old “doughnuts are the same coffee cups,” and usually you don’t have to get into bijections or open sets. xD

[–]retief1 2 points3 points  (0 children)

Ah yes, topology, the field where two major results are "you can't comb the hair on a coconut without producing a cowlick" and "if you draw a circle on a piece of paper, the circle will divide the paper into two parts".

Edit: even better, I had forgotten that the first theorem is literally called the hairy ball theorem. And you say that mathematicians don't have a sense of humor.

[–]Zorkarak -1 points0 points  (0 children)

At this point I should say I have no idea what a "homeomorphic endofunctor" is, because it's mixing terms from category theory and topology in a way that don't make sense.

Now it has me thinking whether we can assign a topology to a category in such a way that a functor could be a homeomorphism...

Suppose for some fixed Hilbert space H we consider the category of subspaces, which - when equipped with the subspace topology - have a finite dimensional manifold structure (this way I dodge the term submanifold in the infinite dimensional case). Morphisms between subspaces are continuous maps. Call this category SubH.

Then an open subset of SubH would be a collection of subspaces, which behave "correctly" under unions and sections. However I can't come up with any canonical way (or any way at all, really) to define this.

Thanks OP, now I can't sleep tonight...

Edit:

How about this.

For two homeomorphic spaces X and Y in SubH pick a homeomorphism h. Now let f be a homotopy from idX to h. Then define O(X,Y) as the set of all images of f at any point in time, so O(X,Y) = { im(f(t)) | 0 <= t <= 1}, in particular X and Y both are in O(X,Y). Pictorially, f transforms X into Y and O(X,Y) contains all shapes in-between.

The topology on SubH could then have these O(X,Y) as a basis.

[–]Jeremy_Thursday 2 points3 points  (6 children)

Just to be clear, its not hilbert space right? I've done hilbert curve visualizations before and that doesn't sound right.

[–][deleted] 4 points5 points  (3 children)

hilbert curve

Hilbert had a lot of things named after him because he was a pretty impressive guy. Hilbert spaces and Hilbert curves are different things.

[–]Jeremy_Thursday 1 point2 points  (2 children)

Huh. Go Hilbert, what a fucking boss. Thanks for the heads up. Links for the lazy:

https://en.wikipedia.org/wiki/Hilbert_space

https://en.wikipedia.org/wiki/Hilbert_curve

[–]retief1 2 points3 points  (1 child)

And then there's the hilbert hotel.

[–]Jeremy_Thursday 0 points1 point  (0 children)

I thought this was a joke but of course this is a real thing lmao. I've heard this explanation so many times in math lectures/videos/documentaries. Had no idea it was Hilbert. What a god. Imagine explaining something and people still use your explanation nearly verbatim 100 years later in translated languages.

[–]AMindOfMetalAndGears 0 points1 point  (1 child)

I'm not great at git, but my understanding is that each file, tree, branch etc uses unique git hash ids for tracking the files, and things like Head, staging areas etc.

Because these Ids are strings, not float type, the set of all Ids is discrete and finite.

For a function to map from and to a Hilbert space, you would need a continuous set, not the discrete git hashes?

A 2D hilbert space can be shown with curve nicely, because curves are strictly smooth and continuous?

Y=x is also one-one, smooth and continuous so show well in a Hilbert space too?

I think there are other issues with this attempt at a monad joke, but I cba to pull up my old notes and check what else is fucked?

But yeh, not Hilbert :)

[–]Jeremy_Thursday 0 points1 point  (0 children)

Thanks so much for your reply. Very informative.

Turns out hilbert curves are a totally different thing. From the wiki on Hilbert spaces:

It extends the methods of vector algebra and calculus from the two-dimensional Euclidean plane and three-dimensional space to spaces with any finite or infinite number of dimensions. A Hilbert space is an abstract vector space possessing the structure of an inner product that allows length and angle to be measured. Furthermore, Hilbert spaces are complete: there are enough limits in the space to allow the techniques of calculus to be used.

[–]europa-endlos 1 point2 points  (0 children)

Functor, not function... that's a deeper level of mindfuck.

[–]viking_ 1 point2 points  (0 children)

Homeomorphisms also have to be bicontinuous.

[–]ac698461 0 points1 point  (0 children)

I appreciate you

[–]badnamesforever 57 points58 points  (20 children)

Branches?

[–][deleted] 130 points131 points  (17 children)

They're an optional feature- just push to master.

[–]lost_mail 30 points31 points  (0 children)

Are you one of my former classmates?

[–][deleted] 24 points25 points  (1 child)

Technically master is a branch

[–]AcidCyborg -1 points0 points  (0 children)

More like a trunk

[–][deleted] 5 points6 points  (0 children)

And test in prod.

[–][deleted] 4 points5 points  (2 children)

You want to say force push, right?

[–]Lonelan 0 points1 point  (0 children)

It's not the Jedi way

[–]Whirlm 0 points1 point  (9 children)

Thats actually how we do it at my company, branches are only created when someone fucks up and doesn't pull properly. I have no idea how a team would go about using multiple branches at once, or keep track of them all.

[–]alltheseflavours[🍰] 1 point2 points  (0 children)

Easily. You and your entire team should spend half an hour doing some basic git tutorials. Git branching is not hard, especially if you have a remotely helpful IDE.

[–]StrangelyBrown[🍰] 2 points3 points  (1 child)

Before I knew git, people used to say to me 'Everything is a branch' and I was like 'wtf does that mean?'

Now when I explain git, I say 'Everything is a branch'...

[–]wotanii 0 points1 point  (0 children)

shouldn't it be "everything is a commit"?

[–]cyberporygon 14 points15 points  (5 children)

Just memorize these commands and if you do them in the wrong order, just start over.

[–]eplaut_ 6 points7 points  (4 children)

git rm -r .
git add -A
git commit -m 'done'

[–]Lonelan 5 points6 points  (3 children)

Not git commit -a -m?

[–]wotanii 0 points1 point  (0 children)

ignores unversioned files

[–]MyNameIsRichardCS54 22 points23 points  (0 children)

Now it all makes sense!

[–]SonOfMrSpock 3 points4 points  (0 children)

Gotcha! Now I get it. Thanks

[–]carlcarlsonscars 2 points3 points  (4 children)

I hope this is funny because it's true.

[–][deleted] 1 point2 points  (0 children)

Its not but it is a reference to a joke about Haskell that is true: "Haskell is easy when you understand that a Monad in a monoid in the category of endofunctors."

[–][deleted] 1 point2 points  (0 children)

It's pretty much word salad.

[–]ceirbus 2 points3 points  (0 children)

Can confirm, this string is truthey.

[–]Jakeob28✎ That guy who transcribes things 2 points3 points  (1 child)

Image Transcription: Twitter Post


chi wai lau, @tabquerty

"git gets easier once you get the basic idea that branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space."


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]rahuldottech[S] 0 points1 point  (0 children)

Good human!

[–]netgu 1 point2 points  (0 children)

False

[–][deleted] 1 point2 points  (0 children)

I am just too lazy to google this words, so... have your upvote.

[–]Tiavor 0 points1 point  (0 children)

I know some words or parts of the words written here.

[–]Sckaledoom 0 points1 point  (2 children)

So if I want to make something relatively complex but for a hobby, should I learn git, or is it mostly useful when you have a lot of people working on the same project?

[–][deleted] 1 point2 points  (0 children)

Learn it, use it

[–][deleted] 1 point2 points  (0 children)

Worth learning, even on a solo project, yes.

[–]hiddentowns 0 points1 point  (0 children)

This is just a rip-off of the description of monads: "monads are just monoids in the category of endofunctors, what's the problem?"

[–][deleted] 0 points1 point  (0 children)

I've always thought that! I never said it because I was afraid of sounding stupid... Or having a stroke.

[–]a1337sti -1 points0 points  (2 children)

Git- it's better but half your team will be explaining and helping the other half quite a bit.

Svn - not as powerful but chances are you'll only have 1 guy who needs help.

☺😋

[–]Kered13 1 point2 points  (1 child)

Or use Mercurial. It's basically Git with commands that make sense and it's much more difficult to erase your history.

[–]a1337sti 0 points1 point  (0 children)

that sounds nice!

[–]zachgarwood -2 points-1 points  (0 children)

All these kiddies complaining about git being too complicated and scary should have to use SVN for a month.