 Hello, nice to meet you There are two type of free software developers the ones that have the one that are famous and people like me I'm not really famous to be honest Free like in free software as a capacity for a person like me and others to present what they do and not who they are And I really like it. So thank you for them. That's my first. Thank you of the day and There is a story and every nice story where is my slide Every story begins with too much time on your end and a book Sorry for the English speaker, but anyway remember that in mathematics. We don't care about what is written So you will have Mathematic books that is written in French, but all the formula in English. Don't worry. They are translated So this book is called the deep shoot linear algebra a and I was like, whoa, fine It's looking fun this book for definition and fun that only me understand Basically what my book was saying is that it was a cool project manager It was saying I will not tell you how to implement stuff I will just tell you how it's working the rules and then once you implement once you follow the rules You have metrics This one is a little bit capital-attracted as we say in French and then you've got least surprises I will come on it later because I love to have least Surprises are shit You know what I mean basically as you see we've got associativity new element of addition a natural element of addition multiplication and so long and I want to point is it this one Yeah, I want to point that one is not one You will see it later zero is not zero Computer interno integers and real numbers are not flawed But good enough lies made a good enough truth and I will try to prove it to you with code We don't know it can work. So once you've got these rules You code so I've coded a Kind of unit test that is testing for the basic stuff like a plus b equals b plus a and stuff like that Which is not very interesting, but I was like why not do it if we can we do So basically I began with the normal basic type of What we don't see a thing Ah So basically I began with a basic type of Python there is no way to put it in full screw So basically complex time is following the linear algebra error Oh, it's nice Control one say exist So for fun I tried an impure race they are behaving like they should man not like they should they behave like The theorem of linear algebra are saying the floats are doing the same the ins are doing the same I was both pretty surprised with the decimal, but if the test are saying no, but it's no that's the way it is complex I love complex and List no, obviously least are not Following the linear algebra you can try but no Yeah, I'm gonna introduce sorry for the stuff. So if you can go on the internet you you will have the full information There is a small theorem that I created. I don't think it's a theorem I don't know what it is if you take Intricated mutable mappings that are Implemented in dicts that we all know you can take a path to a key and transform it into a top and it's equivalent form So there is a canonical form of Intricated dicts that are making them like a dict so I can reason on one level dict But in fact I can think of intricate a dict and the other way around is working because it's a big action It's an isomorphism great stuff isomorphism believe me Oh Not everybody believes in isomorphism. I will prove it to you later. Don't worry So like an obnoxious project manager the the math book is trying to tell me how to do stuff I can tell you I don't like it. I just prefer when I'm given the rules to check. Anyway, you've got who plus you plus You plus way that is supposed to look like this and the multiplication by a scholar that is looking like this and This one this one is important. You will see I'm gonna cheat in the implementation You who how do we do an implementation that is very? naive Which I am I'm very naive in fact so what I did is I propagated the Plus on the right side like it's written in the books, but since I was at it. I was like why not use a Idea of duck typing. Yes. We're coming to it duck typing is a little bit like linear algebra It fit quacks like a duck and it's fly like a duck and it's good like a Maghreb canal then it's a duck and I was like well, why not just both at the point where you are you're trying to do something silly be silly to the top You're never winning anything by doing it with you know warm water you go out So what I did is that I I overloaded the operator since I'm dyslexic and I don't know my right and my life I all have plugged everything on the immediate addition subtraction multiplication division. So it's not very fast I'm sorry and then I implemented neg this way so that I'm consistent with the stuff I show you and Well, it was very it was quite easy to do the stuff You're nothing there is that I'm saying that basically you can probably do it in any kind of language to be a net honest at least in pearl joke So does it pass my own test? Yes? Have you seen it? I love it When you pass your own test you can be proud So I did implement actually I didn't see this code I think I stole it on the internet and it was made by a dude person whose name was widow from something I guess but anyway, it's my code now three software, you know So now we've got this which is I Didn't put a joke so I've got this which is so many multiplication I forgot to say that there is a little twist in the multiplication when you're taking a that is a scalar and you're multiplying it You're putting to every leaves, but when you've got a dictionary like when you've got Vector when you are doing if you've got the same key you're adding the same key side by side But if the key doesn't exist I create it on the other side when you've got multiplication I It's very complex You're gonna see it when it's gonna be working with the iphone notebooks that we don't have because my computer is not showing it Don't worry. I had a backup plan So, ah, excuse me. I've got to go back Ah Yes, yes, I've got new rules that I forgot to implement in my test, but I passed it I checked so we've got the dot product that I use with the Perderoiter that is making the isomorphism So basically I'm taking I'm not even talking about 3d geometry. I'm just taking random name of keys for my dict and When I'm doing my dot product, I've got exactly the result of the Euclidean geometry Without even trying to implement the Euclidean geometry. So so far it's working. It's working for dimensions that are even higher than three or two I'm too much into geometry. I'm sorry. I love it Yeah, it was intended to be fun. You have the right to laugh from time to time. It's very hard to be there Oh, Calimero effect. You don't know you you're not on my side So that product is one step away from distance Thank you So this is the definition of apps absolute apps apps apps No, no, no, but distance is absolute value of u minus v so and when Yeah, no, I've been assigned but geometrical pun of acute angle I tried very hard to make jokes for you Ah No, anyway So I took a random definition that was in the book and I was like, oh, can it work? No, you've got this cost data stuff that I don't really understand what it says And you just have to to pay attention that it should be non null But anyway, then you're implementing it this way. I know people hate the one-liner, but I was a pearl coder So I've got the right to do it Once again, we're taking random example two dimensions. It's doing what it's supposed to do We are checking and then we're trying with a 3d 4d vector It's doing the same thing and when we're dividing by a null vector It's doing exactly what it's supposed to do, which is an exception of a division division by zero. Yes, it's working Aren't we proud? We didn't even did a lot of code Yeah, I'm focusing too much on geometry. I know it already That's the part where I don't have my Where is Stefan, oh, I'm deep shit. Normally. I'm supposed to show you some code. No, I'm joking When you know that everything can go wrong you prepare a backup plan and the backup plan was to have a normally I was supposed to to have a I hope I've got a good memory. Please help me God, please Yes Normally if I had a high Python notebook, I would have made it, you know, like magic and make stuff appear like a magician And so how it is? Sorry, I'm coding in Python 2 right now I'm sorry. I intend to go in Python 3 but right now I'm doing my cider. So Here is a normal vector. I've taken globally the example in the named up collection of STD3 of Python, which is a point in the color space. Nothing new under the sun. It's a it's a classical one then if you check when you're adding with a I said that zero is not zero. Look at it. This is not zero But if you look at it, it's the same. So this is should be true and this should be equal That it's just we are not in a geometrical space. There is a lot of stuff that are not geometry We are not living in the world of the little marmot that are you know, we are in the world of computers They are working the way they are This normally zero it is equal to minus one plus one or one plus minus one. It should be true Yeah, of course, it's killing the joke So what happened? So when I was saying that integers are not int are not integers and floats are not real numbers The computer is not exactly liking the real geometry of the algebra books You have to live with the fact that the world is imperfect It's called the the hell of the floats aka it was a 754 Which is a norm that we use in electronic to represent the number in memory and that's the reason why we have got so much bug It's non-commutative and non-commutativity is breaking a lot of assumption of a linear algebra. So it's not my fault It's not Python fault. It's a fault of IBM. So You've got this unit vector Neutral amount of multiplication. I remember it's called in excuse me. In fact, I was not good at school So we've got this stuff that when you multiply by itself, it doesn't move. It doesn't move. Yes Then we've got this one. Why did I wrote this one? Because it's giving the same result. It's another way to write one and then Ta-da-da what is doing this? I'm multiplying itself by itself and I Dividing it by itself. I still have almost the same result So actually it's working the fact of propagating the multiplication to the keys and then Just thinking it should work like addition in vectors with a few tricks that I will not Devoilé because it's an open source and you cannot read it It's making that I've got a unit vector in fact and A over a is a unit vector and it has a weird shape that you will see later I'm very proud of this one, which is a conservation a plus a is equal to 2a And it's true. It's amazing Why are my coordinates so convenient being non-null I saw people noticing it. No, it's a job. No, no one Really not a good public. I'm sorry. You could help me a little bit from time to time Yeah, it's it's not a bug It's really like it should behave when you've got a number you divide by zero it's making a zero division by zero exception And if you look at it correctly every number are in fact an implicit one dimension vector My brain is is burning on this one believe me It's not too tough I'm really sorry So Since I used to To to solve equation without posing them because I was doing something called physics and not mathematics I used to be working with intuition the Important part is can we build an intuition of what this stuff would be meaning? The fact that a plus zero is equal to a giving that we are calling plus a translation It's meaning that if you move yourself from nothing You will not move Same thing is going with the multiplication by one if you stretch yourself from your own size. It's not gonna change and Yeah, I wanted to show you what is a unit vector it has more than because of the definition and made of the multiplication and I say that I Don't like project manager telling me how to do stuff as long as I'm having the theorem that are being respected I mean my stuff are working so obviously it's a project manager that is wrong not me so My multiplication is giving results that are pretty interesting is that we've got the unique vector by dividing the vector by itself Which is going in every direction, but it's also this and this and you will see that maybe it has a maybe it's not totally stupid maybe This is well-known. It's a so I Addition and multiplication should be related by this It's very important that you have to understand that when you're Multiplying something by a scalar you're changing the direction the scalar is the direction or the number of time of the vector So when you're going in your direction and then going back from your direction You're going back to where you were so it's pretty having an intuition that plus and Omotesia are working Excuse me, I'm scared how much minute do I have? Thank you. I'm rushing to leave you five minutes So this is a translation of one and I'm applying only on P And it's working like it should exit equal to two y to two and that to two so kind of Multiplying in my context with this is kind of saying that we are sub selecting the Dict and this dict is looking like a vector So this Multiable mappings to be a net because I didn't use for the implementation as straights. I never used the word dict I'm using mutable mappings. It's duct typing. It's just a stuff with square bracket Items heater Len and stuff like that. It's not actually dict. I'm using you could do it with other stuff so It's a kind of sub selection of a space that could be in a space and I remember that I got I had a stuff In my book saying that maybe it's a sub vectorial space. I Really don't like math seriously. I love to implement them But the rest is not funny just because I could I went on the internet and took a random formula this one and I Decided to implement it to see if it's working so I made a word counter is which is a normal way of For people that are doing text indexation to represent the text and I decided Without any bias to to give me point one to give how much of anything it would be and then I try to see if the direction of my topic with Python for them was working and Also cosine it's for knowing if two vectors are pointing in the same direction and cosine similarity. It's in it's in the case You've got Base that is infinite and sometimes maybe it's important to know about the one that are there and not there I would go on the Wikipedia page. I don't understand it, but there was a nice formula So I used it and I have got the intuition that I'm right. So basically What is the direction of first them Python first them and this thing? Yes, pep 8. I don't respect pep 8 all the time So basically the results are that concerning this topic I'm a little bit of topic But concerning concerning for them and totally in topic, which is I'm very proud of myself. So it's different So it's very trick to algebra is non algebraic tape. I don't have a lot of time I can go back on it later one day But I thought of it. It's possible You can there are times where you cannot define plus but in the context of a distance You can define minus to know how far an object is from another object or a dick. Excuse me a dick Who? Thank you You in fact, I had another backup plan. I always have a backup plan. I used to be a cis admin So actual use text indexation I've been in fact, it's because of my first mission as a She's a march on the end that I knew about it lock passing. It's special dick manipulation Fucking have a geometrical job. I ate the class point 2d when you've got the Complex type we eventually have the quaternions that are more efficient for doing rotation I want to say that I really don't like this I like the 2d point class as much as I like the yellow word example Yeah, another geometry parallelism you catch it So When you've got a dick, you can add it Mutable mapping like bigger cash and dog pile cash are putting the region like a dick, but in fact they are not dick It's it's just an abstraction. It's a view a mutable mapping doesn't have to be a real mutable mapping Nothing prevents you for taking the keys sharp them on the ash and then send it to another computer if The network is always working and stuff like that. It will work It will do parallelism and since every key is a distinct dimension It's without side effect. So you can do it. So it's I mean what I'm doing is very nice guys well Should you use my library? Yeah, we are going near to the question and answer Basically, I'm doing bagel inside right now. I'm a little bit overwhelmed with time I will push the modifications that I saw and the last time I tried to to make my Module pass the Python 3 was a long time ago when it was a pain And I will make from some effort for you I've got a naval library which has a lot more funny stuff in it, but it's I don't encourage it I'm using archery right now The naming is a pain is a pain the punts are not a good idea Don't use my convention for naming stuff. It's really not a good idea. I'm a bad coder on this one Yes, I've got a lot of Mathian this project because when you've got two dimension and vectors you can build Matrix I already did it, but it's non-commutative. So it's piece It's it's I'm not in peace with myself The other algebra I like I would like to work with a commutator algebra a because we've got the float problem And I would like to know how much we are making mistakes when we are using some stuff like floats The close to all the close to operators that could we could implement an object so that we could always know we've we've got profile like Psychometric profile or if I'm Donald Trump and I want to know about people if people are Profile matching a profile. I know it's very utopian use of computers. No, I'm joking much more for In meds since you can use it to know if people are gonna have a disease or not you can also use computer for good stuff, you know and There is a set algebra is that can be implemented in the same fashion I've been working on it a little bit Yes, I'm very bad at communicating ideas. I proposed it to Python ideas It was a flop and it's because my communication skills are below average and that's when we are coming to the Yeah, really if you're not laughing and not redoing my job correctly So a lot of things to Stefan a lot of things to Pia Parizzo Learned me about technicization all the guy at first them. I'm very glad that you're there. It's really putting Lot of a bomb in my heart The guy you did the impressed up because it's not me with doing this kind of stuff in JavaScript And my girl for making this book which was cheap and or a publication. They didn't give me anything But I love them. So I don't have and so normally it's Do I have time for any questions how much Not a lot. So did I annoyed you? Did I bother you? Do you have any questions? Are you happy in life? One question we want to be here the bar is just open open the door I think that you will come back because we have another speaker, but please you can go That's free really free Has in free be The first one