OK, we're going to start. It's already half past. So it is my pleasure to introduce the last but not least keynote speaker of PylonDinium 2019. We have Brandon Rhodes with us here. He's coming all the way from Ohio, which we are very grateful for. Thank you very much. He's a Python programmer. He was a Python US Chair. And I don't want to say you're more of your time because I know you have lots of interesting things to say, so over to you, Brandon. Thank you. And I want to thank the organizers. I want to thank the organizers very much for inviting me. It's been at least half a decade. No, yeah, half a decade, been five years or more since I first got to visit London. And I've really enjoyed my visit. And I've really enjoyed the energy of the conference. And especially how compared to other conferences I've been to in Britain, how many different places you are all from. I've enjoyed meeting you. And I'm here to talk about typesetting with Python. When I was growing up, there was a book on my father's bookshelf. He was an electrical engineer. It attracted me because of the interesting design of its cover, which showed an ancient way of trying to design the letter S. It was by someone I'd never heard of named Donald E. Knuth. And it was called Tech and MetaFont. Not text and MetaFont, no. He named the typesetting system that he wrote after the Greek word technae. They had the same word in Greek for both a craft and an art. And so he named his typesetting system, not with the letter X, but with the Greek letter chi as its third letter, tech. It introduced me as I read through the book and he explained its workings. Introduced me to the idea of a markup language. I'd never heard of such a thing. Instead of being in a WYSIWYG editor, you just wrote plain text that you were completely in control of, and then tech read the plain text and turned it into a document. You had to learn some conventions, some commands that started with backslashes and the proper use of curly braces. But you got to write plain text without thinking much about how it would be laid out on the page and the tech system swung into action and made it look like a professionally typeset paragraph from a book. The book's lessons on how to type these .tech input files were themselves a small course in typography. You learned where to put non-breaking spaces because it turns out it is a minor typographic disaster if a title like Doctor or Mr. or Mrs. ends one line of a paragraph separated from the name on the next line. So I learned about non-breaking spaces. I learned that these four pieces of punctuation are completely different. And it is entirely wrong to use any of them for the other's purpose. The hyphen, the n-dash, the m-dash, and the minus sign look different in the case of the minus sign or at a different height on the line and have completely different purposes. You will be frequently annoyed for the rest of your life if you learn the difference. And again, it's markup language. Even though all you had was ASCII keys back in the 70s, there was a way to separately type each of those symbols into your input file. Its specialty was math type setting. Donald Knuth was a mathematician. And that was the real reason for inventing tech. When math journals stopped paying for professionals to expensively set type by hand, math papers looked so ugly that Knuth could no longer publish to survive as a mathematician. He had to remedy the situation so that he could stand seeing his equations in print. And so he took an entire year off, I believe it was 78, might have been 77, to invent tech. And so its specialty is inside of dollar signs. You have a little language that kicks in, underscore is subscript, carrot is superscript, where you can just say, well, take the sum from k equals 0 to infinity. And out comes beautifully typeset math that looked to me like something from an expensive professional math book. It was a beautiful system. He did not ignore non-math problems like breaking paragraphs into lines. Tech represents the words of a paragraph as fixed-width boxes separated by stretchy glue. Because to lay out a paragraph, you try to make the lines the same length by stretching or shrinking those spaces. This internal representation of the problem of breaking a paragraph into lines has a combinatorical problem, a paragraph within positions at which text could be split into lines, can be laid out two to the indifferent ways, depending on whether you take each break or not, how could we ever find the optimum layout? I'll bet you thought dynamic programming existed only to be a whiteboard problem in interviews. Donald Knuth actually found dynamic programming could solve that problem and provide the optimal solution for breaking each paragraph into lines In an in-squared worst case, actually usually only on the order of the number of possible breaks. So you put in plain text, it turned it into boxes and glue, and it managed to beautifully line up that right-hand side of each paragraph just like in a book. The output of tech was beautiful, but as I then some day, I eventually had a computer powerful enough to run it, I found it was difficult to control. Once you set up the parameters, layout proceeded largely outside of your control. It reminded me of a problem that I've seen recently, which is the tractor and trailer problem. Tractor has a motor and can move forward and back, and the trailers are simply passive. If you've ever tried backing up a single trailer, it can be difficult. They often today consider for factory floors and things like that. Two, three, four, trailers, if you've ever tried to back up a small toy train, you might have an idea of the difficulty here. Backing up a trailer, tractor and trailers is today an open problem in AI. You can find recent papers that talk about could we back up three trailers with an appropriate AI? Trailers are difficult to back up because the input, the motion of the tractor has an increasingly distant relationship to the motion of the int trailer. And that problem, trying to control tech sometimes felt similar, and in general I would say that frameworks in programming, and I use that term in its fully pejorative sense, frameworks often have the same problem, that you feel like there's this little opinion you've been asked for, and it can be very hard to get the form that they form's library outputs to respond to the settings that you're trying to change. Controlling tech felt similar, so I had an idea. What if instead of typesetting systems that we merely configure and then run off and do their thing, what if there were a typesetting library that left the programmer in control for difficult situations that you might want to customize? Recently, I realized that typesetting and printing a book from Python was coming within technical reach. There's now an industry called print on demand. All you need to give them is a PDF and they can send you back a custom hardcover book that is all yours. A real hardcover, case bound, and smith zone, not something just put together with glue. We now have technologies that largely replace all the things Donald Knuth had to invent on his own. We now have true type and open type. We don't have to invent the idea of vector fonts. Instead of a macro language, there are many ways to represent paragraphs and headings and plain text. I didn't even need to implement paragraph layout. Andrew Kuchling translated that boxes and glue algorithm into Python long ago and called it techlib. And we don't need to use text custom DVI output format. PDFs are now the industry standard, but I needed something to print. This is the problem with little projects that you dream about.  I could write the pipe setting myself in Python and have a gift to give to family members, a hardback of his thoughts and memories and history. So, all right, we're going to be re-implementing tech. What would I do differently? If I'm going to try to do layout over again, what's the thing I want to focus on? I chose a specific first goal to see if I could not just re-implement it, but do something interestingly different. What about different width columns? As you're laying out the document, that's not supported in tech. It wants each column to be the same width. As tech breaks a paragraph into lines, it doesn't even know what page the paragraph will land on, because first it splits the paragraph into lines at some width. That's a separate step from then figuring out how many lines of the paragraph fit on each page. So you can't support graphic designs that have one width on the first page of your newspaper and maybe a different column width on the inside. You can't support graphic designers that on the front page of the article have a single wide column to accommodate an image, but then on the inside have a double column. My idea was that the paragraph should ask for more space as it needs it so it learns about any width change when it asks for more space and has to cross to a new column. I wanted to see if I could get that working because that would be a real advance over what tech had been able to do. So my plan was to find a library for rendering PDF from Python, and then invent a new page layout engine. I decided to tackle them in that order. I had already used to make a, I think a program, a printed program for a conference. I'd used Report Lab. It's a PDF library in Python. And so I hooked it up to Andrew Kuchling's Tech Lib and I printed out the first paragraph of my grandfather's first essay about his great grandfather in 1800s Alabama and the result, as you can see, was a disaster. On what? Yes. We're just going to have to stop right here if this is the best that we can do. And interestingly enough, when I used this font on the web, I double checked it, the word war looked fine. Report Lab specifically as a library doesn't understand that true type and open type fonts come with a table, a kerning table that tells you that some letters need to be pushed closer together or they'll leave a gap. It didn't know about kerning, so the word war is an unmitigated disaster here. Fortunately, it turns out there was an alternative. I'd always thought that the QT library was kind of a useless way to write big bloated desktop applications, but it turns out that desktop applications need a print button. And so QT has an entire PDF rendering engine inside of it. But thank goodness, reads the metrics of a font before putting it on the page. All right, so I had my PDF library, I was moving again. The input is going to be, from however my text is stored, a list of typesetting actions, titles, headings and paragraphs, and now I simply need to design the routine that will run through them, putting them on the page. What API should the layout engine use to call each of these actions, like heading and paragraph? Well, let's start by asking, what information does an action need if we're gonna set it loose, laying out content on page? Well, I thought it would need to know the width of the text it's expected to lay out. We'll need to probably know the height of the column, so I wrap that up into a little object, and then it probably needs to know how much of the column's been used already. It needs to know the Y coordinate that it should start at as it adds more content. Each time the paragraph needs another line, it can look at the amount of letting it needs. It used to be a little sheet of lead that you put in between each line of type. Today it's just a little blank space to give a nice line height, not crowd the text too much vertically, and the font's height, and if the current Y coordinate, plus the letting it needs to add, plus the size of the font it needs to add, is going to be more than the column's height or out of room, we ask for another column. How do we ask for another column? I had several possibilities I could try here. Maybe the column itself has a method called next. Maybe we pass a layout object that can give you new columns as you ask for them. Or I could just pass a next column callable. Number of different options. I decided to pass a plain callable, and I knew it was the right decision when I did it, and that wouldn't have been true when I was a younger programmer. I knew that if all the paragraph needs is a verb, a next column that spits out new columns, that's all that I should pass it. Why? To avoid, and I decided I needed a name for it, premature object orientation. There is an old saying in computer science, premature optimization is the root of all evil. Who said that? Donald Knuth. I didn't know that till I looked it up. Premature object orientation, which is my phrase, is attaching a verb gratuitously to a noun when you don't actually need to yet. The symptom is when you see code passing an object on which a function will only ever call a single method. This is the symptom. You're given an object, why?  Why not just pass the verb instead? Premature object orientation couples code that needs only a verb to all the implementation details of the noun, because you receive the whole thing. And so, because of some restraint that I've learned over my career, I simply passed the callable next column that generates new space in the document. I now had a rough plan for an action's inputs. What now will an action return? Can, for example, a paragraph simply go ahead and draw on the output device. No! It turns out it cannot, because there are a number of problems which I can illustrate by talking about headings. Heading is supposed to sit atop the content of which it's the head. I guess that's why it's called a heading. It looks sort of like this. This is a paragraph laid out by my, oh, Andrew Kuchling's Tech Lib Library, called by mine. And paragraph, paragraph ends, and we have just enough room on this page for the heading and a line of text. What if there's no room beneath the heading? What if the column were a little smaller? Well, then you get a typographic disaster. If the column weren't high enough for that line, the heading would stand by itself, not heading anything. The heading, in that case, is going to need to move itself to the next column far better to have a little blank space at the bottom of a column than to have a heading that doesn't have any content beneath it. Now you might think that that's going to be easy to avoid. Can the heading simply check whether there is room for an extra line beneath it? But checking for a free line won't, alas, always work. Why? Because a paragraph might not choose to use the final line of a column because of something paragraphs do on their own. They're tricky beasts called widow and orphan detection. A single line paragraph might deign to remain at the bottom of the page, and then our heading has something to head before the text moves to the next column. But a multi-line paragraph will refuse to leave its opening line alone. Will refuse to leave it an orphan. It will look and say, I can't leave that line by itself. It's considered a sin in typography. So even if there's the space for a line, a multi-line paragraph will pull it up to the top of the next page to look better, leaving the heading stranded even though it looked like there was enough room for more content. Well, okay, if paragraphs are going to do tricky interior things, decisions about where they land, how can the heading predict whether it will be stranded alone? Well, it can either know everything about paragraphs and have inside of it all of the details about how paragraphs lay out. That doesn't sound wise or sustainable. Or I could invent a way for a heading to ask the next action to lay itself out speculatively. And just kind of ask, well, if I stay here at the bottom of the page, what paragraph will you do next? But this is going to require undo. The ability, if layout goes wrong, if I wind up stranded to back up, because the heading is going to have to add itself to the document and the following paragraph. And if it worked, if having done that, there's some lines of text beneath the heading were done. If the heading finds that it wound up stranded and alone, you're gonna have to undo the paragraph, undo the heading, start over again on the next page. That means these routines cannot be writing to the PDF manually. Layout is going to need to return an intermediate data structure that the caller can expect instead of just starting to write type all over our document. Consequence number two is that the intermediate data needs to be easy to discard. I went through several pencil and paper. I don't even try writing code on the stage of design. I tried to figure out what relationship would let me add stuff to a document plan that I could then just take away. And I was startled to discover that a very elegant data structure for it was one I had never used in Python. In Python, I used a linked list. I defined a line as not only belonging to a column, having a Y coordinate and then having some graphics that if you decide to keep the line, you draw on the page. But I gave it a previous attribute, which as I go down the page, I set each lines dot previous to the line above it. Thus creating a linked list of lines that when I need to stop and make a decision, I can run a paragraph's layout one way, look at those lines, run it another way, and the two possible futures for my document automatically share the storage, all the previous document without my having to store it twice because they both share a reference to it. A linked list lets us extend the document with any number of speculative layouts, which Python automatically disposes of as we discard them. Actions, okay, are now going to need a new argument because if they're going, if they're job, if the job of an action is now to append new lines, they need as an argument the most recently laid out line before the action goes to work. Ooh, but look, remember how a paragraph needs to know the column it's drawing in and the Y position so far? Those are two attributes of the line itself. I didn't know I'd be passing lines in as an argument, but now that I know that this gets passed in, I no longer need to separately pass in the column and the Y coordinate. The paragraph learns everything about the current context merely by looking at this line object that I didn't even pass in for its own amusement. I passed it in because it needs to append more lines but it wound up carrying almost all the information the paragraph needs. In other words, designing our return value wound up eliminating two of our input arguments. Always look for chances to simplify as you proceed with the design. It's often pleasant how things simplify as you go along. Another nice thing is the symmetry that this concept of a line provides. The line becomes a common currency that's both our argument, we get one line passed in and our return value as we return a new terminal line back out. But how will the heading action invoke the action that follows? I haven't talked yet about how the heading talks to the paragraph. And how will it tell the engine that the following action's already laid out? If the heading needs to lay out the paragraph, it needs to tell the engine, hey, I've already laid out the paragraph, don't do it over again. Now that I hand back control and return a value. Once again, pencil and paper, I looked at special callable and exception. Should these two things be co-routines that talk to each other? I took a deep breath. All right, and I looked at the reality of however I arrange the conversation between the heading and the paragraph, the real reality is that I just have a list of tuples of things that I need to put on the page. And so I thought of something kind of radical. What if I just pass the list into the heading and the current, I know that sounds crazy. You'd think I would hide it behind something. But what if in this case I just tell the heading the truth, hey, there's a list of actions, you're at position A, go to town, and when you return the concluding line from all the work you've done, tell me how far to advance my counter before continuing. Incrementing and returning the A index lets an action invoke as many subsequent actions as it needs to to compare different outcomes. So stepping back, I wrote several routines to that spec. I looked at the scans at the amount of repetition in my code that this created. Heading took actions in A. Section took actions in A, both used them. But a paragraph which doesn't care about the subsequent action also takes actions in N and A as did other simple routines. They just kept returning A plus one because I laid myself out, continue. And that seemed a bit verbose. For opinionated actions, like headings that care about what follows, it's necessary to pass actions in A so that they can get to the next thing. But simple actions that just lay themselves out and don't care about what comes next, ignore them. And so the simple actions at the bottom are receiving parameters they don't really need. How can I eliminate actions in A from simple actions that don't need them? This is a principle in programming called dry. Don't repeat yourself. And when I thought of those words, I suddenly heard the call of distant decades, the 1990s called and said from the practices back in the 90s that all in Python I can introspect functions to learn if they take actions, arguments, or not. So given a list of functions, I can just leave actions off of these argument lists and use Python's introspection abilities to know whether to pass those arguments or not. The 90s, crazy times. Oh, but then the early 2000s called. I could have a special registry because functions or objects and can be enrolled in data structures. I could have a registry for functions that don't need actions in A so I know to call them differently. The late 2000s called. I could have a decorator for functions that don't need actions in A that takes those two parameters but doesn't pass them to the function being wrapped. All I would then need to do is put that decorator in front of each of my simpler routines and I wouldn't have those extra parameters. Don't repeat yourself. So I looked at the different possibilities that Python makes possible and what did I decide? I decided to repeat myself. I decided after several minutes, I have for probably about a half hour of the liberation, trying different things out, maybe a bourbon. I made the radical and counter-cultural decision to simply pass actions in A to every single routine. Why? Because of symmetry. Everything looks the same if I pass actions in A. When I returned to code months and years later, I relearned my code by rereading it. Given a stack of functions that do exactly the same thing, if half of them use one convention and half of them use another, then I now have twice the number of conventions to relearn later and only half the number of examples of each to relearn from. So I would not have done this when I was younger. I just chose verbose symmetry over asymmetric brevity, which would always have been my choice earlier in my career. As a reader, I need routines that behave the same to look the same if I have a chance of being able to maintain my own software and so symmetry, it remained. I simply had all the routines follow the same API. All right, we're ready for a final design step. I talked earlier about widows and orphans, avoiding stranding the first or last paragraph of a line alone as a human with intelligence laying out type, as it was done for hundreds of years in Europe. How does that look in code? Well, my paragraph routine was a bit complicated because of widows and orphans. The paragraph had to lay itself out. If it stranded an orphan at the page bottom, it had to go back and try all over again, lay itself out. If it then stranded a widow at the top of the next page, had to try again. Inside of this if-else widow orphan logic, paragraph had a hidden, simpler inner routine called repeatedly that did the actual paragraph layout, but you couldn't get to it. It was down at the bottom of all these ifs and elses. So what if you had wanted to just call the simple paragraph layout routine? Well, I had to start adding Boolean options to the paragraph callable in order to turn on and off that outer level of if statements. But Boolean switches are often a hint that we have coupled what could actually be two different routines instead of stranding code inside of other code with a switch to turn it on and off. Can you pull it out separately? Composition, when it's possible, is always to be preferred over coupling. And so, if a heading, it occurred to me, can control things about the paragraph that follows it, could I write an avoid widows and orphans routine that had no content of its own to offer to the page, but that simply controlled the next item, whatever it was, to help it avoid the problem of stranding lines. I thought through it, avoiding an orphan, easy. Here on the left, a paragraph has stranded an orphan, its first line, at the bottom of a page. All we need to do, if a paragraph does that, is have this previous action go ahead and use up with white space, the bottom of the first page, then let the paragraph lay out. It's very, very easy to bump an orphan to the next page and fix it. Before calling the paragraph, simply move to the next column. What about avoiding a widow? I tried to sketch out a solution and found it is nearly impossible. Why? Well, because a widow is created when the very last line of the paragraph falls onto a separate page. This means I have to lay out the paragraph all over again and it's next to the last line, even though there's room for it in the column, needs to decide to move to the next page. How am I going in the middle of the paragraph making decisions to just convince it to not use the page like it's supposed to and move to the next column? How would we ever convince a paragraph to move to the next column early? I went and looked at the inside of the paragraph and each time the paragraph needs another line, letting the height adds them together, compares them to the column height and it's that trigger. I need so much space and it's not available that convinces it to ask for another column. How could we influence this choice? Well, I could lie about the value of Y. I could create a line object that I pass it that has a Y that's a little bigger than it should be so that the paragraph will run out of room early but then I'll have to go and fix all the line objects it returns to be back up where they belong on the page. I could make a fake column object instead of the real column object that's a little shorter than normal and thus force the routine to move to the next page early. We are looking desperately for parameters to tweak. Why? Because we're standing outside of the code that makes the decision. So all of the ideas I was thinking of were really bad ones. It was that feeling of using a framework you're not quite in control of. You're thinking of what parameter can I possibly set here that will make the paragraph behave like I want? We're on the outside. Is that really where we want to be during our code's crucial decision? No. When code is making a crucial decision, you want to be in the room where it happens. The room where it happens. The room where it happens. I want to be in the room where it happens. Right now the paragraph only consults us when it needs a whole new column, right? If it needs another page, another column, it calls the callback that we've provided it. Well, what if I get this concept which actually was repeated all through my code of needing another line, comparing and seeing if I have enough room and either returning a line in the same column or if we run out of room, a line in the next column? What if I wrap that up as a callable? And so what if the paragraph calls back not only when it thinks it needs a next column? What if instead of only calling me back when it thinks it's ready for the next column, the paragraph calls back every time it needs a next line? What if I get that crucial if statement I need to control that's down in the paragraph's own code and bump it up into a callable that I pass in? Then the widow orphan logic can subvert the paragraph's normal decision simply by passing a custom next line function. Right inside of avoid widows and orphans, I can just make a little wrapper and pass the wrapped version of next line to paragraph and I then complete control of exactly the point at which it decides to go ask for the next column and moves to the top of that page. This design was a complete success and completely let me break out widow and orphan avoidance from paragraphs and turn it into a general routine which can apply to bulleted lists to tables to all kinds of information that I might wanna apply the same logic to. But did you catch why this approach is a success? Why was I able to do this slide of hand? The fancy next line wrapper is so simple because we avoided premature object orientation. What if instead of just passing next line, we were passed a whole layout object and next line was merely a method? How would you make an objects, an already existing objects next line method return a different value because you wanted it to? Would you monkey patch it? Would you wrap it in an adapter class? Would you implement the entire gang of four decorator pattern? In object orientation, customizing a verb, one little verb can require trundling out an entire design pattern to wrap the object. But if you pass collables, if you treat your verbs as first class citizens, which is one of the strengths of Python, simple inline wrapper can put you in the room where it happens. I've learned over the years in my designs to start verbose and don't be afraid of that and to simplify and collapse things down later. I have come, despite myself, to value symmetry over special cases, to avoid premature object orientation, and to let verbs be first class citizens, attach them to nouns only if there's a compelling reason like dynamic dispatch. I plan, if you want to look at some of this code, parts of it work on releasing my type setting Python library later this summer, but you can already watch my progress on GitHub. Among other things, it laid out this entire presentation, which is a PDF. And so to conclude, what was that book that I showed you a picture of earlier? That is my grandfather's memoirs. The story, the family history going back to the 1820s, his opinions on religion and politics and death. All bound together in a hardback book. Sure print and design in Toronto, Canada will print runs of as little as two books. I wanted to hold it in my hand and proofread it and have a copy to give my father. So we got everything we needed to fix before we handed it to other family members. It'll be a great gift at people's birthday, I hope, and Christmas. My grandfather is just the little essays he'd written and printed off on printer paper and handed to family over the years. When put all in one place ran to 328 hardcover pages, we had no idea it amounted to that much material. And so I was able recently to surprise my father. I had not told him about this project by giving him a professionally printed hardback of his own father's writings. That looked like a professionally typeset book, even though as I admitted to him, it was really typeset with Python. Thank you very much. Thank you very much, Anton. Okay, we have a few minutes for questions now in the audience. You know, if you wanna disagree with me on typesetting. I'm delighted to have, thank you very much for this talk, I'm delighted to hear it because I've been using tech for about twice as long as I've been using Python. And this is probably the best attended talk on digital typography in the world. This year and perhaps the year before. The only thing I think that can rival it will be Don Canoet's 80th birthday celebration which was surely well attended. So my, I'm sorry, I don't have a question. Thank you. Thank you, Brandon, that was really very lovely. I have just a quite a banal technical question, I'm very sorry. When you received the original material that your grandfather wrote, presumably it was written in something like Word or something like that, I guess. Enroth. Oh, Enroth, okay, so it already had good markup. Well, the dashes and stuff that you needed. So his question was, how was my grandfather's essays marked up? One or two of them were in a sort of a quirky format. Most of them had been written on his Unix PC in a format called Enroth, which you can, if you go look at the source code to any Unix man page, Enroth is the system of markup, Bell Labs 1970s markup to mark paragraphs in bold and italics and headings. The main problem with it is that it's more a styling language than a markup language. It typically doesn't say, unless you're using the macros for a man page, natively Enroth doesn't say, here's a heading. It just says, oh, make these words bold. And so I had to write a Python script that I had to kind of learn his conventions. All right, when there's a line by itself that's bold, I will interpret it as a heading. When there is a line with automatic indentation, I will interpret it as formatted poetry because he included my great, great, great grandfather who started a small saw milling town in Southern Alabama in his old age would sit and write poetry. We don't even know how he learned that there was such a thing. And so I just had to learn which Enroth command he tended to use before normal paragraphs and before poetry. And so it has more special cases, I think, than any other code I've ever written. Any more questions? Yeah, so when will your grandfather's memoirs be in bookstores? I would need to find an agent and I would also need to make sure that everyone is dead because he wrote very candidly about what it was like growing up in the segregated South. He talked very candidly about how different ethnicities within Birmingham, different white ethnicities were divided. And while I think that everything he says is very friendly and well-meaning, there are events he recounts that might embarrass sons and daughters of other family members or he developed strong friendships with other Boy Scouts and some of the portraits of them are of people more racist than the average person in Birmingham in 1935. And so to publish the complete essays I would have to make sure that no one was still alive who might be embarrassed by the way that their parents were portrayed or I guess I could try to anonymize those scenes. But so some things are up on my website. If you go look on the website, from the 90s I've had some of his essays about the oldest history of Alabama up there and distant family members have sometimes contacted me because they learn the names of their great and great great grandfathers from those essays. But some of them will probably have to remain unpublished until I'm sure that anyone who might be implicated or parents might be implicated either wanted them published or was gone. So I guess the next keynote is gonna be ensuring everybody's dead with Python. But my question is, because we have to ask the important questions, were all the dashes the right dashes? In Roth did not give him the full palette of dashes and so as I as editor went through fixing spelling mistakes and rectifying things that needed correction. I assured that all of the dashes were correct dashes. In some cases my Python script could just do it automatically. If the things to each side of the dash are digits, I turned it into an end dash. Otherwise I had to know whether it needed to be a hyphen or an M dash which I had to do manually. It's gonna be the last question here. Last question. So are you intended to just release this as a library or do you have ideas about how to plummet into existing markup languages? I was planning, so there is at the moment as far as I know, no lingua franca between markup languages by which an implementation of markdown and an implementation of restructured text agree to express themselves in some neutral equivalent term heading paragraph paragraph. So I think that it would need not just for markdown but for each particular markdown library because there's probably I would choose a major one and it would probably just need a little bit of custom Python code that spoke to that particular markdown library because while I could choose, try to choose one format to represent them all and ask one of those markdown translators to move everything over to that, generally there's impedance mismatching that can miss nuances. So probably custom code to talk to markdown, custom code to talk to restructured text might work best. Good question. Thank you. Thank you all very much.


So JEE mains 25th January shift 2, I've just got my hands on this paper and I can say that I'm much happier by looking at this paper than I was when I looked at 24th January shift 1. By the way, if you haven't watched my shift 1 analysis video for January 24th, then the link is in the description, you can take a look at it right now. You see, this paper at least wants you to think a little bit and it's living up to the JEE standard even though it is still very easy. It is at least a JEE paper and to learn the 24th January shift 1 was very low level. Anyway, they normalize the marks based on the shift so it doesn't make a difference in terms of ranking really. But a few of these questions and quite a few of these questions are not blind formula substitutions. They do ask you to at least follow a certain procedure for example draw the SVD or conserve momentum, conserve energy. Some of these questions require you to conserve momentum in a situation that is not where you wouldn't necessarily remember that momentum had to be conserved. For example, momentum conservation used in nuclear physics, that is one of the questions. Let's start with the similarities between 24th January shift 1 and 25th January shift 2. We have a question on an object that is placed at a distance equal to the radius of earth. There is a distance of the object from the surface of the earth and now it is taken to a height of twice the radius of the earth from the surface of the earth and it is asking the change in potential energy. Again, MGNH will not do the trick whether you take G effective or not. You have to choose the actual default potential energy question. We had a similar situation in the previous video. Apart from that, we have a few questions on modern physics. There is one dimensional analysis question and one nuclear physics question. Same areas are focused again. So I think this is the pattern that we will see throughout the main series where you will get one question from dimensional analysis definitely. So that is four marks you need to ensure for yourself. Another similarity is that power factor and quality factor. One of this is going to be asked in every paper it seems if this trend is going to be followed which it need not be. But I am seeing a question on power factor or quality factor of an RLC circuit so far in every single paper. The first question in this video which may not be the first in your question paper is a wire of a certain resistance is drawn, is redrawn to increase its length five times. Now the important thing here is the volume of the wire remains constant. If you have done enough work or if you have enough analytical power then there is something you will directly see. But it is not straightforward. It is not just a formula substitution. So I appreciate that these kind of questions are here in the paper for one. The twelfth question in my paper is an inclined plate question where there is a friction involved. So he is asking the minimum force required to push the block up the inclined is twice the minimum force required to slide the block down the inclined. And he is asking the value of coefficient of friction between block and inclined. You have to plot two FVDs and then write down some equations and then you can eliminate unknowns to get the answer. But it is appreciable that at least some question requires you to do some work. Thirteen question again is a dimension analysis like you saw in the last paper. Fourteenth question is on surface tension and the question that requires you to think a big drop is divided into thousand identical droplets. The surface energy of the big drop is Ui and the total surface energy of the thousand droplets is Uf. That is asking Ui by Uf. So this is a standard question really but at least there is something to do here that does not involve a direct formula substitution. Question sixteen is when a stationary nucleus breaks into two bottom nuclei and the velocities are in the ratio three is to two. Find the radius of their nuclear sizes. So first of all you are supposed to conserve momentum which will give you the ratio of the velocity. The ratio of the masses of the nuclei given this velocity ratio. And then you are supposed to use the fact that radius is proportional to the cube root of the mass number and that will give you. So this is an interesting question. It involves conservation of momentum in the chapter that does not necessarily involve that in any question. There is one easy question on the definition of thermodynamic processes. There is a standard resistor series parallel question which we saw in the previous paper also. Again this is a pattern that seems to be repeating. So to pressure on those questions which you are writing. There is an optics formula question directly and induced EMF formula question. And there is a question where a capacitor of a certain capacitance is now modified by sliding in dielectric through the plates. But the dielectric occupies only half the volume between the plates. It's between one plate and half. The remaining half is still air. So this is a question where you have to take the effective capacitance by considering two capacitors side by side with one plate overlapping. So if you have been this kind of question before, this should be easy for you. But it's fine to include different means. Another situation is standard collisions question. This is like the equivalent of FBD questions in NLM. So it's not really a formula substitution but it is a standard procedure of question solving in NLM. Overall there are quite a few questions that you need to write stuff down and not just substitute it formula. One or two questions are good. There is a question on electromagnetism. Where he's asking you boss law, MPS law, paradise law and the magnetism laws law. These four laws in integral form you have to match. The left column is the name, the right column is the law and it's integral form. This is like if you have seen the chapter of electromagnetism you should be able to do this. But I feel good by looking at this question. So this is the summary of this paper. Quite a few similarities, few corner chapters that are not usually covered. They are repeating in all the papers. So pressure from units and dimensions definitely. And on power factor and quality factor of LCR circuits. This is going to probably appear in all future papers. That is going to take on this paper and similarities with the previous one.


Gentlemen, welcome back to the 17th 21 convention event here in Warsaw, Poland. Today I have the pleasure of introducing a friend of mine who I encourage Anthony to invite to this event. So without further ado, please welcome to the stage Mr. Noah Ravoy. Thank you Richard. Gentlemen, we live in a world that is designed to erode our agency. You have a problem? With your health? You take a pill? You get hungry? There's no need to think about what the future brings. You just go down and drop a couple of dollars at a McDonald's and you got food. If you're bored, we got TV shows for you to watch.  If you're lonely, there's no need to go out and work hard to make friends and improve yourself so that you can get good quality friends. You can just go on social media and get likes. There's no need for you to work. This is the kind of men this produces. Men who don't have agency, men who are weak because we live in a world that encourages the culture of weakness. What's the same about all of these things? The same about each of these industries is that they are selling passivity. They are selling men passivity in their lives, in their careers, and in their relationships. But passivity will not make you a successful man. They do this because they fear your agency. They fear that you can't be easily manipulated. They do this because men with agency are dangerous men. They can't be manipulated by politicians, by religious leaders, by women. They can't be coerced and controlled by strong personalities who create their cults around them. These are men that society fears. Fears because they are not sheep that can be herded. I want to help you men become men of high agency. I want you to become the men that they fear.  But first, we're going to talk a little bit about what agency is. Agency, we're going to have a little agenda today. I'm going to talk about what agency is, talk about its limits, and we're going to talk about some of the benefits as well as why agency is vital and especially male agency is vital to saving the West. And lastly, what specific steps you can take to develop your agency.  We've all probably been at some point in our life dancing like a puppet while someone else manipulated or pulled the strings. This often happens when we're younger. If you're a child, you're five years old, you don't have a lot of agency. You have to do what you're told. Ideally, your father will teach you agency. He will help you graduate from that puppet-like state into the state of being a man. Unfortunately, most men, even if they have fathers, don't have fathers that understand how to teach them agency. But what is agency? It's the red pill in action. So we all know what the red pill is. It's looking at the world the way it really is, accepting truth at any cost. But that's intellectual. What does that mean in your life? Where is that going to take you? If you have agency, you're going to take the information you learn with the red pill, the information you learn at something like the 21 convention. And you're going to present, you're going to implement that in your life in a way that will make actual changes. Every year, millions and millions of self-help books are sold. Men read them. Women read them. In fact, women buy and read more self-help books than men. But there's very little implementation of the advice they get. I want you to think a little bit about the advice you've gotten in the last couple of days and think about some of your favorite examples of things that were practically applicable in your life. What is the chance that when you go home, you're going to apply it? It's probably pretty low. It will change your attitude being here. It will change the way you think about things. But the chance of a specific advice being applied is fairly low unless, unless you tap into your agency. If you tap into your agency, you can apply 100% of what you've learned here. It will take, your ability to develop agency will take every attempt you make at self-improvement and amplify the results. So then let's take a look at what agency is and we're going to go from a simple to a complex. Agency is a sense of self-ownership.  If you don't recognize that you can control yourself, you're not going to do it. The second is the actual ability to do that. These are some skills, knowledge, power over your life and willpower that is going to help you to implement what you know you want to do in your life. If you had a choice between the two of these, you always have to start with a sense of self-ownership first. There are millions of people, perhaps billions, that actually have the ability to control themselves if only they knew that they had that ability. They simply don't know how to unlock it. Kurt Doolittle gave a more systematic definition of it. He talks about it as our ability to identify opportunities. Very often, people who will not accept self-responsibility, responsibility for themselves, will talk about, well, I couldn't do this because there was no opportunity. I don't have a girl because none of them like me. I have no opportunities with women. Where I live, there's no good women. Around me, there's no good jobs. I just don't have a skill that seems to be needed, and I can't get a job. It's always about a lack of opportunities because they don't know how to identify the opportunities that exist. The other is to be able to make choices that are consistent with reality, that correspond with reality, and that are possible. You can want something. You can want it a lot, and it doesn't matter how much agency you have, how much intelligence you have. If the thing you want is actually impossible, you can't achieve it. And so aligning your goals with reality is going to help you to develop agency. And of course, the ability to act upon them, unimpeded by limitations. We'll talk about the limitations later. So you see, agency is very important. It's very powerful. Agency is a thing that makes this event possible. It's a thing that makes civilization possible. It's what separates us from the animals. Animals do most of the things we do. They're born, they eat, they have sex, they reproduce, they fight for territory, but they don't have agency. We could be just like an animal if those are all the things we limit our actions to, or if we do those things purely out of instinct. But men of agency, they have something else. They have the ability to consistently make good decisions and then act upon them to execute their will in the universe. Now, agency has limits. Man's got to know his limits. You have limits, physical limits, intellectual limits, limits in time and space. And to understand the limits to agency actually gives you more agency. Part of living in the world that seeks passivity is the idea that everything is possible or anything is possible. Of course, that's only true within the realm of reality. But the part of the passivity is to keep us focused on the unreality. But limits to agency, these are very important to understand. Does anyone know who this is? This is a famous figure. Yeah, this is Atlas. He was a titan, so kind of a god, not quite what came before the gods.  This is what men do. Men hold up the world. It's our labor. It's our hard intellectual work that keeps the machine of society working. We are the ones that build the sewer systems, that fight the wars, that protect and provide for civilization. And it takes a lot of agency to hold up that weight for men. We have to do that within our limitations, though. So the limitations here, knowledge limitation, ignorance. If your knowledge is limited, your agency will be limited, intellectual limitation. There's a limit to how smart everyone is. And if we learn to work within our limits, we have more agency. Mindfulness limitation, that's something you can do something about. You can meditate. You can learn to get your impulses under control. Physical limitations, such as our body. You can want to be something you're not. You could say, I wish I was taller. It's not going to happen, no matter how much agency you have, because you have a limitation. We have instrumental limitations. Our ancestors didn't have the technology we have today. And so they died of diseases which today are easily preventable. If your child dies because you didn't give it a vaccination, today you'd be considered irresponsible. 300 years ago, that's just what happened. And so improvements in technology enable us to be more, to demonstrate higher levels of agency. Paradoxically, they also have been encouraging us not to display our agency. We have resource limitations. If you're poor, you're not going to be able to have the same agency as if you're rich. The reason being is your options, your possibilities are more limited. This doesn't mean that you can't show agency, but it means you're going to have to do it within your limitations. Lastly are the impediments placed upon you by others. And this is perhaps the most insidious one. And those limitations, perhaps, for example, a slave does not have the same level, the ability to demonstrate agency that a free man would have. A person living in a dictatorial government, especially through several generations where society itself has adapted to that, is going to have a hard time showing agency. And we will see this in countries where there was a lot of repressive governments for generations. It's more difficult for people to demonstrate agency. Their ability at a cultural level to be agents of their own desire or their own will are greatly reduced. And of course, you have your personality. This goes back to some extent to the physical limitations since genetics probably are responsible for about 80% of our personality. The reality is if you're a highly conscientious person, you probably already have developed agency because you will feel impelled to do it, and you'll be incredibly uncomfortable until you achieve a fairly high level of agency. On the other hand, if you're a low conscientiousness person, it's going to be very difficult for you to do the work necessary to develop agency. The thing of it like this, there are different body types. We have mesomorphs. We have ectomorphs. And these different people, mesomorphs, they find it very easy to gain muscle. Ectomorphs, easy to gain fat. If you know your personality, if you know your body type, you can train according to what you have gifted naturally, to what your natural genetics are. So it's important for us to understand our personality. Some people might recognize this from Jordan Peterson's work. And it is important. One of the great contributions he gave is making people more aware of differences in personality and how they affect the strategies that you need for your life. Again, one of the other ones I'd like to mention is neuroticism. If you're high in neuroticism, it will be difficult for you to exercise control over your negative emotions.  It's too dangerous.  Measuring agency. How do you measure something like agency? We have a pretty good measurement for IQ. But we have no way to measure agency outside of direct competition. This is why agency is so much connected with the male realm since we are competitors. All men are competitors. We compete with each other fiercely. We can compare it, but it does exist on multiple bell curves. So a lot of people talk about so-and-so hazard does not have agency. The problem with that is it doesn't recognize that there is a bell curve of agency.  And as you get to be a little older, perhaps a teenager, you've developed a certain level of agency. I have a five-year-old son. And he has enough agency to understand that if he has access to unlimited sweets and he eats them, he'll get sick. And he has self-regulated his own consumption of cookies and junk food and chocolate using that information that he gained, that knowledge, and several practical experiences of me allowing him to eat too much junk food specifically so he could get that feeling of what the consequences are. But it's very hard to measure agency. There's no real way. We can't compete or we can't compare people directly. Here's a good question. Who has more agency? Donald Trump, a Navy CL team leader, or an 1840s pioneer with 10 kids? How do you compare these three people? Each of them are highly successful in the area that they have chosen. They have to have a lot of agency to get where they are. They have to have control over their thoughts, their emotions, their actions. But we can't really compare them because they're not directly competing. This is why we're not going to do a lot of comparisons between individuals with agency, but rather, we'll compare ourselves with our past selves. What's some of the low agency behavior? One of the most common low agency behaviors is hero worship. And we see this a lot. We see people that we have our own cases in the Manisphere of hero worship, but we see this everywhere. My politician gets in, that's going to solve all my problems. My guy gets in, he's going to solve all my problems. All I need to do is get on that guy's team and everything will be great. The hero worship is an attempt by individuals to delegate their agency to someone else. That's what hero worship is. Instead of taking personal responsibility for our problems, we decide to let someone else be responsible for them. You do that, you become invested in that person's success, and it doesn't matter what they do, you've become, as Ivan Throne said, insorceled by them, and you're unable to break free from that. Hero worship is a very dangerous low agency behavior. Unregulated emotions. Normally, when we say unregulated emotions, we're thinking of women, but we will also see that often in men. And how do we view a man who can't regulate his emotions, who can't control himself? We'll see him as being unmasculine, untrustable. Yeah, in weak, exactly, weak. And right now, we get a lot of encouragement. Just do whatever feels good. You control your emotions as toxic masculinity, they say.  Flakiness and weakness, you show up to the place as you promised to be at the time you promised to be there. Do you make demands of friends and then not follow through on your half? When I say weakness, I don't mean specifically physical weakness. I'm talking about weakness of character, weakness of personality. Are we unwilling to face discomfort in order to accomplish the things that we want to accomplish? And the slave devices. So I mentioned before that a slave does not have the same agency as a free man. That sounds like a funny thing to say, considering modern days we don't really have slaves in first world countries. Actually, we have a lot of slaves. You see them in the news, hunched over, a needle in their arm. Or you see people, slaves to debt, slaves to education, spending almost their entire life going to school, going back over and over again. There's a lot of people are slaves to social welfare programs. If those programs collapse, those people have no way to survive. They literally depend on the welfare plantation. These people demonstrate low agency. What are high agency behaviors? Well, you're going to have your masculine qualities fully developed. And I don't need to talk much about those. Those are the ones that Jack Donovan spoke about earlier. So the strength, courage, mastery, and honor. If you have high agency, you will recognize the value of developing those characteristics in yourself. The man of high agency knows himself well. He has to understand his own personality and his own inclinations in order to have control over them. A lot of people think about there's an example of an elephant and a rider. And it's used to give an illustration of what it's like to control your own mind, your subconscious.  And you're trying to control this elephant. And the reality is the elephant doesn't have to listen to you. And if the rider doesn't understand the psychology of elephants and have a relationship with that elephant, he can't control it. The elephant will do whatever it wants.  The high agency man takes radical personal responsibility, 100% responsibility. He's in the situation he's in right now because of choices that he made. It's a little hard to accept sometimes. Because very often, we are suffering pain that other people caused us. Very often, we're suffering pain from our childhood all the way into our adulthood. How are we responsible for that? Doesn't matter. If we don't accept responsibility for our current state, we'll never get out of it. Blaming the other people, even if they are responsible and we acknowledge that they have responsibility, is not going to help us to develop the agency to deal with the results of what we've been given. We don't have control over what our governments do. We don't have control over what feminists do, or women in general. We can't control them. We can't manipulate them. But we can take personal responsibility for everything that we are doing, for our reaction to those situations. The high agency man is going to be successful in life. This picture is not the only success that men can have. This is one option. Wife and kids. There's other ways you can choose to be successful. Agency doesn't tell you the destination. It tells you how to walk the road, whatever the road is for you. Does anyone have any questions about what agency is or how important it is? That's a good question. Agency is very much connected with sovereignty. Agency is at the personal level. Sovereignty is at the group level. You cannot maintain sovereignty without a strong group because you cannot compete with other groups. As an individual, you can't compete with another group. It doesn't matter how good you are. One man against three, the one man will always lose. So sovereignty requires you to join up with a group.    They can't help it.  You know, we probably all have known someone in our life, someone who is self-destructive, someone who has lots of potential but they're unable to reach that potential. You know, they get a good job, they do something to make sure they get fired. They get into a relationship, they sabotage it. Why are they doing that? I mean, they're smart. It's because intelligence isn't enough. Intelligence is not enough to be successful in life. It's a good start, who wouldn't want to be more intelligent. But you also need to have agency. You can think of it like this, intelligence, if it was the engine of a car, an agency is the transmission. It allows you to take that potential, that power that you have and transmit it to the road and actually get traction and actually do something with your life. How has agency developed? Does anyone here play an instrument? Anyone play guitar or anything like that? When do you think you started learning that instrument, the initial skills? Probably you think, well, maybe I started learning when I was a teenager or a kid. The reality is, you start learning how to play the instrument before you're born.   When you're born, you're going to learn to listen, you're going to learn to see, you're going to start building up all of these skills and subroutines and eventually you're going to get to a point where someone will hand you a guitar and you understand how to pick up that guitar. You don't need to think about it a lot. You don't need to think about like, how exactly do I move all five of my fingers in unison? Because subconsciously, you have programmed yourself sufficiently that basic tasks are now automatic. And you're going to learn how to strum the guitar, how to pick it, you're going to learn how to coordinate different notes together to make music, you're going to understand about music theory and eventually you'll get to a very high level. Perhaps you become a performer and you learn about stage craft, you learn how to entertain people. But what happens, if something in your early programming went wrong, if something in the early programming of you learning to play a guitar went wrong and you're unable to correctly identify how to understand the world around you, you'll probably give up. You'll probably never learn to play a guitar.  You have your hardware, that's your genetic predispositions. By hardware, I don't mean your physical body, it's more your DNA, what's written into you. You can do a lot with your body, depending on how you eat and depending on your environment, your body will change a lot. But your genetic predispositions, those don't change, you inherit them from birth. You have software, that is your learned behavior, you have a systematic operating system that society gives you. You were raised in Italy, you were raised in Poland, you were raised in Portugal, you were raised in a church or not in a church, you're gonna get a different operating system. And on top of that operating system, will be run thousands and thousands of smaller programs that help you decide what to do each morning when you wake up. You don't have to think about when you wake up, okay, what do I have to do now?  And these things become extremely automatic if they're programmed into us. And we of course function within a system, within a limits to our environment. If you're born in one part of the world, you may have a different set of limitations than if you're born in another part. If you're born to a wealthy family, or a broken family, or an abusive family, you're gonna have to function within that system as a child. Your system will change when you leave home. Now you're on your own, you have a different system. And you get married, you have another system. And you have kids and the system changes again. The structure around you changes and you have to adapt to it. But what happens if in the early part of our personality development, we end up with some maladaptive or corrupted subroutines? What if some of the ways that we approach life have been at the very base written improperly? Or worse, what if we got a mind virus like feminism?  And yes, you may have, on the top of your mind, when you're conscious, overwritten that with new programming, but you might still be operating under some sort of a mind virus. When you're operating under a mind virus, it will prevent you from having agency in the area that that mind virus touches. And the earlier the programming was written, the more areas of your life it will affect. Very common one is that people have an inability to face confrontation. And this is because early on in their life, they had a confrontation with their parents where they said, I don't think that's fair.   And I can make you do it. Kids says, what's going on? Oh my goodness, a confrontation. My parents are my life. For children, parents are life and death. And the children say, confrontation could get me killed. I can't make a confrontation with people. And then I'm talking to them in their 30s. And they're still operating under that base programming that they got when they were five years old. They're still operating on it at 35 years old and they can't make confrontations with their workmates. They allow women to push them around because they can't tell them no. They allow their boss to push them around because they have some programming deep down inside which isn't working. Agency is really, really important. If we have maladaptive programming, we're not gonna be able to exercise our agency. It's important because only male agency is gonna save the West. We're living in a society where millions of men, tens of millions of men have poorly written programming. They do not understand how to control their emotions. They don't understand how to confront people. Why do you think we can't keep borders on our countries? Why do you think we can't address crime waves? Why do you think we can't address the bad behavior of women? Because somewhere along the line, we were programmed not to question mom's authority or we were programmed that we have to share our stuff with everybody and therefore socialism makes sense. Or we were programmed that we're not allowed to criticize anyone and therefore we can't say no, no matter how much of an infraction it is against us. Somewhere along the line, we got programmed with something that wasn't working right. I put a lot of work pressure on men. I said, men build the world. Men have to maintain it and protect it. What about women? Do they have any responsibility? Do women have any agency? Who here wishes women took more personal responsibility for themselves? Yeah, yeah. Shout it out so you can be heard on camera. Yeah, yeah. We wish, don't we? Who wishes that women would vote in a more responsible manner instead of for bigger and bigger states? Shout it out so we hear it on camera. Yeah, yeah. Who wishes that women would act honorably and fairly in divorce courts and not try to divorce rape men and steal their children? Yeah. Yeah, yeah. We wish, we wish. You think it's gonna happen in the very near future? Widespread that women will suddenly say, we have to have agency and wake up? No. No.  We're believing in fantasies. This is because women are designed for children. Women, everything about them is designed to make them good mothers. This is their area of agency. This is where they are capable of showing high levels of agency in the care of little children. My wife is at home right now. She's pregnant, she's got twins and she's looking after my five-year-old son. That takes a lot of agency. She's gotta be back and forth to the hospital. Twins are more tricky than singletons. She's looking after the other one. She's taking care of the house. She's feeding them. I don't have any worry that everything at home is running well because I know my wife has agency for those things. Those other things I mentioned, voting, the personal responsibility in divorce courts, these type of things, women were never designed to have to face those kind of questions. But in society today, we have given women choices to which they have no answer. We have given them possibilities and options which they didn't want. When women first given the vote, very few women voted. Most women thought it was ridiculous that women were given the vote. They had no interest in voting. They weren't interested in politics. They were interested in their families. Now of course, when you offer somebody free cheese, you're going to attract a lot of people. You're gonna attract a lot of mice. So as the government started offering more and more free things in exchange for votes, more and more women started voting. But this is the realm where women have high agency where they're able to act and have control. But how do we get back to a system where women are able to exercise their agency primarily in their domains? It's only gonna work if we have a lot of high agency patriarchs. Now patriarch, you assume father, this means men. This means men who make, and a patriarchy is an organization who make an organization of men who are organized, who are networked and who work together to protect women and children and other men. We need this more than ever because it's only the male agency that will help us save the West who will help us undo the damage that's been done especially 50 years in the West. We're the only ones that have the capacity to do that. So then how do we develop agency? It's kind of like developing muscles. So you can exercise, you can get strong, but if you stop working out for a while you're gonna get weak again. It's something you have to implement into your regular schedule. You can't say I've developed agency and now that I'm here, I don't have to do anything else. I've developed as far as I need to develop. I'm okay. I'm all grown up now. With agency we have the capacity to continue to climb higher and higher as we get older. There was a time in history when the elder men of the tribe, they weren't able to hunt anymore. They couldn't fish, they couldn't fight, but they still had the respect of the younger men of the tribe because they had worked their entire life to develop their agency and they had the ability to pass on that wisdom to younger men. What are some of the practical steps we can take for developing agency? And here's where you guys should take some notes. You have to make three acknowledgements. If you can't make these acknowledgements you can't have agency because these are the basics of developing agency. One, I acknowledge that I can exercise some level of control over my thoughts and feelings. Something, you gotta be able to exercise something to get started. I acknowledge that I'm responsible to control my thoughts, feelings, and actions to the best of my ability within my natural limits. Those are the limits we mentioned earlier. Third, I acknowledge that I must put in the work to develop the mental and physical fortitude to exercise my agency. You're taking 100% responsibility for yourself and that's what this means. If you wanna say 100% responsibility, what do you mean? You mean these three things. This is the intellectual admission of agency but you need to get this down into your heart as well. We often talk about men in emotions and we say, oh, you know, we're very rational and we are, we tend to be more rational but we need to also understand that men are motivated to act largely based on emotions. That could be desire, desire is an emotion. We want something, we desire it. We like someone, that's an emotion. Emotions are very powerful. We need to get our emotions in line with this. We need to desire this ability to have agency. We need to crave it, have a hunger for it. When we do that, it'll go beyond being an intellectual exercise and it'll become something that is a part of us. Then you gotta take some actions, yeah? First it starts up here but then it has to do something. We have to strengthen our mind via meditation that will help us to learn how to sustain our willpower enough to exercise our agency in the real world. Here I'm gonna say something that might be a little controversial. Who here has experience with Asian style meditation? Who here has experience with Western style meditation? Oh wow, someone with, good, it's good. Most, normally if you go into a room, most people that have had, most people have had more experience with Asian style meditation than Western style.  It actually lowers your agency in some cases. Now most people that are Westerners that are doing Asian meditation have actually mutated it to be almost Western meditation. An example, Asian meditation, think about nothing. Well, if you're in a terrible situation and you're trying to survive it, sounds great. If you've got an oppressive government and you don't want the cognitive dissonance of dealing with it, empty your mind. Western meditation's different. It's a meditation of conquerors. It's a meditation of men. It is a meditation where we think about a subject, an objective, and we think deeply about that until we have come up with a solution. It requires us to strengthen our mind to solve problems and to not accept things the way they are if we can possibly change them. That's the meditation of Western men. We want to develop the self-knowledge to understand the current state of our programming and our tendencies and limitations. I have specific training about that. We're using the meditation techniques, Western meditation techniques. You delve deep into your mind and you look at how you are programmed and you can trace that all the way back. Very often people find they can trace it back to specific instances in their childhood. I had a client recently and whenever she would have an argument with her boyfriend or fiance actually, whenever she'd have an argument with her fiance, even a discussion, not quite an argument, her entire brain would shut down. She'd get this rush of cortisol, she'd shut down and she'd go into fight or flight mode and these were relatively unimportant things. We were able to trace it back to her childhood when her father would harshly criticize her in front of guests until the point where she was broken down and crying. And so she saw any kind of confrontation with a loved one especially a loved dominant male in your life as ultimately an emotionally destroying experience. And so when she went into a confrontation and if you have a relationship it's basically about solving a series of confrontations as you get closer and closer aligned with the other person and those confrontations shouldn't be a bad thing. They should be, well, what do you think about this and what do I think and let's come to a path that we can both walk. But for her it was a win-lose situation, not a win-win situation because of her programming. God developed the self knowledge to know where your programming is and what you can do to change it. Then you have to learn how to reprogram yourself. This is dangerous stuff. This is dangerous because you can reprogram yourself wrong. I highly suggest doing this with some help. You can reprogram yourself in a way that gets you in a lot of trouble or waste a lot of time. We learned earlier about someone you reprogrammed. One of the earlier speakers talked about he programmed himself using a book of pickup artistry and he wasted like three years trying to implement it unsuccessfully. He didn't know it at the time but he made some bad reprogramming to himself. This process of reprogramming doesn't end with your attempt to reprogram yourself the first time. The programming that I'm running on now, the operating system I'm running on works well for me as a married man with a kid. I got two more coming. I'm gonna have to change how I organize my life, how I react to things, how I delegate responsibilities. When my situation changes, I need to update the program. Very powerful to be able to reprogram yourself at will. You also wanna avoid anything that's gonna stop you from developing agency or a roger agency. We talked about that in the beginning. We live in a world that's designed to erode your agency, designed to keep you weak. You wanna make sure you avoid any bad association. You got friends with low agency, you got friends that they can't seem to get any traction in life on anything. If you can't help them to join you on your agency path, you may have to limit your association with them. So we usually think of association as face to face contact or maybe on social media.  Well, you spend two hours basically associating with those people. It's a one-way association. They don't pick anything up from us except whatever we paid for the movie. But we pick up from them their attitudes and behaviors. We become more like them. Be very, very careful about that. That's why we have to avoid this demoralizing entertainment. If you're trying to get agency or self-control over yourself in a specific area, watching entertainment which programs you and trains you to believe the opposite is counterproductive to your goals. If you have a problem standing up to women, do you think it makes sense to watch a movie where a 100-pound woman beats up a 250-pound man for two hours straight? Basically, your modern superhero movie? How's that going to help program your mind to be able to talk to women as a man when what you've seen is a fantasy? Avoid this demoralizing entertainment and the negative self-talk that often comes with it. We'll see something, we'll see a fantasy in entertainment and we'll think that we can replicate it in our own life and when we can't, we'll tell ourselves, well, I'm not good enough. Everyone is involved in some negative self-talk at some point in their life. That negative self-talk doesn't come from nothing. Very often, that's part of your programming.   And even though consciously you know it's not true, it's programmed at a deeper level, it's down in the sub-routines.  Now, schools are notorious for this. Who here has had during their education a bad teacher, a teacher that was more destructive than helpful? Noise is please, because they can't hear it from there. Yeah, they can't see it on the camera. Yeah, everybody has a teacher like that. Those teachers can undo the good that 10 good teachers do. They can program deficiencies into your mind since the whole point of school is programming and indoctrinating people. Gotta dig that out. Dig out that negative self-talk wherever it came from. So then, you've done all of this. You're working on developing your agency. What's the point of doing it?   Who here has at some point in their life sabotaged themselves? I have. Oh yeah, yeah, noises, cause they can't hear. Yeah, yeah. Everybody has sabotaged themselves at some point.  That's one thing to do it occasionally. If this is a habit, that's programming. It's not an accident. We're doing it repeatedly. We're doing it because there's something wrong in how we're approaching our life. We're gonna get better regulated emotions. So occasionally, people come to me and they say, I have anger issues. I get really angry for no reason. I can't figure it out.  And when I talk to them about this, there's always something deep down inside where their programming is defective in some way. They don't have the control over their emotions. And they may never commit an act of violence because of this anger, not an act externally. Well, what's happening with all that anger? Where is it going? If it's not going externally, they're turning it inside. They're still suffering from it. Well-regulated emotions. The other thing is, I mentioned this before, we often talk about men and say, oh, men shouldn't have any emotions. And of course, that's not true. We're not robots. We're human beings. I think about the time my wife was giving birth to my first son and my boy came out. And it's impossible for me to think about that and not have emotions of joy and happiness, but they're well-regulated. We're gonna have a relief from anxiety, worry, and fear. And it sounds like it's part of number two, but it's so specific that it's important to talk about it. Who here has had anxiety at some point in their life? Noises, please. Yeah, yeah. Everyone's got anxiety. You don't walk up on a stage without some anxiety, even if you've been up on a stage 100 times before. But that's okay. That's okay if you have agency. Because you go, yeah, I got anxiety. No big deal. I manage it. I know how to make it happen anyway. I know how to get out here and walk and talk to people, even if I'm anxious, because I have agency. So I have a relief from the problems that are caused by anxiety, worry, and fear. You don't want to get rid of fear. You just want relief from the problems of it. Fear is a good thing.  Immune to maladaptive persuasion. So we don't want to be immune to persuasion. If you all were immune to persuasion, there's no point in me talking to you. Because you're never going to get persuaded for anything that I'm saying. But we want to be immune to the bad persuasion, the maladaptive persuasion, that's so common in the world today. We want to be able to understand how to choose the right people to influence us. And when we realize that someone is a fraud, we want to be able to make a pivot and turn away from them. Can't do that if you're a low agency man. You're going to stick with your, you mentioned it before, hero worship. You're going to stick with your hero to the end. One of the big things is you're going to find a community of excellent men. If you're having a really difficult time finding other male friends, especially ones that you respect, it might be because they're avoiding you. That's a little painful to hear. They might be avoiding you because your agency isn't sufficient that they trust you, that they trust to be around you. You know, guys talk about stuff, that if it gets in the wrong hands, we could go to jail now in days, you know? We may not actually do the things we talk about as if they were plans, but if the wrong person overheard us or if we had a traitor in the group, man, that's destructive. So excellent men, they push low agency men out of their communities. So if you want to be in a good community, you got to have high agency. And satisfying relationships. That's not just with women. That'll be with your family.  You're gonna have much more satisfying relationships with people when you have control of yourself, when you have agency, when you're able to act in a way that is consistent with your own goals. Last one, you're gonna reach your potential. Whatever your potential is, however high that is, you're not gonna be able to reach it without agency. Now I created a course for people because achieving agency is something I've been thinking about since I was a child. I grew up in a very high stress family. There was fighting, there was violence, screaming, yelling, abusive speech, all this type of stuff. I grew up in a violent neighborhood. A lot of kids getting stabbed, beat up, saw a kid get his eyeball punched right out of his head once. Horrible stuff. And I had to think of a way to get through all that without going crazy or without killing myself. The only way I could get through all that was to start to learn to control myself. Now I didn't know about agency at the time. There was nobody to teach me and there was no, nothing aimed at children. Went to the library of red books on how to control your body. So I learned from Harry Houdini's biography how he used to control his breathing and his heart rate in order to stay under water for long periods of time. So I started to do that.  The guy's gonna win. I don't have a chance. Doesn't matter if I'm about the same size as him and about the same strength. If I can't control myself, I will lose. And I started to think, you know, this same principle applies to other areas and as I learned to control my physical parts of my body, I was able to control my thinking as well because I realized that the control over the body starts with control over the mind. I've been working on this for, I'm 40. I've been working on this for like 35 years. Intensely I've been working on this since I became an adult. I've developed something to help you guys. It's a course. Normally I charge for it. I'm gonna give it free to all of you guys. There's two versions. There's the self study version. That's what I'm gonna give to you for free. And there is the guided version, which is gonna come out at the end of the month because this is hard. This is really hard. Who here has done Jordan Peterson's self-authoring? Yeah? You have to shout it out. Yeah, yeah. Okay, so a few of you have done that. I highly recommend doing that. It's not a bad idea to do it before you do this. So you have an idea where you wanna go. This will teach you how to get there. This is way harder. This is way harder. I have had clients that this has turned their whole life around and other clients that have nearly had a breakdown, have had to walk them through because they had to confront realities in their life that they had hidden. This is why I have the guided version of the program coming out at the end of the month. We're gonna be teaching groups of four to 10 men. Just come ask me for, give me your email or ask me for my email and then I'll send you this course when we get back. Any questions? So you were mentioning these programings that happen in the childhood which can influence you through your whole life. How would you go about solving them alone? Or I think the best option would be probably to get help from someone or how would you go about these things? Yeah, it depends. If we're at a stage where we are having a serious life malfunction, you know, like something's really going wrong, we need to go get help. If we're sufficiently okay that we can start working on this on our own, the course actually teaches you all the skills to reprogram yourself. That's what it's about. It's about looking at your programming, figuring out how to reprogram yourself and doing the exercises necessary to have the strength to reprogram yourself. You can't just snap your fingers and go from, you know, I believe confrontation will get me killed to man, I can make a lot more money if I'm willing to confront people and I'm way safer if I kick assholes out of my life and I should probably do that. That's a big leap. You won't just, you won't do that overnight and, you know, someone can tell you that's the truth but to internalize it, you need to change your programming. Part of the process of that is as I mentioned, getting to know yourself. You need to understand how that programming got in there and you need to, you know, if you're, I pissed off some feminists recently and I had to ban 5,000 of them that attacked my Facebook page. 100,000 views in three days.  I mean, I'm 40, I'm barely a Gen Xer. People will use insults repeatedly because they understand that hearing the same information over and over again will program people who don't have a lot of agency and they assume you don't have agency. They don't have experience with high agency people. For me, it was hilarious, I laughed at it. But for them, they thought they were actually doing me harm.    Turns out all it is is you couldn't see the board because you didn't have glasses, you know?  So we gotta get that out of you.  We're probably gonna have to tell you that you're smart a thousand times in order to counteract that. And we're gonna have to tell you that you're smart based on reality, objective facts.   Any other questions? He's gonna give you the, yeah. Yeah, this creating agency, is this the same thing like NLP, like neuro-linguistic programming? Yes, neuro-linguistic programming overlaps with the exercises that I give you. The problem is for a lot of these areas, if you wanna do it yourself, if you wanna take the course and start to reprogram yourself, or even use this information to reprogram people around you, which may or may not be ethical, I'm not suggesting you do that. If you're a parent, it's your job to program your kids, but otherwise the same subjects, the same techniques can be used. Very similar to neuro-linguistic programming, but I've simplified it enough that you don't need to understand the complexities of that in order to reprogram yourself. Otherwise you gotta learn that first, and by the time you learn that, you've forgotten what you learned it for in the first place. Any other questions? All right, so I'll tell them we have. Give it up for Noah. Thank you.


Hey, what's up, folks? In this video, we're making 3D printed accessories with Glow in the Dark powder. We were inspired to design zipper poles that glow in the dark so you can see them at night. They have built-in threads and a screw cap so you can easily take out the vial. You can 3D print them in different colors to match the powdered pigments so you have lots of options. The powder comes in different colors that are fluorescent under black light and charge up when exposed to sunlight. Our 3D printed containers are sized to fit these little vials that we got from our local crafting supply store. We designed 3D printed a little funnel to make filling the vials much easier and just way less messy. Using a spoon to add small amounts at a time avoids spills and overflowing. Be sure to check out the learn guide for full tutorial on how we put this project together. Once the vials filled up, we can seal it with the cork tops that were included with the set. They just slip right into the canister and the cap is screwed on top so they're nicely protected. Lastly, we added a split ring to the loop in the screw cap so they're nice and strong. We hope this inspires you to 3D print your own wearable accessories and try out some glow in the dark powder. Thanks for watching and be sure to subscribe for more projects from Adafruit.


the reason that prayer works. There's a lot of people who have prayed for something and something miracle happened. So for example, there is a variation of the universe where you're wearing a black shirt, I'm wearing the white shirt. There's a variation where life's going well for us and life's going bad for us. There's a variation of life where life's going amazing for us. And so the reason manifesting or prayer or positive thinking, the reason that happens, I think in a skip of an eye, you switch into another universe and you don't realize it happened. That's that we call that a miracle. So if you're religious, you call that a miracle.