Welcome everyone to the session DSL architecture and structural design in APL three ways by Aaron Sue. So we are glad that Aaron was able to make it here and join us today. So without any further delays over to you Aaron. Thanks. Nuresh is setting me up already I can see. So I'm Aaron Sue I am a computing researcher at dialogue. And hopefully what I'm going to be talking about today is some high level concepts using APL as the example and I hope that this will be useful both to people who are trying to learn. APL use it in a more non trivial ways but also to people who are doing functional programming maybe asking questions about the way they look at architecture. So, you know, hopefully this will be pretty general as well. But this is a talk about APL. So, you know, when we actually think about APL, what do we usually think about. For most people, the funny symbols are what always grabs your attention. But once you start learning the language the funny symbols sort of become pretty easy to learn and then you start being able to see presentations about these cool one liners and all of these things and then the question becomes well. What what happens when I want to go beyond that what happens when I want to write, you know, an actual application let's say I've got some real app that I will write. How do I how do I actually put together my APL knowledge to make an application. How do I think about that. And the question specifically I want to answer or look at today is how do I think about the architecture of how I'm going to put together an application around APL. And I'm not going to be talking about things like deployments or, or any of those kinds of questions but more about the structure of the application itself. And so the question is how do we go from knowing about these symbols to getting to the applications. And there are two components that I think are often missed in in what people learn about APL and that's the process of encoding your solution as an APL solution. And then a question of flow of how does the, how do your solutions flow together and work as a whole holistic application. And unfortunately I'm not going to have time to discuss both. So I'm just going to be discussing the flow around the system and the flow is sort of our architecture and how we are going to look at this and work with it. But I'm going to take a slightly different approach to what we often see. So we often see an engineering approach to architecture, which, which is, is one that's pretty common but I want to try to emphasize a different perspective around that which is the story aspect of looking at architecture as a narrative, rather than as engineering and the biggest difference I want to highlight here is engineering often includes a lot of explicit structure to organize our software in some fashion or another. And I'm looking at story as a narrative structure the same way you would look at the novel or piece of fiction, where the structure is implicit and behind the words of the document, creating the expectations. And so we're talking about sort of the language of story of how we talk about talking about things or how we talk about stories and any good language is going to have a grammar and a vocabulary and grammar plus vocabulary equals sort of the language and both of these things are designed serve a really critical point purpose in terms of constraints so the whole point of the good architecture is that we're introducing constraints on our system. And this these constraints sort of limit what we can do in very intentional ways. And by designing good constraints we introduce predictable affordances into our structure, which means that the knobs are sort of more clear, and there are fewer of them than we know which knobs to turn to get which effects we want. And this is really critical to a design of an architecture particularly an implicit structural architecture because if you can't see it, you want to be able to see it internally implicitly and so you need these predictable affordances to really jive with whoever's writing the stuff. One of the ways we can think about these affordances is in terms of novels and literature and the steps of a story and I'm taking the analogy I like the best is from Brandon Sanderson somebody who writes epic science fiction and high fantasy novels. And he, in one of his lectures on writing fiction discusses these three elements of a good story, which is that you have to have promise, you have to have progress and pay off. And one of the things is that, when you start reading the story, you're introduced to a number of promises that tell you what kind of story you're going to be dealing with, and then the story progresses through that and then you eventually get to the payoff, where the promises will fill. And I'm looking here at promise, primarily as that set of affordances that you introduce in your architecture that tells you what to expect when you're looking at your code.  And I also want to highlight here a distinction between novel and law. So you've got novels, which are written in a certain type of flow and expectation and then you've got law. And this is sort of like the story versus engineering distinction, where a lot of programs I think approach their programs in the same way that a lawyer might approach writing legal code. And I want to sort of highlight an alternative approach of thinking about this in terms of novel writing. And I'm not the only one to do this, but we do know that if you've got a bad structure for your story, it's just going to be a bad story. So if you're going to look at it from a novel perspective getting the structure right matters all that much more. And Donald Knuth has talked about this in his concept around literate programming he's very famously advocated this sort of narrative approach to writing and composing his programs together. And so the first big way perspective I want to approach this as is thinking about our architectures as DSLs for stories and how that is going to play out. So the architecture here is serving the purpose of delivering a promise to the reader of that code about what they can expect when they're reading this code. And it's really important when we think about this is how are we going to visualize this, and how are we going to verbalize this how do we see how does the architecture affect how the code looks to the reader, and how we construct that. And how does the architecture affect how we talk about our code. So we're going to explore this by looking at three models of the same problem. And specifically, these models are the state machine the combinators, and what I call a linear data flow and each of these is a distinct architectural pattern that I used to explore elements of each one's compiler. And in particular we're going to focus on the elements of the APL compiler that I've been writing. It's parser. And so I have actually implemented the parser to varying degrees of completeness using everyone, each of these three architectures. So rather than a contrived example we're going to look at examples of code that I've actually used and written for the production of this compiler to help the reader do something around the parser. So let's look at the state machines first. And we've had a few talks about state machines already in this conference and that makes me happy but I still think that state machines are an undervalued tool and technique at the architectural level. They see some use in sort of component design but as an architectural strategy I don't see a lot of people talking about it or the benefits, and I think that people undervalue leveraging it. And one of the benefits that we get is it's highly constrained and how you talk about things, and it's very regular. And that structured approach has a lot of distinct advantages and from that structured approach and the history of state machines in computer science literature we have this really rich formal theory that we can bring to bear when we're thinking about our architecture if it's compatible or if it aligns with the state machine. So the state machine can also allow us to be very rigorous and very systematic about our computation at that level, which in turn provides us with something that I feel is, it's not strictly unique but it's a really useful niche which is that a state machine approach can allow us to explore solutions to things that we don't really quite know how to express or we don't really understand them fully. And I want to explicitly think about this in terms of, there are oftentimes places in our code where we don't really understand the types their levels of our program at the architectural level where we might might not be able to describe the full and complete classification or axiomatic type or or or a general type theoretical definition of what this program is supposed to do and what a correct definition means. And that unknown area means that a lot of tools that we might use aren't available to us, but a state machine is available to us because the state machine allows us to really systematically explore a design space. And we get all of this formal tooling around the state machines essentially for free, which allows us to make really powerful inferences around there. That means that things like concurrency are now very accessible to our capacity. An example of this is in web programming is the SAM pattern that is built or on or inspired by TLA plus and it's a way of architecting your web applications to think about state and management. And the one I'm going to talk about today is sequent based enumeration, and this is the one that I found a lot of success using to explore things when I'm really not sure what's going on. Especially at the high level of trying to understand what it is that I want to say and what I'm trying to say, but in a an executable implementation format. So the way we can think about this is you've got you can model a computation as a function from a sequence of events or a sequence of stimuli to a sequence of responses. And so then to define this transformation function from a set of sequence of stimuli to a sequence of responses. We basically just systematically explore all the possible input stimuli in terms of a prefix, a specific event that we're seeing the response to that event, and we associate that prefix and event with some equivalent previously defined prefix if one exists. And if we do this systematically through we end up creating or defining a state machine, and that if we follow this process of enumeration through this we end up with a state machine that is generally correct, consistent and complete sort of by construction. And so let's look at an example of this, the earliest example of this in my code was actually a specification document I did really early around parsing APL because parsing APL is actually a pretty non trivial problem. And I had no idea how it was done because there's no formal spec for the APL syntax, especially a more rich syntax like dialogue APL which is not, which has more syntax in it than the standard ISO APL standard but even then most programming languages don't have a formal specification of the exact types of what what the syntax looks like in some really rigorous formal definition a lot of them use natural language to define a lot of this. So, what I ended up doing is I did go through and I went and created tables for each state looked at the sequence that we might encounter for every given situation, figured out what the response should be, and figured out how it goes through So we saw the first tables and empty table. So then we look at the each sequence, we see what responses we get then we say well okay if we receive this fix statement, it has a no response and then what happens after we've seen a fixed statement. Well, what if we receive all of these stimuli and we get to we lead to all these, these cases, and I went through, and I did this for the APL subset that I was interested in looking at and I explored the function definition the expression syntax, and so forth and went through and looked at all of these states and by doing this, I ended up with a full state machine that actually was very correct I was very confident that I knew exactly what was going on here. But of course, there's a lot of these states. And one of the disadvantages right now this formulations this is a document that was right. And that document is not executable. So I had the opportunity to explore this again. In another case, when I started evolving this. And so I actually the next time around I made this next cutable spec. And so here's a small version of this of the spec here. So on the right you've got this executable spec, which is a state machine. And each of these tables here maps given sequence, given input to a given response and then transitions to the next state, whether that's exiting out of the program or transitioning to a new state so in this case for instance we see something like, if we see a name space token, we're going to start with our name space response, we go transition to this name space. And then we look at what happens when we receive each of these different types. And there are a lot of benefits to this, but one of the which is it allows me to be really systematic and going through this. In addition, this has the benefits of being relatively abstract over the meanings of these pieces. So the reader is defined separately from the actual spec. So I translate various input and output. Stimulations into these input stimuli and responses. And when I actually put it all together I provide the definition of these various tokens, or these various stimuli and responses here.  Now what does this get me, well a it's a fully executable spec. So sorry Aaron, the audience is only able to see the page they're not able to see any quote, if you're sharing page which page. The spec. The document. Yeah, the document. All right, let me try to reshare here. Here we go. Can they see the three windows now. The two windows. Okay, so there should be code now, there should be three windows. Yeah, okay, great, great. All right. Yeah, so to catch up. We've got the table executions here on the right and this is an executable spec. We instantiate that spec by defining all of the stimuli and responses before we call the spec. And we have a reader that gets our stimuli and feeds it in and transitions. So the benefits we have around this is not only is this an executable spec that can serve as the high level architecture of our application. In addition, this spec can be, we can simply redefine the reader and the top level in the context around the spec and get something that will generate test cases for our implementation. So rather than a consuming data we can now generate possible valid output sequences and we can generate these based on some stochastic model like a Markov chain model or something like this. So it allows us to do a whole bunch of things and this regular format in this code also allows us to do a lot of static analysis over these things and we can translate this directly into some other representation and then use all of our formal tooling to do this. We can also do like type checking over this table and verify that all of our state machine is very well formed and correct and is doing all of the right things. We also get really fine grain control over the error states. But those of you who know APL will know how this is being done but those of you don't might not be aware we're relying on two very interesting techniques here because this is all just pure APL there's no abstraction layer on top of APL here this is just regular APL. But it looks like tables. But the way that we're able to get this behavior that we want including this dynamic behavior being able to generate and read and all of this is we're using computed go tos and dynamic scope. So, let that simmer. Think about that for a bit. And then let's keep going here so can you see the slides now I've tried to transition to the slides, or do you still see the code. The slides. You can see the slides. Okay, great. So, let's think about the problems of this approach. Well, one, it's really verbose. And so if you're not careful and your designs are going to be it's going to be really verbose and that's a big problem. Additionally, managing parallels and can be difficult concurrency is easy. If you want to do lots of parallel execution though this model sometimes can be difficult to really get a handle on that sometimes without a lot of extra tooling and I'm going for a lightweight architecture here remember not lots of huge infrastructure And additionally, if you're not careful you can lose your sense of global reasoning about the system so that's those are some dangers when you're working with this. Let's go to the second approach here, which is a combinator based approach. And this is like a bread and butter of a PL a PL is essentially a combinator style language, and you get a lot of advantages by going with the combinator approach but doing combinators right requires that you have a pretty high degree of domain mastery over the problem domain that you're working at, and people who try to do a combinator based approach without that, and everly make pretty confusing pieces of cope. Because the combinator based approach when it's used as an architecture resets the baseline of where your, your, where you're sort of core core vocabulary is and how you think about problems and you have to be really careful about setting that at the right baseline or things get off. Now the advantages of this is you can have a combinator based approach that is way less verbose than something like a state machine. And that that's, and it's a natural fit for, for a PL in general so there's a lot of coherence there. A good example of this is the Tam stat system which is essentially like a combinator based DSL for reasoning about statistics in in a language that makes a lot of coherence and is a lot more congruent with itself, then you might get from a system like Excel or are or one of these others so you can look at that system and see how they've leverage that by creating this combinatorial or combinatoric approach. We look at that same the same parsing idea, except this time as a parser combinators approach, we get something a little bit different so I've pulled up another piece of code can everybody see namespace op at the top. Yes. Okay, great. So this is a parser. This is a version of the parser and co defense written using parsing expression grammars or peg grammars, and it's done using parsing combinators, which most functional programmers should be familiar with it's a very popular approach. However, there's no imports there's no libraries here this is just one pure implementation direct an APL so here is our implementation of our peg parsing grammars. And then this peg here gives us a DSL on top of that which allows us to express our grammars our productions in the syntax that people are familiar with the BNF syntax. And then we have some code here to manage source location so we get error reporting and line reporting and things like that. And then we get to the actual parser so this is our tokenizer here. The parser is using the peg grammars and we have these productions that says so for example, white space is zero or more white space coming through, and so forth and we have, we define all of these tokens, and then we get to the parser. And so the parser is defined just like you would define most BNF grammars with this extra piece at the end where we construct the ast node off of the parse data that we want. And this is written in plain APL on the right after the colon. And this is a sort of an embedded DSL inside of APL implementing these parsing expression grammars and notice that this whole DSL is implemented in that code above. And so we can say like arguments to something is either alpha alpha omega omega or it's alpha, you know, and that alpha omega happens to pass this particular variable test, and so forth down down the line here and we've got you know, various units are either, you know, atomic variables or their numbers or zills or a parenthesized expression and, and anybody who's written to peg grammars or, or read papers around peg grammars could easily interpret this BNF grammar here. So, notice also how compact it is it's it's much more compact than our state machine representation would be. It reads pretty well, it's pretty easy to work with, but because we're speaking specifically in this parsing grammar, if we have to break out and do something and APL does requires to do this. In this case, APL requires us to type check our program at the same time that we're actually, or do a type inference at the same time we're doing parsing, because the, it's, it's not a context free grammar. So, that means that we now have to have certain productions that are difficult to implement it as a peg grammar need to be implemented as regular function calls, and that breaks our flow, it's not necessarily as nice. And we have to have some extra features above the basic one to make sure we can handle things like threading environment variables through and things like that. And there's also one big issue here that really can can start to create problems, which is that now, if we get really complex with some of our parsing requirements which expanding the feature set of this parser did require the just these grammars isn't suddenly I'm gonna have to start composing multiple grammars together and managing a pipeline of these parsers to manage the type checking and things like that and within a given parser, making changes and examining how the effects of the change are going to go through the rest of the parser can be kind of difficult. So, the performance of this was only so so because it required really careful thinking about how our parser was executing. And the, this is difficult to parallelize as well on a like a GPU or a data parallel machine. And these names, the graph here is very complex, the control flow is all over the place. So we're hopping all over this piece of code to see the control flow going from, from like the entry point which is this parsing function to NS, which then has to go to x with an and facts which are up here and then those go all feel like you jump all over the place in this code, and you have to really keep track of what's happening. Even though this might be the standard way people write parsers. There's a lot of non linear control flow, which can be complex. So let's alert me if you this you should be seeing the slides now. So let's think about some of the problems that we can get with this combinator based approach. One of the problems is people, if they don't think really carefully to end up with way too many combinators, and that doesn't actually simplify your problem or constrain your space very much. Another problem that I see from an architectural point of view is you end up with overlapping domains, or domain proliferation so if you've got a problem that you want to integrate multiple domains into integrating like merging domains into some combinator based system doesn't really constrain your design it doesn't lead to good predictable affordances, it can actually lead to a lot of spaghetti code or stuff that's not very clear. And this is made even worse if you don't watch your nouns, which what I mean by that is you got to be aware of excessive data types so it's a big temptation to just end up proliferating and having a whole bunch of specialized data types on the board with your combinators and that doesn't necessarily make anything better in your architecture in terms of clean, easy to read stories. And even though the combinator based approach can be really concise, you can end up with really complex control flow if you're not careful and you don't constrain it properly. The combinator as well in my opinion requires that you have really careful design that has to think at a level above just the specific problem and you have to start thinking about the actual domain above your problem. And you want to aim for a set of combinators and a problem that can be solved within the space of a single unified domain, and not a whole bunch of domains merged together. It's kind of an economical vocabulary, you have to look for a set of combinators and a set of nouns that really has the best power to weight ratio, and if you don't do that, you can get yourself into trouble. And this is like the idea of sufficiency you want to figure out and make sure that your combinators are sufficiently powerful to really express what you want and not break somewhere in the future because they're not powerful enough and then they require all sorts of issues. So combinators tend to fail when you've mingle multiple combinator DSLs together. I'm not really a big fan of that. In fact, DSLs in general, I'm not really a big fan of proliferation of DSLs in any form. And when you start thinking about DSLs as libraries instead of as architecture or as you know we start thinking about as building blocks, you end up mingling these DSLs and then you end up with rather than constraining your rather than your architecture constraining the space of your design space so that you can be really crisp about your designs. You end up instead with just an explosion of possibilities, which doesn't help constrain the design and the story structure much. So I'm really focusing here on thinking about these combinators and these DSLs from an architecture point of view where the goal is to constrain how we design the system to give us really crisp invariance and not as libraries to expand our range of stuff that we're talking about. So then the final approach here is linear data flow. And this is the leanest model of them all. And in my opinion it's also the most desirable it's the one that has fits the best with APL as well as the one that just leads to all sorts of beautiful properties and it's the one that tends to lead people to think of the most magical APL when they think about it. Unfortunately, doing that also requires the absolute best domain clarity that you can bring to bear. If you don't really understand your domain it can be really hard to solve your problem within that domain using a linear data flow. On the other hand, it is the simplest and most direct architecture you could possibly arrange for your system. But the combination of those two makes it really elusive. So you do have to be prepared to like actually sit down and think about this to actually get a hold of it. But if you do that you get really high rewrite family so making changes tends to be much easier. And when you introduce this code to somebody assuming they know APL, it's very easy to teach and read an APL or just instantly goes Oh yeah this is how this goes, and it's easy for them to go through it it's easy to talk about in reference to you. It's, it's more amenable to formal proofs and methods than just about any of the other systems because a linear data flow gets rid of the excessive branching it gets rid of all of the nonlinear control flow in your program, which tends to complicate formal verification and formal testing and things like that and so it becomes much easier to think formally about your code and about the types of your program. And because it's a linear progression through your code is very, very debuggable, and an APL that means it's very visual, you can really visualize stuff around this a lot. And if you write it in idiomatic APL under the hood, you just it's sort of like a parallel for free or parallel by default construction so you can get some really good performance numbers out of this kind of stuff. And if you combine this with some of the other architectural models and judiciously arrange and chain and mess them correctly, then it can help to really tame the other models and keep the complexity under control. So let's look at an example of linear parsing for what we did and this is the current version of what's in the Cody funds compiler right now so let me pull that up. There's no branching or there's effectively no classical branching there's no complex control flow we just start at the top and we just start executing down. And we just keep executing down this program and we just keep executing basic bog standard plane APL way down and we just keep executing. And here there's no recursion there's no jumping there's no extra function definitions and those nothing like that, you just keep running and this parses the whole system. And this is in fact much more feature rich than the other two parses that I showed you, but it, all the way down it's still exactly the same thing it's a block of code with some execution, all the way down, all the way down, and just keeps going. And so, if we drew an arrow of the control flow it would literally just read down all the way, all the way to the bottom, with no loops and no back reference to you know or no, you know no jumping around in the control flow at all. And one of the really nice things that we can get from that is we can actually visualize what we're going to get so in this example here. We've got a, an implementation of the unit deep neural network learning machine learning algorithm so we've got forward propagation here and back propagation here. And so we're going to parse this piece of code using this parser, and we're going to look through at all the steps now I know you guys won't be able to read this very well it's very small, but I want you to not worry about what the code is saying or all the little details but just look at the picture that we're seeing at each phase of the parsing operations right. So the first thing we do is we group them into lines. We mask off any strings we remove any comments we remove trailing and leaving white space, then we flatten it from a nested representation to a flat representation where we start applying type tags to various parts of our system and then we keep tokenizing and we apply, we identify the tokens inside of the system, and then we start actually nesting this so we start extracting this into a tree of identifying the very nested components that are inside of that original computation. We do some more tokenization and we start, you know reifying this into an actual AST. And at this point now we're actually working inside of a tree, and then we start just progressively refining this tree so at the start here, the tree is very flat because we haven't actually parsed very much of the tree. But as we keep going on at each stage, our tree starts to look more and more nested right and here I just changed the representation so we can see we can visualize it up and down form or left and right form. And then what we can do is we can start looking at each of these components as they get more and more nested. And if you pay really close attention into here you'll notice that each of these representations uniquely highlights the actual changes that have occurred inside of the space. With all the rest of the changes just we use a default marker for anything that really hasn't been changed but all the special nesting and tree manipulations that have occurred here. So we highlight that and so it's a way of filtering and so we're sort of selecting and visualizing the tree at each stage. Just what we want to see so it's a way of getting sort of a lens on our tree, and we can see progressively as the tree changes it becomes more and more parsed as we progress through this linear flow, until we end up having the fully parsed tree at the end here. So our fully parsed AST all the way down and you can see the tree representation here. And the thing is here this is not some extra special library that had to be imported out all over the place or anything. It's a little bit of code that then allows me to just visualize the entire progress step by step through the parser at each phase. So it's difficult to get a global perspective on what your co AST is looking like, if you didn't have the linear data flow, doing that in the state machine model or the the combinator model tends to be much more complex particularly the combinator model which is very recursion heavy. We're using a lot of recursion in that model. What are the keys to getting this linear data flow working well emphasis is on the basic block here and the basic blocks is just a piece of code that has a single entry point at the top and a single exit point at the bottom, and has linear flow through that basic block. And when you write good linear data flow APL you're looking for big and few basic blocks. And then between these blocks you kind of think of it in terms of micro transformations of your data through that through the system. And if you pay attention to your data invariance at each of those micro transformations and if you're really crisp about that, the edit distance between these transformations is really small, and it means that there's a very nice linear dependency on your data changes which makes it much easier to reason about the effects of your data changes because every change in your data only affects one point down the chain. So, in conclusion here, what are my recommendations. Well if you can if you can figure out how to do a clean and linear approach, or you can do work to get there work on use the data flow model, and in particular you want to be aiming for this model regardless. So, do you have one of these clear unified domains, where you can really express your problem as a specific user level domain vocabulary well combinators might really be a good approach here. Are you working with something that's inherently stateful and event driven. Well, consider a very carefully designed global state machine that can actually be a really powerful organizing structure on top of all the rest of your code that you might write. Are you using, you know, are you dealing with one of these complex unexplored state spaces where you really don't have a good handle on exactly what's desired or what are you doing. Well sequence based enumeration might really help you explore that space. And finally really embrace thinking about this formally and rigorously from a formal methods perspective, even if you're just doing pen and paper. Now things to avoid here nonlinear control flow right it's that is the more you can avoid nonlinear control for the better. Be really careful about mingling your domains. So it's it's okay for instance to have multiple different types of domains that are chained together the code defense compiler has that we've got a domain of the input API we've got a domain of the tree transformations the code generator each of those represents really a different problem domain. But the thing is that they never overlap. So they're always crisply separated from one another, even though there's no explicit engineering architecture thing that's forcing that separation at the code syntax level. And then be really careful about data type explosion or name explosion in your APL code.  And in the end, I would like to encourage you to think about this as writing good stories think about your architectural problem is what is the story that I'm telling, how do I write a good one. How do I allow people to read this as a story. And now I guess we can look at some q amp a or. Yeah. So the sequence as in sequence calculus a la shang long. No, I'm sequence in a while. Not from there I learned sequence based enumeration from clean room software engineering, as described by Stacy Powell and other people in the clean room software and software engineering space. So that that's where I learned the technique. Yeah, so, and then we've got another question. How is this different from interpreters of DSL's like I could write a DSL and someone else could write a specialized interpreter for the context. So the difference here is we're thinking about this from a point of view that we're trying to design an architecture for our APL code. So what we're thinking about is what is the skeleton around our APL code that allows us to tell where do we put what pieces of APL code that we write and how do they interact with one another. So, this is about this isn't about implementing a new language it's about a sub a sub constrained way of writing APL code, so that you're not writing just freeform APL code all over the place. Yeah, I hope that answers that question. So do the combinator approaches limitations apply the technique or specifically when applied an APL. I would argue that if you're in a language that you're philosophically embracing a large explosion of vocabulary. So a lot of languages embrace that C++ would be one example of that Haskell maybe you could argue likes to have large vocabularies. So maybe doesn't like to have a lot of vocabularies so in places like go, maybe the same kind of combinator limitations will apply. If you're trying to use combinators as a library, rather than an architecture, then those those limitations are different. So if you're trying to use combinators to constrain your architecture by restricting the vocabulary that you use to talk about your solution, then the same restrictions I think apply across languages. It's a tough time understanding how to model a nonlinear data flow and other languages is this an APL thing uniquely. No. However, APL is uniquely well suited to linear data flow solutions to a vast number of problems. So it's technically possible to implement similar types of solutions that are spiritually linear data flow. So even like go line where you're going to have to write lots of for loops. If your for loops are chained together in the correct way and you have in your flow sort of only stops to go through that loop and then goes on and it's very crisp how you arrange the flow through those, then you could argue that sort of spiritually linear data flow. But APL does this really, really well because of the way that APL programmers are trained to attack problems around spaces so you get much more bang for your buck in the linear data flow model in APL than in other languages. However, you can still get a lot of value by applying these techniques to other languages. So look at data flow models like concurrent collections and some other things for benefits that people have got from applying data flow thinking to other languages. So just to queue for me great talk. Could you say that the linear data flow model is like the UNIX pipes connecting the various verbs. Yes, yes, the classic UNIX pipe UNIX pipes is an implementation of a linear data flow model of programming. More or less yes that that that would be correct. An example what is the story narrative you have as the architectural guide for the code events parser and or compiler so at this point it's it's fully linear data flow. That is the architectural narrative, and it's organized into chapters. So it's a story where you've got an introduction, which is your API, you've got your three major chapters which is parser compiler and code generator. And then you have the prologue or the epilogue which is the call out to the C compiler C++ compiler. And then you have the sort of encyclopedia, or the extra book that the novel writer will will define which is the runtime which is implemented in C++, which run, which is more like an encyclopedia. After you understand the individual symbols how does one identify the word and sentence structure. That's just writing code that's just practicing writing code looking at idioms up, looking at things like Apple cart dot info. And just getting practice at playing with problems. And that becomes a lot easier when you begin to think about not just the symbols, but what is the data encoding or the data structure that we're using it. And how we're representing our problem behind the scenes and how we talk about those things unknown types. Okay. To refresh, it was way more than 251 pages when it included a bunch of other stuff but yeah the core functional spec I think was 251 pages for the APL parser and that did not include all of the stuff necessary to define what the type inference would look like for APL. Through that spec I actually had a lot of value because I actually discovered some bugs and I discovered really interesting corner cases around the parser that I would absolutely have missed entirely if I had not done that. So I guess I should have warned people that the slides were going to be what they are, you can slide the, the, the, the icon of the face over and make more space for the face instead of just the slides these slides are definitely written the searing my apologies. But I do like high contrast for some of the stuff so. Yes, Connor's correct. We're not using combinator logic we're using the combinators concept like person combinators. Yeah. Adita asks, is this the data parallel approach to the compiler. Yes, the compiler achieves his data parallel version by implementing a linear data flow model to do the tree transformations, as it's a high level architecture. I'm going to have to I'm going to have to have Sandy clarify high levels of syntax may result in burnout I'm very curious about that. Yeah Bob, I, I, I embrace parsing parsing is a very important tool. So having good tools around how to think about parsing really makes a difference, because parsing involves more than just parsing your programming language it involves parsing a lot of other types of things. All right, that was that was fun. I hope everybody enjoyed that. Thank you so much Aaron for the talk today I think they were something you know conversations happening in the chat as well and we had some really good questions. All right, thanks everybody.


Welcome to ToffeeTV, it's the Everton News Daily. We are in a international break at the moment so it's a little bit quiet out there at the moment but Theo Wolcott has spoken to evertonfc.com regarding the win at the weekend. He said, we're now on 12 points going into the international break. We're on the way up, looking back at the Leicester game. We did play some fantastic stuff. The goal itself deserved to win the game. It was incredible, Guilfee's goal was brilliant. He practises every day in training. He's the last one off the field so I'm not surprised at all. We worked really hard coming into the match after the disappointment against South Fountain early in the week. So to come back and get the three points was important. It's nice to be on a winning team and I'm really pleased with the football we've played. And I've noticed that Theo Wolcott has come under a little bit of criticism from some of our fans about his recent performances. I don't know, some of our fans are always looking for a booboy but I think Theo's done quite well this season. He scored goals, he set up goals and he's a typical winger. Sometimes they have patches of off form and sometimes they have absolutely amazing bits of form. But for me, he's always a threat. Yeah, listen, he's not always perfect but he's always a threat, scored a few goals, got a few assists as I said and he's part of that front four that did really well on Saturday as he said there about Guilfrey Sigarton. I think the players have been expecting him to hit this little bit of paper patch with obviously the goals scored and assists so he's saying it's all down to hard work and that's where it comes from. One of those players in that front four from Saturday Bernard, he's had his assist taken off him from the weekend. The Premier League have said that because the goalkeeper got a touch on it Casper Spiegel it's not his assist. I don't know if that means anything to anyone but I'm sure if you've got a fantasy football team or whatever, that'll mean you've lost points. I doubt it'll mean much to the play because at the end of the day, it is assist, isn't it? It is assist. Strangely, K-Tomb has been given assist for Guilfrey Sigarton's goal but that's the way we are now. Goals get taken off players all the time if it's a ricochet off someone or whatever and assists are the same and as I say, I suppose it means something if it's to do with fantasy football or betting or whatever. Or he's been challenged maybe by the manager to get a certain amount of assists. That one has been taken off him. What else is going on today? Jent Olson, I think we mentioned it yesterday, linked with a move back to Basitas. They didn't need of a centre forward and I think a lot of people are putting two into two together. Obviously he's not started the last few Premier League games and I'd had a bit of a difficult start to the season but Tekish-Football have dismissed those reports. They said he's fully committed. They're quite close to the player apparently and they said he's fully committed to Evan and wants to have a real go at Evan. And that's good news because I think obviously we need a better centre forward but that doesn't mean getting rid of Jent Olson. That means getting rid of maybe other players. What we want is Jent Olson fighting for his place and it'd be difficult for every player to get into this team. That's what we want. We don't want anybody having a free ride at it. In this starting place, we want a squad that's capable of having any 11 players at a time worthy of playing in that 11 and first team. So we want them fighting for that spot. And on the same note, Tekish-Football have said today that Niasz could leave to Galatasaray in January. It only played 48 minutes of Premier League action this year, this season sorry. Hasn't been in the matchday squad for the last few games and it looks like he could be on his way out. I'm sure if Everton could get rid of him and get a better centre forward and maybe a first choice, a new first choice centre forward then that would obviously, that's what you want. That's what you want. If a player's not doing the business for them, you can sell them, get some good money for them and you can bring a real class centre forward and then that's what we want. We want to always be striving to get better and hopefully we will. And we've been linked with the centre forward today hardly enough. Moamba Samata, I think that's how you know it. It's a Tanzania striker. They scored eight times in 11 games this season for Genka, I think it is. It's been reported by HITC. Not a massively brilliant credible source there, but it says a number of Premier League teams have been watching and playing the Belgium League. So I'm sure we'll be linked with more and more centre forwards as it comes to January. Marcel Brands, who was seen brilliantly in that behind the scenes video, greeting all the players going into the dressing room after the Leicester win, looking like the coolest man on the earth. I'm sure he's back from his holiday now and he'd be working hard to bring in a centre forward for January because that's what we need. Now when we need a player, we hope that he goes out and finds that player and brings him in. That's what we need. We need to improve. We need to bring in better players all the time. So let's hope he's out there doing that. Anyway, that's about it from me today on the Everton News Daily. Make sure if you're over on Patreon, you check out the Tuesday topic. We're discussing how do you mean it and Andre Gomez get into this team? Or is it very easy to just walk into it? It's a great discussion, nearly an hour's worth. Let's talk about the squad. Make sure you check that out. Yeah, there's loads of good content on Patreon if you're gonna go and watch it. Don't forget as well. Friday, me and Baz are taking the zip wire challenge in Snowdonia on behalf of Everton and the community. We've really, nearly raised a thousand pounds. We'd really love to get to that thousand pound before we do it on Friday. There's gonna be a video coming off the back of it. I'm sure it'll be fantastic. So if you can donate, check out the link in the description. Any amount of money, a pound would be great. And if you've got any spare change knocking around, it's going to Everton and the community. So please do that. And that's it. Thanks for watching. I'll see you later.


What you call is Gayatri, what you call as many other things. In yoga we call this Tantra Yoga. Improper usage of sounds, powerful sounds can cause serious problems. Someone brought this lady to the program and she had lost her voice almost six or seven months or almost eight months before she came to me. Mantras need to be done with some care. Gayatri is a powerful process, very different in its nature. It is not something that's entirely focused towards one's internal or spiritual growth or that dimension. It involves various things. So this was generally taught to every householder so that for the not so focused people, some substance, some support for well-being, health, success and other aspects of life. So Gayatri is not necessarily for a serious spiritual practitioner. It is more for a householder for whom spiritual process is also one aspect of his life. It's a possibility if it's properly initiated. We don't generally do those things here because except for the Devi, spiritual process here is devoid of all ritual, internalizing the process. It's little more sophisticated and subtle but far more reliable than external processes. When we use external processes to create inner dimensions, it leads to a certain limitation of space entire as to what we do and what we do not do. You can't be twenty-four hours spiritually on. If you are involved in an external process, it's a good support, it's a good aid but it's just that it's a good support. In terms of support, there are many other ways to support this. Above all, those who are initiated by us here, we support them in a completely different way. They… they just have to… they just have to ask for it and wherever they are, there is a support system. Support system, not in terms of teachers and volunteers and stuff. Energetic support is available wherever they are. So because of our ability to provide this support to every human being, wherever they may be, we did not establish rituals of support. It is… it is one of the most popular things that's been done in the country for a long time. Long time means particularly in the last thousand years, I think since Adi Shankara, he propagated this big time. Because when he came, there was a certain degradation of general population. So he wanted to teach something that's mass. Like today we are doing Isha Kriya, mass. Gayathri is a certain process which involves many things. And considering the nature of what it is, I'm not saying it's relevant to date, it'll always be relevant. But socially and structurally, it is not so fitting into modern life as it is because of the things that are needed to make this happen. In today's world, because almost a huge population on the planet today does not stay in the same place.  Five hundred years ago, most people in their whole lifetime, they got up and went back to sleep in the same place, in the same building for their whole lifetime without one day of being out. That's how life used to be. Today I think very, very few human beings are like that. People like me, if I sleep on the same bed for two nights, I think it's a fortune. So those days are gone. Because of that, certain rituals and certain ways of doing things, the relevance of that has come down substantially. I'm not saying the relevance of the basic practice is gone now. But social things have changed, situational changes have happened which doesn't facilitate those type of practices much. It's best they're internalized. Internalized processes can be done anywhere. We are not depending upon what kind of atmosphere we are in, what kind of people we are with, it doesn't matter. So yoga is one hundred percent internalized. What you call as Gayatri, what you call as many other things, in yoga we call this tantra yoga. When I say tantra yoga, today tantra has found very ridiculous expressions, particularly in the western nations.  Now, tantra just means technology. There are various types of tantras. So if you employ technologies where external material is involved, that's called tantra. If you employ technologies where no external material is involved, it's completely internalized, then we call it yoga. If we want to create tantric processes, right now anarathi is happening in the Devi temple. It's a kind of a tantra, a puja happens, it's a tantra, an abhishekam happens, it's a tantra. These are techniques or technologies to create certain impact. But now if you want to do tantra, you need the form of the Devi, you have so many limitations. Tantra is useful. When people are not willing to do anything by themselves, they want somebody else to do it for them. So one person who's learned how to do it facilitates it for everyone. The danger of tantra is exploitation. There was a fabulous tantric culture in this country. In the last two generations, we've beaten it down because it led to such states of exploitation and turned so ugly, we thought it's better without it. So last two generations have really pushed ritualistic way of life out because it was so exploitative. So internalized processes, the safety of it is nobody can exploit it, it's you.  There is no room for exploitation. At the same time, there is no need to throw everything out. That would be like throwing the baby with the bath water. You don't have to throw everything out, carefully maintain tantra. It's okay. I want you to obliterate this silly idea that you have. Tantra means sexuality. No, it's got nothing to do with sexuality. It has got something to do with using external means to make things happen. Whatever. Because both yogis and tantrics are more like scientists, making… seeing how to make it work. They might not have fit into the moral codes of a particular society at a particular time in history. Because of that, they might have gotten this label. Because of that, they've gotten this label. But otherwise, it is nothing to do with sexuality. It's about learning to use external material for your well-being. Not just yours, the larger group of people. So Gayatri belongs to that realm. Nothing wrong with it. It's just the suitability of today. The mantras are a powerful process, but they need to be properly used, properly initiated. Improper usage of sounds, powerful sounds can cause serious problems. I happened to be in United States and someone brought this lady to the program, it was a seven-day event. And she had lost her voice almost six or seven months or almost eight months before she came to me. Voice totally gone. She's seen every doctor, every expert voice gone. She can't speak a word. Simply, empty air comes out when she tries to speak without any sound. They have not been able to detect anything improper with her vocal cords or whatever. Everything is proper, but she can't speak. So naturally, when nothing is there, they will say maybe there is a polyp, maybe there is this, maybe there is that, maybe in all kinds of cortisones and this and that. And somebody is suggesting a surgery. There's nothing else they want to open up and see. So they brought her to me and I looked at her and then I asked, did you do any practice, any spiritual process? Did you do any mantras? Then I said, okay, you be in the program, let's see. So one day, two days, three days, she's becoming anxious because her voice has not come back and I have not said a word about her vocal cords. So by fourth day she's very anxious. Then she came again and I again asked her, did you do any mantras? When I looked at her, I thought she must have done something. When I looked at her, it's very clear to me she's done something. She said, no. Then I asked, did you come under the influence of some mantras?  She said, no. Last day she's very anxious. Then again I met her and I said, you must have done something or you have come under the influence of some mantras. Tell me, what have you done in the last year, year and a half? Where all did you go? Then she said, I know she writes, she cannot speak. She said she did Gayatri. Oh, I said, where did you learn Gayatri? She said, I went to India and I bought a CD. Whenever I'm going to work, you know what learned to traffic is such, she takes two and a half hours to reach a workplace and when she's stuck in the traffic, they'll do Gayatri like this. And the traffic clears up when she's driving, she'll leave the Gayatri alone. When she has time, she'll just repeat with the thing. You know she's an American person, you know how she will repeat the mantra. We don't know already the CD itself may be wrong. And on top of it, she's American. Sanskrit words will not come easy to her. No, no, I'm not commenting about America. If you have not spoken the vernacular language, to utter Sanskrit will be very difficult. So then I knew that she's done messed up with Gayatri. I said, see three months if you come and stay with us in India, we will make an attempt, no guarantee, we will make an attempt and see. She came here and we put her through a whole lot of process. In three months, she recovered about 70% of her voice. Still 30% was not there. That is 30% not there means I first of all put her on, said don't make an attempt to speak. At the most in a day maximum one hour you can speak, rest of the time no speaking. Slowly, slowly she improved. Even then if she gets emotionally excited voice will go off. If she gets little emotional excitement voice will go. In about one year's time she recovered almost 90%. But still she found if she got angry her voice will go. I said that's good. But it stayed that way.  You don't say bad things at least. So over three, three and a half years time she recovered almost 100%. Only very rare moments it would give up. But generally almost 99% she recovered in about three, three and a half years time of practice. So mantras need to be done with some care with proper instruction and guidance.


To Inside Leather History of Fireside Chat, I'm the producer and the host of the chats. I'm Doug O'Keefe, and the Fireside Chats are a program of the Leather Archives and Museum, which is hosting us tonight in the ATM Auditorium. So a big thank you and shout out to the Leather Archives.  The Leather Archives strives through this program to capture the stories of the people who shape our community. Once in a while, an amazing opportunity comes along and that's what's happening tonight. I have the privilege of interviewing someone that I call family in this community. Please welcome Leslie Anderson to the stage. We are filming and it is on Facebook Live. We'll have a few minutes at the end for some questions. We don't normally film that, but just so you know. Okay? Yes. And welcome Leslie. Thank you. I don't know. Are we feeding back still? It doesn't sound right to me. Okay. So let's start right at the very beginning, Leslie. Where are you from? Tell us a little bit about where you grew up, about your family, Well, I'm originally from Ann Arbor, Michigan. My father's side of the family is all from Brooklyn, New York. And my mom's side of the family is from North Ontario, Canada. And when I was about six years old, my father packed the salt up and we moved to Albuquerque, New Mexico. Like night and day from Ann Arbor, Michigan. But I pretty much grew up in Albuquerque, New Mexico. Tell us a little bit about the Albuquerque you knew. Albuquerque is like a moment frozen in time. It's, yeah, evolution is kind of left them out sometimes on things. But interestingly enough, when it comes to the gay community, they are very progressive. Why do you say that? Well, they're very out and outspoken. And maybe it has something to do with the culture in Albuquerque. It's got kind of a hometown, small-town feel. Without too much of the good old boys mentality, but that's still there sometimes too. Well, I should think with Albuquerque that it would have a very sort of a Southwest influence. How do you see that? Yeah, but it's also at the very end of Route 66. So it's connected to all the America on the way. There's a lot of nostalgic cars, a lot of very down-to-earth people, and an excellent climate for leather. But you told me when we prepared for this interview that your father had a major influence in your life. What did your father teach you? I think my dad had undiagnosed ADV. He had a genius IQ. Sometimes though he was a sporadic in it. Sometimes he didn't have a common sense of a sweet. Let's share this talk a little bit. Anyway, he didn't have a common sense sometimes. He would do things like, I walked home and forgot the car to work. He would think something like 160 IQ would do stuff like that. But he did it all the time. All the time. And he was held back a couple of years from school. You were saying sort of a perpetual student, but where did he excel? In what areas did he excel in teaching today? He taught me patience and persilence in a way. The attention to detail. My father could sculpt pretty much anything out of wood. He could construct anything. He was handy with all kinds of tools and artistry. He had a very creative kind of eye for many things. He encouraged all of that in me. And as it turns out, me having ADV also, I learned to center myself and be able to hold on long enough to retain more things than he did. For example, I've never forgotten the car to work. You also mentioned that your father taught you a lot of life skills. For example, what life skills did you teach? I think basically my dad taught me not to be so impacted by other people. For lack of better analogy, I'd say my dad really gave me the fundamentals of self-esteem. As it turns out, that's a really good skill to have. Especially when you're an unusual teenager and you're awkward in any way, like most teenagers are. He really looked beyond that in me. And he also would encourage some pretty bad behavior on my part. At times, for example, he said I was getting bullied in a gym class and he said after my mom had said, you know, just turn the other way and so on and so forth, my dad said I'll give you a dollar for every one of them. You just punch right in my face. So I went to school that day and made $5 in gym class, but I got suspended as well. You've spoken a lot about your father, but what have you saved up your mother to tell us? We don't have a long enough program for my mom. My mom was really... She was magnificent. She's kind of my hero a long ways. She just recently passed away. I say recently. It's three years ago now, but... My mom was a survivor. She was a supreme survivor. She was... When she was growing up, she was very severely, physically abused. And on my mother's side of the family, I come from a long line of addicts and alcoholics. I made some five-star railwaters. In fact, my mom took me to a family graveyard in Northern Ontario on a little suburb. I think it was suburb or steeped. That's the name of the little village, yeah. But all of her family is buried in this thing. One of her cousins was with us and kept pointing out, oh, there's so-and-so such a tragic thing about that accident on the stairwell. Oh, there's uncle and so-and-so, you know, that thing with the liver, yeah, yeah. So don't find out that they all, one way or another, died from alcohol, so basically addiction. So I kind of had a precursor to that, but despite all of that, you kind of have to take the good and the bad with people.  Taking things on a slightly lighter note and maybe get a laugh in here. What do control-top pantyhose and ruble have in common? This comes from my father, some family. Control-top pantyhose and ruble have flat-bush.  Yeah, she knew where that came from. My father said, if I can impersonate my aunt, my father's older sister, she's really a piece of work too, she'd say, John, come to the windows, the gaze, and have a little of the parade. When we hear you speak, I hear other people, there's a bit of a Texas twang in your accent. What can you tell us about that? I'll tell you a bit. In addition to having an ADD, I had a speech encounter. I still have it, it's a stutter, a scam. And so I went to a speech pathologist and she was from the Panhandle, Texas. So I did get my stutter under control to some degree and it's still a work in progress, but I also picked up, was it just a faint amount of accent? You are actually the youngest certified diver ever, from age 11. Tell us about that. When I was a little kid, I used to watch the Undersea Worlds of Jacques Cousteau and it was on Sunday nights before the, you know, wonderful world of Disney and whatever other shows. And I'd run with my little blue rocking chair and I would sit plastered up against the television and watch this. I was just in raptured. I knew exactly what I wanted to do. I proclaimed it from when I was four or five years old and I never stopped. And so my father became acquainted with a master instructor with the professional association of diving instructors down in New Mexico, all the places you think landlocked New Mexico. But there's some good diving there. And so this man said if she can pass all the, you know, physical tests and do this, then she can be certified. You know, it's not unheard of, but no one's ever done it before. And I was the only hold, I was able to pass all the physical tests, but I was too small for any of the equipment. So everything had to be adapted just a little bit. So my dad was very addicted to that. And quickly I grew out of my wetsuits and stuff because, you know, Pee-ree came on. But, you know, I got certified when I was 11 years old and then went to Mexico to the seat of Cortez and did my first big ocean under water dive with probably 200 hammerheads circling right over me. It was incredible. I was hooked. I was hooked. I was still hooked. But what physical testing was requiring you? Just swimming, holding the ground, not panicking. I would say it has a lot more to do with feeling comfortable not only in the water, but in your own skin and being assured. Because I could go through all of the exercises whereas some of the adults would get really panicking. I just followed my dad's guides when it comes to that stop, they get control though. So that was kind of my mantra for that. I know you've gone diving in various countries around the world. Tell us a little bit about that. One of them was South Africa, wasn't it? Yes. I, as I said, I was hooked on sharks and I had a dream of going to South Africa. So I dive free of the cage, dive in the cage but also free of the cage with great white sharks. And so it took a lot of work. And I looked and looked and finally found the right tract expedition for me and a couple of friends. We're doing work for Shark Week. And they loved my company. And so I basically was a shadow diver or a safety diver as they're called. That just, my basic duty was to purchase on top of the shoulders of some of the hammer people and turn them in the proper direction of the shark who's coming at us. And sometimes push the shark off. Which I thought was just great. It was a party. I really enjoyed it. And they got fancy ideas because we had one guy who's doing prototypes for GoPro cameras. He said, I got an idea. I was like, you know, you should always go the other direction when someone says Dr. Mudo. He basically hooked up a GoPro on my head and they dropped me into a fruit-and-bake ball of sharks and sardines and all kinds of predators. I was getting body bulked by animals that they fascinated me. They nothing hurt me. I just kind of looked. Everything just kind of grazed into me out for me. It was like a transcendent state. It was almost in a meditated state. Really incredible life experience, but yes. And those with great whites out of page and a number of other sharks. It was really well worth everything that they did. You were active very early on and your parents' closet was fascinating for you. Tell us about that early sexual exploration. What all went on there? Well, how much to say about this on Facebook Live? My parents had a lot of shoes and belts and whatnot and when I was a kid they had in our house they had a very large organized cedar closet and it was something about the smell of the leather and the cedar wood. It just really turned me on. So that's probably about as much as I should say. When I was 10, 10 years old, I firmly recall indulging in what is basically a moronic speciation. Yeah, I knew I was really different. I got off really and I hadn't gotten off, let's be honest, at all until that experience.  But then I met other people that engaged in this sort of thing. That's a whole different story. Well maybe it went real. Two shakers of the lady who talked a little more about that. One thing that came up when we were preparing for this interview that I found very, very funny was you used a pirate spear to force Lil Bo Peep to strike. What was that? Well this was one of those Halloween's when I was little. This was still in Michigan. I dressed up as a pirate and had a plastic saber. Feeling really mighty with that. My neighbor's daughter, she was dressed up as I recall was Lil Bo Peep, something like that. But I held Lil Bo Peep up the throat with my saber and made her take her panties off. She did. She knew Lil Bo Peep was bad. She did a good thing when my father called us. He started and stammered and said, You can't do this. Listen, we don't know more of that than don't tell your mother. What happened to Lil Bo Peep though? I don't know how to do it. I don't know. I don't know. Maybe she's a circuit gentleman on the field. I would like to thank Lil Bo Peep made it out of childhood. I'm building on that a little bit. Let's talk a bit about your coming out because it was very interesting. Did you even have a concept about homosexuality? I guess this is the part where she mentioned that I felt much more akin to men back then. It wasn't that I wasn't attracted to women. I was very attracted. I mean, Lil Bo Peep could exist. But my perceptions of lesbians, women who were like this, it was very different in New Mexico. This was in 1988. And back then, when I was in elementary school, we knew the other gay kids. But nobody outed anybody.   It was truly scary. But we had a little network of each other and when senior problems or homecomings or whatever came, we stepped up and went with our counterparts. And we always double dated and whatnot to these events. And by the time we got into college, there was a lot of women's studies classes. And I have to notice that there was there was actions of women. And there were what I would call lesbians. And there were dykes. And the way I, the point that I had in my own mind was a dyke was more like me. We were more sexual. And a lesbian was political. Almost strictly political. And also lesbians tended not to like men at all. So obviously I couldn't align myself with that. Plus there was a kink factor. So it was really kind of a struggle to find exactly where we belong. I imagine it's still like that for people. But that's where my perceptions of actions start. Where do you feel you would fit in that? Well I'd say I'm a lesbian dyke. I would say that I'm probably masculine on the non-binary level. And again, that wasn't even something that we could hold on to. There weren't those options. I know they're not options, but you know what I mean? When you were aligning yourself with other people or making other friends, you couldn't really define things like that. If you were too much, you would make it trouble. Everyone knew. And plus there is always the stereotypical badgering that I had to endure. I had very large female penthouse centerhold breasts. And people would say things, even family, well-intentioned family would say to me all the time, God, that just, that isn't fair, you know? That dyke got those breasts. Why didn't I get those breasts? What do you think that other women don't like this too?  I just put it off, but it does damage over years and years and years. We're all just kind of fighting back a lot of that. You mentioned things that other family members said that you also told me your parents really rose to this occasion. Tell us about that. The first thing to know that, I think the hardest thing for my mom ever to accept was the concept of non-monogamy. She just couldn't do that. You know, she was raised from a cat like them all, but she tried. Both of my parents, after they got over the initial shock, both of my parents really got involved and participated in everything around gay, lesbian experience. And they were very supportive. In her 70s, my mom was, I'm sure, the only woman who knew the hanky code. She had particular colors that she would say, no, brown, and this hasn't come out. No, no, no. And she would actually make people believe the house. He put the hanky in the car and then it came back.  She knew what was okay and what wasn't, but they both got very engaged. My mom, especially when she was a registered nurse, she signed up for all kinds of organizations and would go and do home health care for AIDS patients. And that was extraordinary because we didn't know what did we want about AIDS. I mean, we do now. And this is amazing what has happened over the years in terms of AIDS and our scientific medications and almost incredible. But it didn't start out that way. It was the plague and it was the death sentence. And there was panic and fear, unbelievable fear.  The family is, it just, before it decimated the population, it decimated our soul. And my mom said, look, I've been around with tuberculosis and smallpox. I don't have any little AIDS. You know, stop me from doing this. And she was our old model for so many of us. Just, you know, you can learn a lot from people who are fearless. You just pay attention. But you also said that your colleges were a very formative time for you. Tell us about that. My father passed away in 1985 when I was in my undergraduate studies and I felt hurt. I mean, I just, I really developed my drugs. I am recovering now for, this October, it will be 29 years. Wow. Back then, I just, I felt a whole loss of purpose and I just didn't care. I literally didn't care what I put into my body or what I did. I did everything I feel, which is a good and bad performance to it when it comes to somebody who's, you know, they're early 20s, you know. But I started to attend certain classes and got involved in some groups. And, yeah, I went to the bar scene and I started to see drag queens and rodeo guys and Leatherman. So that opened the doors. You spoke very beautifully about the Leatherman you met in your journey. Tell us more about that. Well, as I said earlier, I was very aligned with the men and I immediately sought out the men not coincidentally, who were father-like figures. So daddies, a gentleman by the name of Philip Laka, who passed away from AIDS in 95, but he basically was a daddy to many people in the community and he treated me just like all of his family members, all of his cis men family members. But he didn't make exceptions for my being female body. He made exceptions for the fact that he saw me as a dominant, which was extraordinary. I mean, to be seen by somebody that you admire and you respect and then everyone else in the family looked at me that way too. To be seen, I don't know of you, everyone experiences that differently, but it is so self-affirming. I think it's so critical for people to have that self-affirmation wherever it comes from. It builds you up.  That's what it did for me. One person that was very critical to me was a professional female impersonator by the name of CJ Diamond. His real name was Chris Herrera. He died of AIDS in 1996. In fact, most of the people that I have known and loved and who I call family are dead from AIDS. And all within a certain period of time, within I would say five years, I probably lost 100 men that I was very close to and a couple of women too. CJ was incredible. I would say CJ was the first man that I've ever been in love with. I really fell in love with CJ. And the best of my worlds was he was something else. He's a professional female impersonator. He taught me some strange things that interestingly enough, I use an IML. He taught me stage craft, a lot about lighting and dynamics and how you move on stage and what's visible and presenting your body in certain ways that are very subliminal messages to an audience. And I find that that was really invaluable.  And it is still missing. You taught a lot of stage presence. Or give us an example of something in that arena that you taught me.  You know, what you could do with an audience by looking into the light versus looking into someone's eyes. They cannot see you looking into their eyes from a stage dynamic, but they can see you looking into a light. So, he would tell me to make a pyramid as they walked out to a stage and to find target lights that would stop and align my look at those lights. And if you look at people who are very, very good and have a stage presence, they work the stage in that same kind of a manner. And they find target points, whether it be people or a light or whatever it is. And then you incorporate your words to go with that message as well. Tell us about your first foray. Is it to who like you? When I started in my childhood, my mom was a nurse, as I've said, and she worked the graveyard shift once in zero. They were delivering all the fun stuff. And back then, nurses wore white shoes.  Well, she did. And I was a little kid, but my dad let me stay up late every night.  And I would leave them out for her.  Because I really miss my mom when I was growing up. I never saw her. I didn't miss her mom or my dad, but I really yearned to be around my mother and that was just the best feeling. You also said when we prepared for this that true good life comes from the heart. Explain that. Well, I believe that even you can teach anybody some basic skill type things. It's like giving somebody the ingredients and a recipe to making something. And most people can follow those instructions and do an okay job. But that's just maybe shining your shoes. Boot Blacking is something that you either have a boot black heart or you don't. That's my feeling on that. And what that's based on is more than anything else it's a willingness or a desire to serve to serve something from your heart to another person's heart. It's a gift that only you can give and this is how you make it work. See, it even makes me smile just thinking about that. It gives me a boot bump. It's the willingness to serve. What is the greatest lesson you've learned in this journey? Well, I had a great mentor for Boot Blacking. His name was Hank Mearsbone. Again, he died of AIDS in 1996. He was a professional rodeo, a bull rider.  He had such an Oklahoma accent and he chewed the back bone so everybody liked the person Hank Hank just a little bit. He was like, if I knew then I would think that he got to get his goat. He was like, hell, that's mean to him. If I had known that you wanted to go then I just seemed to have that you got to go and I thought, you know, that was good. But yeah, almost everything he said, if he said something at all it was either really important and if it was really important it was guaranteed unintelligible. But he taught me, probably the best thing that he taught me was to know my worth. He didn't allow me for a year and a half to charge anything for my group life in services which made me angry and frustrated when Hank had a lot of the time. But he wanted me to really feel valuable. I had so much to give. Look at all this work that I put into it. Yes. Now you get it. And that as it turns out is an incredible lesson not just for group lives but for everyone. You know now your worth you will be subjected to the assignment of what everyone else is your home. You may not like that. So you need to know this. You need to feel that.   Well, I'm an energy player with my hands. In fact everything that I do really comes from my hands. My heart, my hands. And I would feel drained and being somewhat empathic in a lot of ways. I want to feel I'm really drained from group life and I didn't like it. So he would impart on me to become a conduit. In other words, allow the energy whatever it is to move through you but don't keep it. Don't ever keep it. It's bad will turn. It's good will turn. But there's no difference. Move through.  But as it turns out that's something that I've used very successfully in IMLs. I know that a lot of people here and a lot of viewers worldwide will want to know where did you acquire a lot of your skills that you bring to bootlocking? I honestly am kind of self-taught. Because there was no bootlocking school even though I apprenticed for a long time to hang. I also apprenticed to a saboteur for often from Mexico for a while which was interesting. I learned a lot of nature of leather but I think it's mostly self-taught. Again since bootlocking comes from inside and you either have that and you already don't I channeled myself in the right places at the right time and I studied shoe shine boots at airports and bus stations. I would sit for long periods of time sometimes getting my boots shined sometimes not and I would write notes I don't know if anyone's seen my notebooks but my notebooks look like Unabomber's notebooks. I look at pictures when drawing frantic writing that's just what I do but I couldn't get enough of this information and I make lots and lots and lots of notes not just about their shoes and their products and their stories. They would start to tell their story. I think a lot of successful bootlacks are story telling. Well, take our buses or boat. What is your fundamental philosophy about bootlocking? Just that it's a premium gift it's serving a greater good something that's bigger than you are or you're a part of for me it's just an extraordinary gift that I feel I've gotten and I could never get enough of it if you know me, you know I pretty much bootlock every day not just here at work at home. I'm always piddling around with some and even if people want during the pandemic I don't know how I managed it but my god the way it was connected with somebody we got like 200 pairs of boots and this is just a scene I'm a lousy you feel compelled if you're drawn to do it you know I can do that I can shine that more it's almost competitive it's just like heroin but it's good it's not on me For 17 years I've worked with you at I&L we started at the same time and we are both contestant panthers you started a tradition during this work that you've been doing you take care of all the boots, all the letters that I know but what you do is breathtaking because you touch every metal and you've touched every pair of boots tell us about that well, I'm not going to reveal some of the secrets so relax in the audience put away your notebooks you're not getting it it's I practice at I&L the conduit and non-vessel I noticed very early on at I&L that if you had a couple of people in the class of contestants who were viewed by everyone else as leaders or maybe somebody that had a good chance of winning or whatever it was that if that person happened to have any negative energy that it's contagious around the entire group and it would be toxic you know, you've got 60 guys crying and whining about it and it was seriously I quickly figured that the best way to channel that was to channel that and like move it not just through me use myself as the conduit but move it through them so I would start with somebody who was positive no matter who that was and I could always find somebody that's got that real bright energy and I picked up some of them and I moved on and the best place to touch that contestant to make them feel like I was communicating with them was to touch their medals most of their medals were hanging over their hearts so now I even do it two handed and I do it a couple at a time well it takes that amount of time to get through all those contestants and move their energy so again I would just open up as myself taking on whatever it was that they had if it was bad energy, no problem I'm going to channel that through me I'm going to dump it off in the meantime I'm going to give them a little punch I noticed that when I would take my hand away they would pick their heads up and open their eyes and they would smile and they were growing and I'm like look it works so that's basically what I do I found that it's just instrumental in how the contestants operate not just one of themselves but as a group how close they become I always call you the community's common denominator and in that what I mean is no matter what's going on in the community or whom I'll speak to everyone speaks to Leslie everyone includes Leslie and I've never met anybody who hasn't thought very well of me so tell us about that how do you say that? I don't you believe me that there are people that don't like me but you don't want they're jealous or something it's their business if somebody doesn't like me it's really none of my business I think the vast majority of people who really know me at least would love me they may not love having me in their company but they like me enough and I think I saw some interview program with Penelope Cruz she's hot though Penelope Cruz was saying about people who are detractors or you know talking shit about her she says if someone runs up to you and they're just just berating you but it's in a different language and you don't understand it feel anything by that you don't feel anything you know why you don't feel anything by that because we assign meaning to the words that somebody else exposes us we assign the meaning both good and bad so when it's when someone's saying something really bad consider it the source they're not your they don't know you or you've barely seen them or God forbid they're online and they're saying shit on Facebook too well who in the hell cares really I mean their opinion shouldn't mean anything especially if that's to attack you so I guess it's really good self-esteem but that's how I am so when people tell me things even insofar as nasty things about somebody else I'm still considering the source they've got motivation that's none of my business and I think human beings are kind of a package feel there's always going to be good and there's always going to be bad so you can take what you want and leave the rest aside building on that a little bit I've seen you take some extraordinary steps when someone's been in trouble or someone is in a bad spot I've seen you rise to occasions you never say anything you don't tell people you've done it you just very quietly take care of them what's your motivation there my ability to empathize with people a lot of times I'll go and help somebody who seems to really need it and the reason I don't talk about it is because that person deserves privacy and pride and they're embarrassed I'm embarrassed when I'm broke and I need energy I try to get over it everybody finds themselves in these circumstances anybody I don't care who you are you can find yourself in a bad set of circumstances and need somebody and nobody deserves to be humiliated without her everyone deserves a chance at redemption for the grace of God go ahead the things that I did when I was in my addiction were ugly, were horrible and when I look at somebody else who's really in trouble I see that person what if everyone had given up on me and turned me out I wouldn't be here so try to keep my eyes open my heart open but let me tell you something if you really push my buttons and it takes a long time I'm very patient and very kind but if you fuck me up you ain't never gonna get my look again I will shut down so hard and that's very human of me that you can say that but that's the truth I mean everyone has their limits I'm always trying to exercise the best caution in getting there too oh then a little bit of a lighter note tell us about your work here at the Leather Rock House well this has been an extraordinary thing here I've actually been involved with L.A. and M. since of the year 2000 but over the past three years it's been employed here on a hard time basis and it took me about three or four years of literally campaigning for the board to get them to hire me so it's been like this medical mystery tour until then you know you've kind of invented the wheel as I've gone along here rolled along inventing the wheel but I believe that my mission here has been really positive and my work I think longevity wise that it's gonna be one of the best things that's ever happened all I know you know I hope that people in the future see that too I hope people feel inspired by what I've found what I've done and what I present to them I hope that people learn something from people who've gone before you know I hope that generation people are far more welcoming and open-hearted to the next generation because they're the future yeah they have every right and they've got ballot things to say just like us you know I would be remiss if I didn't ask you about your amazing artwork well yeah I started I was working on some leather artifacts and vests and boots and stuff for our friend Chuck Windemode passed away a couple of years ago and my phone rang my black shoe polish all over my hands so before picking up my phone I smeared it on the paper hey it just came off it just came off I had a paper on my wall she polish all over my hands and I started drawing of it in fact on my artwork you can always see my finger prints what advice can you offer someone new if you feel it don't let anybody tell you your bad fit for it or you don't know what you're doing don't let anyone persuade you to depart from something that you feel and that goes not just for bootlikes that goes for take your gender identity your sexuality your taste in music in art what you do with your free time fuck other people who try to take you away from that any day now we're gonna hear we're gonna hear about Rowe vs. Wade being overturned I never thought of my lifetime and I hear younger generation people say all the time they don't want to be these rebels these you know they don't want to be anarchists they don't want to be leading the pack of protests and doing socially right thing to do and they don't want to be powerhouses for equal rights and so on well this is for you Rowe get up and do it you might get arrested hey then they're done that you know and I'll do it again I don't have to dance and to lose I don't care but it's up to you you want to be that person do it don't let anybody tell you no don't let anybody decide your value to you you do it what is the biggest misconception about you well sweet nice well I am very sweet I am very nice and I am spring of time until I'm not and when it comes to important things I can be downright vicious remember that $5 that my dad gave me we'll come to that girls remember too Leslie Anderson I would like to thank you for an amazing interview for Inside Leather History at Fireside Chats thank you when we finish here we'll head over to Touche for a beverage and everyone is welcome does anybody have a quick question if I don't know I can share yes I'll just come over hi Leslie long time listening I would love to hear more about the regenerative you talked earlier about how you feel more non binary how did you come to terms with that and is there anything else you'd like to say there obviously it's a little preferential that someone who is also non binary good one well remember what I said about people combination of good things and bad things and I don't know I I believe partly by my genetics I was born into um or you know went through a puberty into a let's face it a lot of body pretty much part um and it's hard to love yourself if you don't love all the parts of yourself so for me it was kind of a derby of loving and feeling sexual about all kinds of facets of my personality no breasts obviously I'm not just genitalia but my hands, my eyes my everything my heart and so not having to be pig in hell you know into this one mold or that mold it just it's liberating to feel like I can be non-binary and I'm still sexual you know and I like me like this it just finding a self love is really a profound journey I think we are all taking it and we're all a work in progress things always change for us I find out things about me that I didn't know all the time you know and you fork break down and I embrace them like welcome in you know everybody got to get along here it's kind of a lifelong journey and I'm really glad that we don't have to be held into certain categories and chimes and mold I like that yes okay I can go well one thing I don't remember you mentioning is about the my naturally you have well it's no great mystery I'm an animal lover I like animals more than I like people and here's why animals they don't like you they don't and they show that they don't trust you they do not trust you and they show you that too humans might show you something else and you think that but they don't and so I feel a certain level of just harmony and comfort with any animal lots of animals they also animals say things with their body language that people can learn a lot from about how they how they process things and I have been living with all kinds of crazy animals all of my life my mom oh my mom that's another story she animal lover big time my mother had a way with animals even dangerous kind of animals my father did property assessment for the government crazy things like that and he would take me out and bear in mind this is in New Mexico and there's rabbits and I say that's their home right and my dad would just say you say to yourself I will do no harm I will just keep meditating on that and then you take a stick and remember you cover the stick and then you take a step not the other way around so you go around that takes a step and go around and cheer out and say okay stop and we would gently move Mr. Snakey into a trash can and then just place him in a nice place afterwards and we would collect himself I never felt threatened because my approach was just I will do no harm and I just it's not that I don't like rat snakes they are not dangerous of course I am you know but there's a different level of understanding you know what I mean not a lot of all of that is supposed to be but step 10 one more question we've got time for one more no more last one what happened to Little Bo Peep's panties you f*****g what I don't know why did you you know when were you going to donate on here I don't know I remember they were going to have like floofy trunks and stuff what the hell is that they really don't know I don't even know to this day if my father went next door to the library and told them what happened because later on I did engage in some perverse kind of things with the older brother and little boy these things gross all of that and it involved pee pee and I would I know yeah my dad did not catch us doing that so we're going to begin and then we will that was fun that was fun