Thank you. As said, I'm really passionate about accessibility in search and I'm not talking about either of those. Little more about me. Why are you here? Why are you listening to me? I grew up in Ohio, which was really boring. So I went someplace totally different, which was Illinois. And I got my computer science degree from the University of Illinois. And then I was like, man, this is still actually really boring. So I ran away and joined the Peace Corps and taught people how to use computers in Cameroon with the Peace Corps for two and a half years. And then I came back and I joined Eventbrite, where I'm a senior software engineer. But none of that actually matters.  Why I know something about not knowing anything is because at each of those points I didn't know anything. So why should you learn? Why is it important? To which you say, what sort of programmer are you, Allison? Don't you know that our field is always changing and there's so many cool things you can do? It's like, yeah, yeah, yeah. But why does your company want you to learn? You always want to, but maybe you're doing that at night secretly. But this is why you should be doing it on company time. First of all, there's the bus factor. If you haven't heard of it, it's the rather morbid term for how many people can get hit by a bus and have your company still function. It's also the term unicorns, which are the very, very people who do exactly what your company needs to happen. They're called unicorns because they're almost impossible to find. So I say, you should start as a horse, start working on growing your horn. So this is kind of my history of when I've learned different things. In school I did Java and C++ and Visual Basic and MIPS. And since then, I've used none of those. Surprise, surprise. I don't use OCaml at Eventbrite. Then my first job, I started learning HTML and CSS and C-Sharp. And I have not used C-Sharp since then. And then at Eventbrite, I started with JavaScript and Python. And surprise, you actually need more than just those things to do your job. So you start learning a couple other things. I started working on our search team and learned solar. And then really, you need also some Cassandra and some Redis. And you pick them up one by one. But it's not just the technologies. It's not just the languages. It's also all the other tools you need to do your job. It's Vagrant, it's Docker, it's your text editor. All these other things take time to learn. And you can't just do it instantaneously. I also think learning at a company is actually really awesome. So for one, you have people to talk to. There's probably somebody there who knows what you're trying to learn. And it makes a lot of sense to be able to go and talk to them. Instead of finding somebody randomly online, like be on IRC and be like, are they going to hate me if I ask them this really beginner question? There's also a framework already in place. It might be great, it might be bad. But the last time I did a side project, I took three days setting up my environment and all the technologies I needed. So, and I was knowing how to do all those things. So, just skipping past all of that, land in an environment that's already set up. It's really useful. You can figure out the other things later. You're doing something that's useful. If your company's successful, or if you're not, then you're trying to make them successful. It's something that's a product that's going to get used. It's probably live. And probably the most important thing, you can't give up. If you're working on something as your side project, you can't, you can just be like, oh, I have these other things to do. I guess I won't work on it today. If you're making something for your company, you have to continue making it.  I guess I'll stop working on this now. So, how do you do it? And I guess in the schedule, the title of this was actually how I learned Django at Eventbrite. And the talk is actually more about how anyone learns anything at any company. But this is kind of my strategy of how I did it. And there's definitely lots of different ways. People might have different strategies, but hopefully it's useful for someone. So, what I always have to do, and I always have to remind myself to do, is do one thing at a time. That giant list of things to learn, don't try to do them all at once. Do one of them. But similarly, if you know Django really, really well, and you keep getting projects at work that are doing Django over and over. Maybe expand your horizons. Maybe try and work on something where you don't know anything. Really try and work on something where you're learning one new thing. But you can talk to your manager. You can talk to different people and say, do you need help on that? Do you need help with your Go project? Do you need help integrating Postgres into Django? And you can learn new things that way. I'm not sure if anyone in here is a manager, or a tech lead, or a senior engineer, or really anyone who is making schedules and telling other people what they should be doing. This is actually your job. Ideally, people are gonna be coming and saying, I would love to learn more about JavaScript. But they might be quiet. So, if you're telling them what they should be working on, maybe see what they're interested in. Try to introduce them new projects. Maybe there's a perfect bug that's a great introduction to something new. And it needs to get done, and only one person knows how to do it. Don't give it to that one person, give it to somebody else. So, when I was in the Peace Corps, my title was teacher. I had classrooms of 80 students, which is not efficient at all. But we did a lot of classes on pedagogy and how to teach and how to learn, and there's a lot of different strategies. But a lot of people talk about visual, auditory, and kinesthetic. Which isn't actually true, but humans love categorizing, so we're gonna go with it. And you might recognize one of these is how you learn. You might say, yeah, I'm definitely an auditory learner. I can stare at something for days and have no idea. But if you're a visual learner, some different ways that are really good to learn are pair programming. Maybe it's as an observer. You should also participate as well. But figuring out how somebody else is doing it. You could read books. You could read the documentation. You can read source code. Something I've noticed that more junior engineers have trouble with is diving into the source code, because it seems complicated. But that's one of the best ways to figure out what's going on. Especially if there's some behind the scenes magic. You could Google it, you could ask around. But the fastest way and the best way is probably to go and look at the source code. You can also watch seminars online. There's Udemy and Khan Academy in so many different awesome ways. So I have stacks of textbooks. They're fantastic. They hold up my desk. I read them very rarely. I think once my internet went down and I was actually trying to do something with an A star algorithm. So I looked it up, but that was really weird. My roommate, on the other hand, will order basically a new textbook once a month and actually read it. I don't know how he does it, but that's not me. Auditory learners, they come to conferences. They do online classes. Most importantly, talk to people. Ask questions. And kinesthetic learners. If you don't remember hearing about auditory, visual, kinesthetic, kinesthetic means touching things. Like actually physically doing things with your hands. So if you're a kinesthetic learner, which is most people, hack on projects. Maybe follow some tutorials online. The things that I always do are post-it notes and whiteboarding. We have some giant whiteboards on our walls that I'll take over and scroll all over them. It's kind of frustrating actually when I'm working with people in our Nashville office and they'll be like, wait, what's in that corner? The light's not hitting it. I also used to have two monitors and my second monitor was only used as a place to put post-it notes, which really annoyed my coworkers, so they got me a whiteboard for behind my desk. The most important thing to note here is that no one is only using one. Everyone needs a bit of all of these things. So start with what works best for you. Maybe start on that tutorial. And if you get stuck, maybe go and talk to somebody. So some tips for working with other people. The two dogs here, the brown one's my dog, the black one is Cleo. They're best friendemies. Sometimes they will curl up and sometimes they'll attack each other. Kind of who knows. We have to coordinate who comes into work. But they're kind of representative. So the best way is to find somebody who style compliments yours, somebody who you're comfortable asking questions to. But maybe that person doesn't know everything.  So how you go to that person? Because odds are, they're actually not as scary as you think. Some really great ways are to schedule time on their calendar. Don't come and interrupt them in the middle of a problem. But be like, hey, I'm trying to figure this thing out. Can I talk to you at three o'clock? Because I see you don't have anything else to do with it. Don't say it like that. They probably have things to do. You can also talk about what you figured out on your own. If you come to them and you say, hey, what's a model in Django? They might be kind of annoyed. They shouldn't be, everyone should be nice and ponies and blissful. But if you come to them and say, hey, I read the documentation about what a model does and this is my problem right here. So I'm trying to figure out the best way to implement pass codes on the model. Do you think it would be better this way or this way? And it gives them a lot better foundation of how to help you and where to go. And there shouldn't be any resentment there. Another cool thing to do is, if they're one of those people who, let's say they're the only one who knows anything about your payment system. And so therefore, nobody wants to bother them and they're always busy fixing bugs on the payment system. You can go and talk to them and say, hey, I see you're really busy. I see there's this bug. I could fix this bug. Could you help me? And then there's no way that they can really say, no, I don't wanna do that because you're helping them. So what should you work on? So yeah, it's your job. Sometimes you have things given to you. And sometimes you might want to work on something different, you might wanna learn something new. But the best things to do are to figure out what's really important and then talk to your manager and be like, hey, can I work on this thing for a while? And so those things that you could be working on are what's important to your company? It's a really easy sell to be like, hey, I really need to learn Elasticsearch because our search needs to get better and no one else knows how to do it. So can I work on it? They're a lot more likely to say yes than if you're like, hey, Elasticsearch is really interesting to me and I'm working on it on my side project and I'm starting a startup and hey, can I just like take a couple of days to learn it, which they're more likely to say no to. And another thing is, what do people complain about? Are the admin tools really bad? Are the SQL queries really, really slow? Maybe you don't know anything about SQL, but you know that every day your admin is complaining about this one query and it's really slow and everyone's way too busy and everyone's avoiding it. And it might be because there's tricky things that you don't know about but whatever, jump in. Take that query and say, I wanna make this better and you'll make a lot of people happy and people will also be really willing to jump in and help you because it's something that's a pain point for a lot of people. So you have all these things you wanna learn. How do you do it? You have your job. How are you still being productive while you're doing it? Something that's really important is to time box. Don't spend a week reading a textbook about something. It might turn out that your textbook is about Cassandra and then you're like, oh wait, Redis would be better. And then all of your time is not wasted, now you know about Cassandra, but not relevant. You're not being productive. So give yourself some time. One of my favorite rules that somebody gave me early on is that if you work on something for an hour and you haven't gotten anywhere, then you should go and talk to somebody. You should try and tackle it first yourself because it helps you learn better, but anything longer than an hour, go and get help. Prioritization is really important. Maybe Elasticsearch is more interesting to you, but for your company, making that SQL query faster is much more important. Prioritization is a really hard problem. It's not gonna be solved in one bullet point, but try and think about it when you're working on different things. What's most important? You should be doing that. You should not be turning videos of your dog into gifts during work. I would never do that. Another trick that doesn't really fit into time management, but that has really helped me, is to leave comments in the code when you take a break. So it often takes me a long time to context switch.  You'd be like, yeah, it's really nice outside, let's go outside.  And then it takes you a really long time to figure it out. Or you might even have a file open. You're like, where in this file was I? So I always leave comments. And sometimes they're inane. Sometimes it's like I was turning the color of this line from blue to red. And you're like, no, I'll remember that. Pro tip, you won't. After you've learned everything, after you know everything in the world, as you're going to in the next month, how do you remember it? Write it down. So I'm constantly taking notes. And you can also be writing documentation. You could be writing bug reports. Maybe you are just getting your dev environment set up and it's taking you a really long time and you think it's because you have no idea how Docker works.  You're like, wait, I just spent so long trying to re-download it and it's just failing. That's probably because the documentation's wrong. And so either you should go and fix it or you could write a bug report. Maybe there's actually an error somewhere that should get fixed. For lists, I basically always have at least two lists going on. One is what I've already learned. So as I'm going through the week, I really like to be like, today I did, I figured out how to turn videos into GIFs. It was great. And then you'll be able to figure out in a week or two when you need to turn more videos of your dog into GIFs, how to do it. You don't have to go through the same process of Googling because it's really easy to forget. You do something one time and you're like, I'm done. And then you need it again in a week. Something that I actually did when I joined Eventbrite is I had this secret Google doc where I wrote tips. I was like, this is how I run the server. This is how I index search. And I thought this was really embarrassing but I couldn't remember how to run the server or get my development environment up. So I didn't tell anyone about it and I had the secret document. And then I realized a couple months later that everyone has these secret documents. Ideally it would be shared or maybe it's just a reminder that it's not that embarrassing. Not every company has their dev environment set up the same way. So just because you don't remember RS, I know it's only two keystrokes. If you forget it, it's fine. Maybe that's not how you did it before. So it's great documentation for the next people. That secret document of mine helped when somebody else knew joined because they'd be like, wait, how do I get the dev server up? How do I make it stop threading? You'd be like, oh wait, I remember all these things because I have this not secret document anymore. I'm sharing it with all of you. It's documentation. It's also really great to be able to say, hey, look at all these things I've learned. Especially if you're in the process of learning lots of new things. It's really easy to get frustrated. You might be like, I've done nothing this week. I have all these tickets. I've accomplished nothing. But if you look at your list, you could say, oh, I figured out how to make SQL queries faster. And I figured out how to write in Cassandra. And I've done this tutorial and I've read this textbook. So yes, you still need to be closing tickets, but it's really good to be reflective and say, what have you done? What do you know now? And also to communicate that with people. It depends on how your company's structure is set up, but if the main record of progress is how many tickets you've closed and you've been spending all your time learning, maybe your manager doesn't know what you've been doing. So communicate that to them. Say, hey, these are the things I've done. Look how awesome I am. It's also really great because when you're in that cycle of learning and figuring things out, you probably have your confidence being lowered. You'd be like, I don't know anything. Your imposter syndrome is gonna be hitting pretty hard if you have it. But when you look back, you can be like, oh, no, I definitely know Django. I have that going. Just because I don't know how to write go, that's fine. I know this other thing. My second list is what you wanna learn. So when you're trying to figuring things out, it's really easy to go down that rabbit hole, to go down that spiral and say, there's so many cool things here. I was reading this tutorial and it said how I could do multi-threading and I said how I could do like make a chat program in line. You're like, I'm really gonna follow that. And it's like, oh wait, no. Like I really just needed to be figuring out how to put words on the screen. But you do wanna do this eventually. So put that down as something you wanna do later. Let's say you're figuring out how to write SQL queries and you're reading some Stack Overflow answer and it has a link. It says, yeah, that's a good enough solution. But if you wanna make it 100 times faster, you should do it this way. Then maybe you really wanna click on it and be like, ooh, how do I go down that rabbit hole? But you should probably put it aside. If it's not immediately relevant, I would put it on the second list. And be like, hey, this is what I need to go and do later. Generally I figure out how to go back to those when I have that problem again. Maybe I need to make a SQL query faster. It's like, oh yeah, that other time I needed to learn it too. So it's probably something that's really valuable and not just a trendy new topic. I also know that if I don't write it down, I'll get really angry at myself for not following it immediately. So it's kind of like a no, I've acknowledged it, it's there, I don't need to do it right now. I'll do it someday. And the best way to learn is actually to teach. So people often will think, I just learned this. I am not a good person to teach it. The people who are best to teach are the experts, the people who have been doing it forever. And that's a blatant lie. The people who are best at teaching new people is the people who have just learned it. And a lot of that is they just went through it. They remember what was frustrating. They remember what was hard. There's also the pro that sometimes that all the setup stuff around teaching is the complicated thing. And somebody whose Dev environment has been set up for months is not going to remember. So there's lots of things that I've talked about. You should figure out what works for you. There's lots of different things. You should take the time to learn. It's really important. No one should ever be able to say, don't do that. Especially if it's not a priority for your company. I've been really fortunate that Eventbrite has been really flexible.  Have fun, which I don't think is actually normal. But there's all these tricks that you can do. You can say, hey, this has been really hard for people. There's this one person who's the only one who knows this. And so if he got hit by a bus, it would be out of luck. But if I learned it, then I'd be able to help them. But most importantly, again, is to have fun with it. Learning should be fun. It's one of my favorite things about computer science is there's lots of different things. You could be doing anything. So don't get too caught up with frustration or by saying, I don't know anything, to have fun. And that's it. This is kind of what's worked for me and what's worked for people who I've talked to. But if you have any other tricks, I want to know them. I want to add them. I want to help people. So tell me, please. That's it. What was your first project at Eventbrite or your first Django project? Yeah, my first Django project was actually making our teams feature. And it was really interesting because I had been a front-end engineer. And I was really good at JavaScript and CSS. And they were like, ooh, we have to start this project. You're being paired with this senior engineer who knows everything about Django. So you'll do the front-end and he'll do the back-end. Like, cool, no problem. And then there were some critical bugs that he had to go and fix. And I had nowhere to start. So he's like, hey, how about you just set up the models for this? It's like models. What does that mean? He sent me a document. And I started writing them. And he would review all my code. But he was actually very busy on other things. And I ended up writing most of that project. So that was really useful. Did it go into production? It did. It is live. It is used by Tough Mudder, which is one of our biggest clients. So if you've ever signed up for Tough Mudder, you've used my code. Also, do you have any advice for a, this is more like a, let's say that you're in a situation where your job isn't so flexible. And besides get another job. But I mean, how you navigate that, like if you want to work on something else, and maybe your manager's not really amenable to that. And you could always get another job. I've been in this position, and I got another job. But what's your advice there? Because that could be tough. Right. It definitely can be tough. And I don't want to be like quit, like you said. But there's different things you can do. You can try and talk to another team. If there is, maybe there's another team doing something that's really interesting to you. And you can be like, hey, can I work with you? And maybe your structure, your direct manager, probably wouldn't like that too much. But maybe it'd be OK to switch teams and do something more interesting and get a manager who's more flexible. Or just try and say, OK, there's this project we need to work on. Can I do this part of it? And just kind of like slowly shift. So something that I had initially done when I was really interested in search is I was doing the front end. And I was like, oh, maybe I can just add this new field to the database. And they're like, no, no, we're busy. And then they're like, wait, we're busy. So yeah, you should do that. Go and do it. And so I did. And it was great. But I just kind of had to poke at it for a long time.  And I got a new manager. And he was like, wait, you're kind of interested? Yes, it's yours now. And threw it all on me. So some of it's like a slow progression. And sometimes it's dumped on you, and it's great. You mentioned that you had your own secret notes file. And then you discovered everybody had their own secret notes file. What's been your experience with having a company wiki or a team wiki just to collect all this knowledge? Has have you had one person in charge of that? Or is it just left up for everyone to organize? Or does nobody actually contribute? And it's just an empty wiki. Just what's been your experience? So we have engineering documentation. And it's fantastic. When I first started, it was actually very difficult to edit. You had to check out the repository with all of it. You had to make your changes.  And then if there was any formatting, that was wrong with your restructured text. It would send this giant blaring email to all of engineering being like, the build failed. Like, the build failed. And so people were really intimidated. And for some reason, didn't want to modify the docs. So I think one of the best things we did there was actually just add a little edit link so you could directly edit it. And then we removed that really horrible email. And so it became a lot easier for people to go in and change it. In the past life, I used an IDE called Eclipse. You might have heard of it. It has one killer feature. Anywhere you type in to do in all caps, the string that follows it is a caption and put into a list. And another pane buried somewhere in the app. But you can find it if you look hard enough.  I wonder, is there anything like that that you've run into for Python? Because it seems like I would use that exactly for the situation of, OK, I'm walking away. I need to write a note. Yeah. That's one amazing. And I don't do things that complex with my to-do. It's more like, this is the last thought I had. I'm shoving it in right there. But I also use notes, embarrassingly enough, where I keep a lot of my lists. So that's kind of the equivalent. I'm not sure, does anyone else have an answer to this that I could also benefit from? OK, so you search. Do a global search for all your to-dos. So your answer there is sublime has a plug-in. Does PyCharm have anything? PyCharm looks for to-dos, too. Thank you. Any other questions? Any other questions? All right. Thank you, Alison. Thank you.


Here with Jorge Posada, a prominent member of that 98 World Series Championship team. Jorge, just getting to be around some of those teammates again, what have those emotions been like in the interactions as you guys have started to see each other's faces again? Well, a lot of memories, you know, you go back to 98 and all you can think of is, you know, the everyday grind of trying to win ball games, it looked very easy to do what we were doing, but it took a lot of hard work and very happy to be back. You know, it doesn't seem like it's been 20 years already, but we were happy to see each other again. What would you say besides talent, what was the key characteristic that made that group so great? Wow. There's a few things, guys have no egos. We had a great manager that really emphasized taking care of things on a daily basis. We had a great pitching staff, bullpen, probably the best bullpen in the league and guys went out there every day. That lineup went out there every day and we were very, very lucky to, you know, to keep going. Like, it was fun to be a part of. Was there a moment that you can remember during that season where you said, you know what, this isn't just a good team, this isn't just a championship team. We have a chance to be maybe the best team of all time. No, we really didn't think about it like that. We just wanted to win ball games. And, you know, when you have a pitching staff the way we had, we had a chance every night. And, you know, we really started awful, one in four, and all of a sudden we caught on fire and, you know, the whole series, the whole season was like that. We, you know, we needed to win ball games and, you know, I think it was more about the pitching staff. It was more about, you know, the bullpen that we had and, you know, the core group of players that we had that were on the field every day. Everybody always talks about that famous meeting after you guys got off to that one and four start. And then obviously you rolled from there, ended up 61 and 20 at the all-star break. What do you remember most about that meeting you guys had after the rough start out west? Yeah, I think the veterans, the veterans on the team talked, Joe Torre let us talk. We needed to, you know, get back to what we said in spring training. You know, 97 was a team that ended with, you know, not winning and not being able to get to the World Series. And we just needed to be reminded of what we needed to do and what our focus was. And it was a great meeting. You know, David Kohns and O'Neill talked, Gerardi talked, Jeter talked. Most of the veterans talked and we got on each other. You guys, you didn't lose a lot. So what was the clubhouse like for that group after a loss? Mad. You know, it was, it was mad. It was, all right, we need to get back on the run, you know, win 10 in a row. It was that type of, of season, you'll see how many games in a row we can win. And, you know, it looked easy, but it was hard. When you think back on that season, is there a particular moment or game or memory that stands out most that you relive most often? I remember Strawberry is, you know, when we find out about Strawberry at the end of the season, pretty much towards the end of the season that he was going to be in the hospital with, you know, colon cancer, talking to team Reigns, talk to us in Texas.


Greetings, ladies and gentlemen. My name is Janati Stolyerov II. I am the chairman of the United States Transhumanist Party and the chief executive of the Nevada Transhumanist Party. Today I will offer you a preview of my remarks that I plan to deliver during a panel discussion at FreedomFest 2017 in Las Vegas on Friday, July 21. It will take place within the Paris Hotel in Las Vegas between 2.30pm and 3.20pm. I will be on the same panel with such distinguished individuals as Michael Shermer, the moderator, Edward Hudgens, Zoltan Istvan, who founded the Transhumanist Party and ran as its presidential candidate in 2016, as well as Peter Voss and Ed Schuss. The topic of the panel is artificial intelligence and robots, economy of the future, or end of free markets. I will be presenting a nuanced case suggesting that artificial intelligence and automation will indeed transform free markets and the capitalist economy, but will not do away with the capitalist economy for a very important set of considerations. First, it is important to distinguish, and I am certain other panelists will distinguish between narrow artificial intelligence, narrow AI, and artificial general intelligence, or AGI. Narrow AI is dependent on the context within which it operates, so narrow AI will do what it is programmed to do somewhat autonomously within a particular context. Think of a self-driving car, for instance, being programmed to operate on roadways subject to certain rules of the road within a given country. Or think of an AI program that can play the game of chess or the game of go and beat human opponents in it. Narrow AI can process a lot of data, do a lot of calculations quickly, perhaps come up with solutions within the field of endeavor for which it was programmed. Narrow AI is fast advancing. It is the area that will have the most approximate impact on jobs, but I argue only on certain kinds of jobs. Jobs that do require a lot of computational capacity, a lot of high throughput processing, but would apply to essentially similar types of information or decisions within that delimited kind of context to which the narrow AI would apply. So narrow AI might displace a lot of data entry or data processing types of jobs. Narrow AI might displace what I would call a lot of quant types of jobs. People who construct mathematical or numerical models according to certain well-defined predetermined rules or parameters. What narrow AI would not displace, however, is work that requires creative judgment, particularly judgment that brings in multiple disciplines or insights, including insights from extensive personal experience, and even more particularly judgment intended to overcome a multifaceted challenge or to avoid a suboptimal outcome. In order to avoid a suboptimal outcome in a real-world multi-dimensional problem, one not only has to bring in skills from multiple disciplines or knowledge gained from personal experience, one also has to have certain personality traits and virtues designed to essentially carry that decision to fruition, because it's not always easy to implement a decision that would solve a multifaceted challenge or avoid a suboptimal outcome. People with those kinds of skill sets will only continue to be in higher demand, and indeed as automation enables more bountiful production, as narrow AI enables the, let us say, simpler high throughput types of tasks to be addressed more efficiently, the level at which the challenges in our world will accumulate will be the problems that may not require all that much processing power that could be handled by the human mind, but that do require abundant judgment. I myself am a property and casualty actuary by specialty, and as an actuary, I do employ a lot of mathematical techniques, and I review techniques and predictive models developed by others, but I would say a distinguishing feature of the actuarial profession that separates it from the kind of quant that I described is the ability to go beyond specific mathematical or modeling techniques on their rote application and to question the underlying assumptions that go into a particular technique or model, that in essence would suggest whether or not the application of a given technique or the way a given model is designed would be appropriate for addressing the real-world problem in question. Indeed, employing judgment focusing on the underlying assumptions of methods and models and the realism or lack thereof of those assumptions would be, in my view, the most important fundamental skill sets that an actuary would need to have, as compared to a quant who would too often focus on quantitative techniques in isolation from real-world significance, and that type of work where one simply implements a scheme, which may be a sophisticated scheme, could be rendered obsolete by narrow AI. So for the foreseeable future, the market economy, the world of jobs and employment, would be sustainable for those who are well educated, for those who have good judgment. Such people would be able to earn steady and rising incomes and would be able to continue to fuel the capitalist economy with their purchasing and investment decisions. I recognize, however, that not everybody is equipped to utilize that kind of creative judgment at the level necessary to solve the multifaceted challenges confronting large organizations or even small organizations or even individuals. We all know people who have terrible judgment, and yet a lot of those people have been able to make a living up to now doing more roped routine tasks, which have progressively been rendered obsolete through automation and maybe rendered more so obsolete through the advent of improved narrow AI. As a result, even from a libertarian perspective, it may be necessary to provide a universal, unconditional basic income that would hopefully replace the labyrinth-themed complexity of today's welfare programs, but provide a certain floor, fairly spartan, but sustainable standard of living, below which individuals who are unable to find employment would not be able to descend. And of course, they would get a certain fixed amount of money per year. They would have the freedom to spend it as they wish, but if they spend it unwisely, there would be no further support from that system for them. They would need to rely on voluntary charity or their friends. And even though some libertarians may object to that, the majority of people I think would understand the importance of that kind of system. If nothing else from a pragmatic perspective, to prevent resentment or revolt by those whose jobs are displaced by automation, because ideally we should convince as many people as possible to support any sort of automation that can solve problems and improve productivity, bring about abundance and increase in standards of living, the individuals who are particularly displaced by those advances may not feel that way. So a universal basic income may in effect allay their grievances, and of course prevent any destructive lashing out that would undermine the progress of our civilization. Furthermore, I advocate that the majority of people should be guided gradually by voluntary free market cultural signals toward activities that do contribute value in terms of human flourishing, but are not necessarily monetarily remunerative. Those activities could solve certain problems of everyday life, say do work around the home, take care of an ailing relative or an ailing member of one's community, clean up litter in one's area, even if one doesn't get paid for it, but one perceives the importance of doing that. Advocate to one's local neighborhood governing body, whatever that may be, to create some sort of improvement in the infrastructure of the neighborhood, or activities that express creativity and imagination. Activities like art or music or writing, a lot more people would be able to engage in those for now distinctly human types of endeavors, at least in terms of the meaning that they can convey. Or dabbling in potential new scientific discoveries, if somebody has that floor of a universal basic income, they may engage in attempting to push outward the boundaries of knowledge in a field they're interested in, even though it may not be particularly monetarily remunerative or in demand within the market at the time. Some people may utilize this opportunity of a universal basic income to pursue entrepreneurial ventures, which are high risk but may be high reward, and they would be cushioned from absolute destitution by this Spartan floor that a universal basic income would provide. Now, an entirely different proposition from the narrow AI characterized economy that I described would be the arrival of AGI, or Artificial General Intelligence, because AGI is not as attached to a particular context as narrow AI. The point of AGI is to be universal and flexible, and to be able to learn new domains and new skill sets. So an AGI entity, if it is developed, could become genuinely creative and capable of judgments that we would consider both of a prudential nature and of a moral nature. And that type of entity, which in my view would emerge decades later than the more advanced narrow AIs that are on the horizon, would indeed be able to replace the more judgment oriented human professions that could survive narrow AI. However, once AGI emerges if it is developed, that type of concern I would say would pale in comparison to another important question, which is once AGI entities become capable enough to replace the judgment oriented professions, they would most likely themselves need to have become sentient to achieve this. And being sentient would render them worthy of respect as autonomous rights bearing entities. This is an area where the U.S. Transhumanist Party has been at the forefront of the discussion at a time when it is still possible to develop the discussion in a manner that is not fueled by animosity or the pressure of an impending advance revolutionizing everything. We have developed documents such as the Transhumanist Bill of Rights, version 2.0 of which was voted on democratically by our members in late December 2016. And for the Freedom Fest audience, I confess this is not a fully libertarian document. Our members come from a wide variety of conventional and unconventional political persuasions. But this document does have a strong emphasis on the freedom, the personal freedom, of sentient entities. And it classifies sentient entities in a taxonomy that seeks to determine what the prerequisites are to be considered sufficiently sentient to have these rights. The activities of the Transhumanist Party at this stage are aimed at raising awareness that in the future perhaps humans will not be the only sentient entities, will not be the only rights bearing entities. And that of course will inaugurate a whole series of questions about how do we recognize these entities politically and how do we prevent unnecessary and possibly catastrophic frictions between us humans and those types of sentient AGI's. How do we integrate these beings into our future society? How do we prevent them from being assailed either by Luddites who fear technological advancement or even certain self-identified transhumanists who posit that artificial intelligence would necessarily be an existential threat? Consider how a sentient and perhaps fundamentally decent AGI in the future would interpret that rhetoric reflecting back on the prejudice and antipathy with which some humans, even very intelligent humans, treated the potential arrival of this kind of being. What I would like to avoid and what the Transhumanist Party seeks to avoid would be a kind of self-fulfilling prophecy of doomsaying regarding AI. I think we need to step back from the doomsaying mode and instead look at particular AI systems and their capabilities as well as the distinction between narrow AI and AGI and how each is likely to affect our future economy and the free market. I, as a libertarian leading transhumanist, have confidence that the free market is a fundamentally workable system, though it has never been perfectly implemented anywhere in the world, and strong vestiges of it will continue to be with us in the years and decades to come. Thank you very much.


What's up guys and welcome to Trendy Update up our SPM birds. Now onto the trending news today is Ms Kashi Kareimi and by any baby Mamawake Calligraph Jones and today she says that she has won the child custody case. And this is a good news to her lakini na kumbuka Calligraph Jones and Kashi wali kuwa wana date a few years back. Napi wali kuwa muheza kwa niya mziki pa moja Now wali kuwa muheza kwa hit moja sa fissana lakini hile relationship yao aiku enda vizuri na kawa chana. Lakini, there was a child involved. Yani wali uheza kberiki wana mtoto na tulikana kamaksolani who is four years old right now. Lakini sasa story ni there has been a lot of drama surrounding this past relationship. Na hile story ya Kashi aili kuwa muheza kumuita Calligraph Jones kama dead bit father. Anasema Calligraph aiku wana shugulikia ule mtoto na hile kuwa me mngangana kabisa lakini haiku weza. Lakini pa kumbuka hini story amba e Calligraph aiai eza kwa ongelea ata sikuata moja. He only did a press release aka eza kwa ekelea paliko social media ka sema lawyers wake wana shugulikia hile story. Lakini Miss Kashi aili kuwa sema paliko social media na piya na eza kwa ekelea the receipts, videos you know aki onisha na Calligraph Jones aki mongelesha na mumbiya pali you know there is a police station and Miss Kashi as always insisted kwa sababua me eza kutumiwa you know here you know threats and this is something that she is happy about getting the custody of the child. Then let's also remember Calligraph nido aili kuwa me eza kufaile hile case sikuotini kwa sababu he wanted to have the child. Lakini Miss Kashi aili kuwa na sema uko na wa toto wengi and even right now they say you know Calligraph has mothered you know 10 kids apondo aili kwa me eza kusema na na shindua Calligraph anata kajem toto mwingine kwa ongeza and you know today Kashi has put up a post on social media nante eza kukusome aki lambacha me eza kusema na me sema the weapons that formed against us did not prosper the whole year we tried they tried to take my baby from me but god has delivered justice for Solani when it seemed impossible you know anendele auku sema that they were denied you know presents and his rights but god is faithful na me sema pia god has proven him worth it and humbled the big men in court a true testimony indid na iani Kashi aili eza kwa me sema me umia sana kati kaya drama yote you know yaku ta futa a child upkeep and child support na na sema it costs me work opportunities music friendships and relationship na pia time and weight i nearly you know nearly lost my sanity and i'm telling you Kashi ya me kwa adyaku aki release music yo yote kwa if oni kama this is what she has been focusing on lakini pia tukumbu ke aili eza kumpoteza babayake mzazi a few you know years back na iili eza ni kitomba tukili eza kum tatiza sana na calligraph looks you know aji eza kwa umgelia history as of yet lakini tunangodya kwa ona if he is going to comment on it and we will keep you posted Kashi ya me eza kutank you know all the people on bya me kwa kim support you know friends who became family family aia ke pia na iili eza pia kwa encourage wale wa zazi pia mawa mama and bawa fighting the same fight as her they're telling them you know that God is going to be with them and iili eza me you find the tools ways and angels and blessings your way kumuke babayake Kashi ya me leza kwa aga li kwa ni support systemia ke kubo sana na labdia Kashi ya me kwa me freya sana babayake eza kwa ona yo story aleo lakini wakenya comment section pia lazima wajibu tool lazima they say something unaona karen ana sema i love this so much where would this man want a custody over kid he said ain't his and neglected the kid and paka a kakuwa kubwa well done Kashi alafu ana ito touch impressive ana sema whips loading from uncle kibbe aaa kata aga kibbe pali alafu kwinshei ana sema atakuwa na pewa ngapi because 7 so he has a total of 10 kids i think ana uli zia cha utsapoti takwa shilingi ngapi let us know down on the comment section what are your thoughts about this story of Kashi getting the custody of their child na sami kaligroof jones kweza kuni moa ila custody but in the meantime keep it trendy spm buzz


Hey Aaron how is how nice is it to see the offense get rolling early and give Domingo Herman a little bit of a cushion to work with? Yeah it was really good you know some good at bats there kind of get us going and put a lot of pressure on on their guy and in those first couple innings and you know able to throw a couple crooked numbers up there and then able to add later was definitely nice. What did you think of Herman tonight? I thought he was good you know the couple times he did get into a little bit of trouble you know he made a really big pitch you know couple really nice double plays behind him so you know I thought he did a really good job and was was on the attack was was pitch efficient for the most part and another strong outing. You mentioned the efficiency was there any temptation to put him back out there in the seventh? No no you know once we had that kind of lead and you know especially with you know it'll be going on his fifth day again the next time around just want to you know preserve as best we can. We go next Eric Bowlin. Erin if you're to zero in on the biggest difference in Domingo since he came back from the alternate site what would it be? Not not much honestly I mean this is what we're seeing all spring long you know his first out of the year was a little wonky in that he had such a long inning and he gave up some runs so it was just kind of one off inning here but I didn't think he was far off in his first couple of starts frankly and I feel like it's kind of been consistent with what we've seen since since we since we got him in February. Erin if you had needed them would you have had either Stanton or Hicks available to you tonight? Probably would have stayed away in Hicks's case he's going to be going to the IL and then we'll kind of decide the course action moving moving forward from there so you know he could have been he would have been available in an emergency situation you know defensively or something possibly G if it would have got real weird you know but I was doing all I could to stay away from both guys. Erin just a follow-up on Hicks is that he's definitely going on the IL tomorrow. Yeah, yeah he'll be going on the IL is that that he just did the medicine that he now respond to the medicine is that what happened or what changed. He's doing better like it's you know less pain and stuff in there I think as a result of the medicine but when he tried to swing from even both sides of the plate today it you know it wasn't what you know we're looking for and he was looking for. So what's is it still you continue with the medicine and and rest. I guess that we'll see the course action now you know over the next couple of days, you know surgery still certainly on the table but but you know it as that hasn't been finalized yet either we'll see how but first step is he is going to go on the aisle and you'll want to bring up an outfielder to replace him. Probably but we'll we'll solidify that post game tonight. Erin I know through almost everything you're overwhelmingly positive but when you think about the prospect of potentially losing your starting center fielder for a long period of time just how large of a blow would that be to this team. Well I mean yeah I mean anytime you lose one of your you know one of your key players that's that's a blow. No question about it and obviously when Hicksey's at his best you know obviously playing center field a switch hitter in our lineup which is you know balances is out a little bit but you know it's also you know part of it you're going to you're going to have some some nutrition along the way and you're going to have some guys go down and and it creates an opportunity for somebody else to step up and that's that's you know you always want to support support the guys that are going through it because I know you know how frustrating and difficult it is for Erin to you know not be able to go out and post and play the play the ways capable of and so you feel for that and you try and support him in that but you also realize that it's an opportunity for somebody else to have a role and step up and and add production to this lineup. If this would be worst case scenario where he would need the surgery would that be a situation where he would be done for the season or would there be a likelihood that he could make it back. Yeah I don't know that's kind of getting ahead of ourselves. I'm not sure the exact timeline if if he did go that route. Yeah. And you're still looking at the John Carlo is a day today for now. Yeah. He's better today. I don't think he'll be in there tomorrow but you know we'll see. Thanks. Yep. Christie. Hope you're doing all right. Thinking of you. Get well. All right. Get back to the ballpark. All right. See you.


And we're back with day 18 of the advent of code We just finished day 21 But we like the look of the day 18 problem So we're gonna try and solve that And see we can solve it like within an hour And then I gotta eat But let's see Now parentheses can override Okay, so we just parse it, right? Do-do-do-do-do-do-do-do-do So we just have to write a parser, right? Let me see the input Okay, it's always just a single digit Okay Okay, let's see. Let's see. Now. We're gonna say here day 18 New file input. No, that's Hey, we're gonna say new file Day 18.HS. Now, let's see Module main where? Yet Okay, so expression. Xper. What is the expression? Data Xper is going to be It's gonna be add Xper Xper or It's going to be Mall Xper Xper We're gonna be par Xper Deriving Show, okay, so parse expressions We just write a parser, right? import text dot par sec We don't need a fast parser actually let's just do import text dot parser combinators dot parser dot char What is it? Text dot parser. No, this is I think we're looking for the read P1 Because I don't even go to parse. I don't I think we don't we don't need it So I parse an expression So a parse Xper Pick a string and gonna return as an expression parse Xper stir equals This is gonna be no, this is yeah, this is a read P Xper So it's always gonna so or yeah, okay, so or digit int parse string, okay, so is it gonna be a Symmetric choice. Yeah, okay, so it's gonna be Let's see So this is gonna be Yeah, it's gonna be a Digit like there are pars and digit It's gonna take a string and return an int an Xper and pars and digit is going to be a Digit and this is gonna be a parser Xper right now digit It's going to be This is gonna be, you know, it's gonna be get Actually So I think I think what I have to do is I have to do do Yeah, I'm gonna yeah read P so do so skip spaces, right and then get and we're gonna say See It's gonna be get and then we're gonna say digit So return digit of read add int See we don't have to see the ad Okay, so this is gonna be pars expressions gonna be do Skip spaces now it's gonna be choice.   Yeah, yeah, yeah Okay, so we're gonna parse a plus we're gonna parse up a Star we're gonna parse Again, then we're gonna say here par par Is gonna be you know, it's gonna be of a read p expert And you know par is par.  No, yeah, yeah, like we're gonna we're gonna say, you know par dollar like this I Think that's okay. So we're gonna parse parse par or pars and digit. Is that crazy stuff? Oh, no Where did we go wrong right here, okay now pars par Par's opposite applied to two arguments char read p is only one. Oh You know Okay The yeah, we need to apply this right to so I main is IO main equals So we do so we're gonna say yet input that's gonna be you know, it's gonna be a file path to a IO of expression and yet input is just gonna be It's gonna be you know now, okay, so we say so the instance read Expert where Reads reads It's gonna be a where it's gonna be just Well, how do you how do you again use this? Read P. Yeah, okay. So it's just a read. I forgot how instance read Making a read instance that go flow. Okay. So what do we have to define again reads Prack and This is a read s right? So what you're gonna say Read reads Prack Care, but the is it's gonna be read p to s I think let's have a typed whole par's expert Get input is going to be read fmap read over file and this is gonna be get input Test input into print Now here read p to s. Yeah control period repeat s nice Digit, okay. Yeah a digit Parse op the digit digit, okay a pars digit Exactly now to express okay, but D a pars up to e. Yeah, this is supposed to be like this. What happens here Oh, I don't have Test input. Yeah, make sense. Okay a two plus times three Times 45. Okay. Let's see here Let's just see what this becomes Test input. Oh, yeah, and I had to run it also I'm not gonna measure this. I mean, this is not a Speedrun, right So we're adding one and then we're multiplying two with adding three and we're multiplying Okay, and now we're just gonna say, okay. Oops. This is say 16 Now, okay eval expert Eval expert expert to Eval expert D So digit I it's gonna be I eval expert par par e is gonna be eval expert E eval expert at a B is equal to eval expert A plus eval expert B I mean, this is like parsing except like we don't even have to deal with presidents. That's crazy, right? eval expert mall AB is equal to eval expert A Thanks expert B. So, I mean, this is like Haskell at its finest, you know, we're doing Haskell Just writing the parser. That's what Haskell is good at Now what did we get for that question 95? That's not good What how did we get that so add one times two That's it. Let's trace here And there's no parenthesis here, right, so oh now I think I'm doing the I'm doing what you should do, but instead it's it's it's not doing that, right? So digit I and then party so add AB Wait, let me see. You're going right to left. Oh, yeah, so it ends up being Am I going right? Am I going right to left? Are you sure? So we have add one digit to let's okay. Let's let's just check actually We're gonna have a list of expressions And we're gonna say Read Or here a read file print map, you know expression now Do now that we will I just want to say preload par no pars. Damn it. I think it's some white spacer. Oh My god Jam it. It's not parsing the ones with the parenthesis, right? Okay, so one plus two is Doing it be so okay, so let's see. Let's just fix the evaluation, right? Fix the evaluation first Okay, so it's not supposed to be 95 So one plus two is three Okay So we get we get add digit one Mall digit two and three, right? Yeah, okay, so that's the thing, right? It's not actually in like an expression, right? It's a It's just like a series of commands, right? So this is how you would actually evaluate an expression, right? But so add one Okay, yeah So for parenthesis, but for ads so these are always gonna be a digit, right? Let's just do like this. Okay, so if we have add With a digit How are you gonna do it? Let's see Maybe we'll just fix it. Let's just say an expert to list Okay, this is gonna be a data op is gonna be a No sheet This is also the problem with using read P, right? Because it just says No, you know no pars and then it doesn't actually tell you anything So add no, so we wanted to like this add add a See that's gonna be, you know, it's gonna be a plus B so it's gonna be you like for a you like for B and then Times I think like this and then from all if it's gonna be yeah, and then it's gonna be times Can we get away with doing it like this? No Damage, okay, let's see So open close open close parses open followed by a P followed by finally by close only value of P's return Okay, so we parse op plus so it's gonna be, you know Parts digit skip spaces Let's sit right here That's it but here and here we had this right Okay, let's fix the parsing and then we can look at the other stuff So how do we parse a par?  So skip spaces skip spaces But then I mean this is the equivalent to the previous one, right? But that one does not parse Okay, okay, I think I think I have to fix this because this is like how you do regular expressions, right?  Okay, so okay, so evaluating add a B One plus two times three, right? And I'm not I'm not doing any president stuff TV says right you're going right to left and find that hard to believe I'm going here six times five So we'll do one and then so if we want to do one plus two times This restrict So, okay, so let's see How you all doing enjoying Christmas so far is a bit of different Christmas, right? Not the nicest one. Yeah, it's something. I was at this work. I Can't just flip these, you know, oh well, I can actually So I flipped it and it's still not parsing this one. That's okay Yeah, but I still get 95 right because it's associated. Yeah, okay, let's try that Let's just literally reverse the string. I still get what the why isn't it? Why did it parse it the same way? This is Why doesn't this reverse? Oh? Wait, I remember seeing I'm reversing the order of the lines not Not the actual string first. Yeah. Yeah, this is like six and then Okay So we can we can just reverse the string. That's funny. I mean, and that's a correct approach, right? Because you know It's gonna be you know, whatever this results in Plus six, right? So we just reverse the entire string What it's gonna do is that it's gonna calculate this entire thing And then add it to this so that's that's that's a cool cool solution to me. I like it No, let's make it hard parentheses I'm gonna say what is going on here for this expert? Okay, this works. Let's see. It's not good It parts. Yeah, so you can't we can't just do this, right? Okay Let's say what we're trying to do is that also here here I said parts Digit now that doesn't work because choice Pause par come on par is good. Good. Nice. See this is what happens on gsc on windows, right? Sometimes it just crashes Okay, so it works on this I'll copy paste these It's just like here. I was only pausing a digit, but it might it could can be a it can be a Okay, yeah The the arguments are either a digit or an operand run. Let's see So anyone fifty one twenty six four three seven twelve thirty four one three six three two Okay, it works Works for all of them Now can I do away with this stupid? Reverse thing. I don't like it How can I like, you know fully evaluate? I want to fully Evaluate the expression be here All right, let's just let's just run the sum on this thread. So we're gonna print the sum Evaling the expressions Already got the input and now yeah, so we just parsed the input backwards But the key thing is what we have to rotate the parentheses as well, right? That worked. Okay, let's see if this is our answer. Hey, we got part one Whoop whoop Let's see if part two works Okay, now additional multiplication now additional like a different present levels, but they're not the ones are familiar and said additions value it before multiplication 231 didn't we get 231 earlier? When we were doing like the weirdest thing here, so it was like add, you know, if you're adding All AB then you first I was like this, right? But I feel like we saw it before right? So 231 51 46 Okay, this is supposed to be 329. Okay two times three plus four times five So that's supposed to be we're supposed to do Three plus four times five So number it's supposed to be two times three plus Four times five Well, thanks for subscription who's saying Co-colly cool No, it's nice to get or not it's not subscription, but I'll follow but you know, I appreciate follows. They are Poor man's subscription. You always need more follows, you know, what is wrong here? So if I think it has something to do with parentheses, so we got it correct if there's no parentheses Now if there's parentheses between so Okay Oh, yeah, that is pretty hacky Timmy that is wary hacky I'm gonna see See one south Let's see because now we have to care about presidents, right? Let's see Okay, let's see here now parts expert to let's just write it again. I Instead of you said so let's write it differently, right? Parts expert to so I because I don't I don't like I don't I think this is a bit weird So, okay, so parsing the expression.  So we won it's gonna be digit or par. Okay, and then we're gonna say choice No op is choice a Char plus or char Star, okay And then you do it's gonna be digit or par. Okay, so and we're gonna skip spaces Skip spaces, okay Now case op of If it's if it's a plus Then we are going to return add We're going to return a mad e1 e to If it's star we are going to return And let's see. I think this should work for our original case. Okay, let's see Then we don't have this and let's see what this returns Now we need to fix it to parse expert to It should be pars expert to really no pars Okay, so it's it's a So e1 digit or par then skip spaces then Choice char plus or charge star and then skis based on a to digit or par now, this should really be a Yeah, yeah, yeah, yeah, yeah, okay, so this should be Pars expert Really, right? Let's not let's not test this on the input. Okay, let's see. Oh Because this is supposed to be part cycle to read. I want to do this up without reversing Okay, let's see here. Okay, that's not that didn't work. Why didn't that work? so digit or par and then so this is just digit or par right and Then it's parse expert to and like if it can't How did I write pars expert? Okay? Yeah? Yeah? Yeah? Yeah? Yeah? Yeah?  It doesn't actually do anywhere, you know, just one number. I Don't think so. No, okay, so it's always gonna be an operation. Oh Yeah, the second one might be just a number, right? Digit expert to okay now you get this One plus one plus two Okay, now we're gonna say times two and Now it's gonna be one plus Like this the parenthesis. Okay, and now we Evaluate that so the trace is 9551. Okay, that's the wrong So is it gonna be I think the par E2 we don't want to trace here Let's see But yeah, the flingless. I want to say par e1 E2 right and then I want to go left to right, right? Does this even change anything? I mean, it's not changing anything, right? Okay, let's let's do this do the same thing as before reverse thing or can I just do Our e2 and then e1 here that shouldn't matter, right? because it's it's doing Yeah, yeah, yeah, yeah, okay, let's just reverse it then again reverse here Let's see what happens. Yeah, we got the correct results again But with our like custom rule parser Now I want to change the Presidents here So we say case op of So how do we change this? E1 2 it's just gonna be E1 e2 Now if it is so if it if you want if you always want a Can we say, you know par Here I mean that doesn't matter for these right it's it's always as if the two bottom ones were parenthesized, right because now if the sub expression is a If it's a multi if it's a addition If it's a multiplication, I want to do here more if this is just I Just I'm not doing anything useful here, right? This is just incredibly. This is just not doing anything, right? We should rather we should not be changing the parsing. I think we should be changing the eval expression eval expression to So if I'm about to multiply Hmm What am I trying to do here? So in this case, I would want to compute a 1 plus a 2 Times a 3 plus a 4 right instead of saying a 2 times a 3 like it's not a 1 plus a 2 times If you proceed for it. Yeah This is gonna be fine. So a And b now I'm supposed to multiply, you know Moll Then I want this to be eval add add a 1 mall a2 Moll a3 a4 It's okay. So here's this is a 1 times a 2 Times a 3 plus a 4 This is A1 plus a 2 Times Don't hear I want to add first right so this is gonna be I'm doing it exactly the wrong way. I think I think I should be not changing this one I think I should be changing this one eval expert to add a Add add a 1 a 2 a 1 a 3 a 4 this is a 1 plus a 2 times a 3 Times a 4 All right. Oh, this is like this I want to change the presidents of this to be I want it to be actually, you know add a 1 Add a I wanted to be add a 3 Add a 1 a 2 mall This was a 4. I think so. I like this It's actually add a at this It's actually gonna be multiplying of adding those two together first and then the last one Now add and if you have mall here and add here this is This is a a 1 times a 2 Plus a 3 plus a 4 This is going to be This is gonna be mall. We're gonna mall a 1 with adding a A We're gonna be this is gonna be hope So this is a a 1 times a 2 plus a 3 a 4 and this is gonna be multiplying a 1 with adding a 2 a 3 a 4 Okay, and so and then it just goes to regular mall. Okay. Let's see what eval express 2 does If it actually does anything different, let's see the CCC Not exhaustive patterns. Okay, and if it's something else eval expert add All right, we need a at mall a 1 a 2 mall mall a 2 a 3 This is you know a 1 plus times a 2 plus a 2 times Plus a 3 times a 4 And in this case we actually want to say This is gonna be the same as eval expert.  Oh, this is evil expert to write and now it's complaining that I to write a 3 a 4 This is actually the same as doing this. Okay You well expert to Add a B equals eval eval expert to a plus like or to be Non-exhausted patterns. Yeah, it's because it's supposed to be just Ain't be okay Okay, it's just doing the same thing again. Damn it. Damn it. Damn it. Damn it. Okay, let's see It's weird though that this doesn't work Is it because I'm doing too many bars here No, I'm not doing any bars. All right, let's let's Change it then. Okay, so did you just gonna be a digit, right? Did you just always gonna be a digit? I mean, I don't I think we have to change the presidents during parsing, right? That's like where you do it, right? You don't you never do it like this We don't want to transform the expressions. I don't think that's clever Okay, so we have digital par and then we skip spaces and then we have choice char plus char star It's key spaces choice Digital par par's expression too Yeah, but I'm doing it like that. Okay Let's see Show ID. Okay. It's only a test input, right? We reversed it. Okay. Let's see school it parsing with Residents, you have this read preck combinator, right read preck What is the read preck? Let's see now I'm doing it like this. I want to change it to Like this, right?  Let's see parse expression to Now for that one, we're not gonna we're not gonna reverse it. Okay. Now we're reading we're doing read Get input, okay, but now we're not gonna reverse it. Let's see Okay, which means we can't yeah, we shouldn't reverse it exactly so now they have presidents, but Now it's being parsed normally, right one two, okay 51 46 1445 90 Because this one should be so now it's 95 but it should be 231, right? Can I just literally Like try to parse and star before I pause it Okay, now let's try and write it a bit differently parse x for three Do okay So you be parsed you want digit or par and skip spaces and then up it's gonna be choice of Char Star Or Char plus now, okay, we have a star we have like a one so we have like you know something like Plus or we have e1 Star okay, so now if it is if it is If top is if it is if it is Plus then we just do Then we do parse expert Three Let's like this so if it is a plus One plus to have the highest presidents, then we say, you know E2 is We just do do E2 is parse expert Three It's gonna be dig it. Okay, let's let's just fix parse expert two Actually, let's see here. This is supposed to be a comma. No, it's just basis case up Okay, if it is a star One star, but if it is add if it's add Plus Then we're gonna do. Yeah, I mean I would I would yeah, but I'm like I'm still I'm still doing it this way You know, but thank for that suggestion pick. I mean, that's that's what I should be doing, right? And then I can just change the president's but Is this wrong? This should be star and If I if I parse the plus I Want to like finish No, this is more again. This is a plus, right? And this is supposed to be Now if I if I return to plus I want to kind of keep going I Want to keep going until I find a plus See here Many okay, so maybe this is not digital porn. This is actually gonna be Let's let's let's let's say differently. Okay, let's put it up differently, right? Okay, so let's see This is gonna be parse. This is gonna be exactly the same as parse expression. Let's just Kill this and we'll keep this as parse expression Instead of being like this, so we're gonna say, you know It says it's gonna be projects for two And now this is gonna be, you know, a do so e1 is gonna be a parse So it's gonna be, you know, it's gonna be choice dig it or par and parts of deep spaces HR plus e2 choice Dig it or par Come on, par is op Star. I think I think this is like this is the default president So I think maybe we'll need to I think we'll need to like flip it up and like say the the opposite, right? No pars. I think it's because we don't reverse. Yeah, let's see if I can do it like this Or is expert 2 and now it's doing it the normal that way and now it's gonna be This yeah, it won't work if there's no plus in it, right? Okay, we're actually gonna have this as plus And plus. Ambiguous parse. Let's undo not this sort of read. Let's just do Yeah, and then it just doesn't parse the other ones if they don't contain it Because it tries to say, you know, parse something like a digger, par and plus and then Star and then, you know, that's okay. We have to do skip spaces again, right? Okay, so and then it tries to find parts op plus Which this should be I think it's actually be this one much choice digit or par and this entire thing Okay, so we parse op and then so we try okay, so this is gonna be, you know Parasex, but true. Okay, so this is not the choice. It's your part. We already have that So we're gonna like on the top level parse like this.  Yeah, this just doesn't work I just don't know how to write a parser. I Think that's the thing. Actually, I have to go now Cuz dinner is here and I have to go get dinner So, yeah, we're not gonna we're not gonna do this today Sorry about that I'll come back to it tomorrow, I guess But it's you know parsing is hard, right? And doing it with different presidents and stuff Special expressions. That's like I don't I never write a parser. I always just like yeah, I've written parsers But then it's always like just hey, you know ignore our presidents. We don't care about it Now this is just dead So we're gonna look at it to later Yeah, it's not going to well But I'm gonna have I'm gonna have dinner now because like the pizza is already here. It's getting cold sad, right all right Yeah, first time we've given up on a task, but it's okay You know, we usually a lot two hours to these things and we kind of already did one today So, you know, and then we were like gonna try and do two, but then the second one is just It's just rough, you know, I spin It's just not going that well Which is a bit disappointing actually, but you know Let's see. Let's give it a year. Let's give it 10 more minutes. I Think we can do it now Did it did it did it did it oops? The jaded emperor It's a pretty cool name actually Yeah, we have so we parse it, right? This is adding except when it adds with you know add to mall did it for nine, right?  So Because you know, then we don't have to deal with par's errors, right? Okay, so this is this is let's call it transprec now, okay and add He okay add a B So what what we want to transform here, right? We want to transform You know Add mall to mall add, right? PC to Mall is gonna be add Mall a See So we want this one here. So it says so here says, you know add One plus two know that this is incorrect So one plus two times three should be parsed as Okay, so One plus two times three. It's going to be parsed as add one To mall to three, right? We want it to be Add now we wanted to be mall add one two three, right? So add this is gonna be mall add a B See Okay See here Transprec so okay, so it's gonna be transprec this and then we're gonna say transprec Yeah, we're gonna like recursively apply it right transprec B Transprec C Okay, now we want a One times two plus three, right? Which is gonna be mall a Add B C. This is gonna be notice. Yeah, this is gonna be mall B C we actually want this to be Now this will be okay, what does this do now, okay works for the First one But then I think it's not like recursively applying it now. This is gonna be add mall B C Okay, so if it's add If it adds anything else It's just gonna be Which other correct structures we have add power mall okay, so we recover the base cases, right? We don't want to change those So two three one fifty one forty six This one should be fourteen forty five Okay, let's see So I think we should also apply it in the other direction, right? Oh, I think I have to recursively apply it here. Is that just scratch? probably right Yeah Nice Okay, now we've done it We get we get it correct So we so we so you kind of always when we're doing adding and multiplication.  Let's see if it's correct We did it we done did it That was a rough rough one Took us two hours Or you did it whoop whoop All right, I'm gonna go have my pizza. I'm glad I gave it 10 more minutes Would have been shame to not finish it this time All right, thanks for tuning in I hope you like this double feature Even though it was a rough one like because I was just like I had to think right I I was just not I was just not getting it. I mean, I think I think the thing was like I wasn't doing this Recursive thing, right? But we kind of you know changed the presidents and we kind of do it for every level again and again again And then it just works. I mean, okay, so yeah, thanks for tuning in. I Think I'll be back tomorrow. I'm not quite sure, but I'll probably be back at like six o'clock if I'm back tomorrow So, you know But we'll see We'll see I'm not I mean and then we can also you know, we'll do these just to have two words, right? You do them all later. All right, thanks for tuning in and see you tomorrow. I hope All right. Bye. Bye


Welcome artistic visitors and subscribers for this lesson where I'm going to be painting the night and it's going to include my technique for painting fireflies and even stars so it's kind of fun. Now I'm going to show you some of my supplies that I used. I used a majority of great American pastels and I've had this set actually for months but with a lot going on my life I have not been able to use them until this particular painting and I'm going to be oh here's the box top. It is the Richard McDaniels Plenair Gallery. I really liked this set because it was it had such a nice assortment of colors and I love the way it was arranged with the values. Now a lot of pastel sets come with a piece of paper like Terry Ludwig's where you can actually mark the color of your pastels next to the number in case you run out of a color and you don't remember the number. Now great Americans did not have that sheet so all I did is I took a picture of the open box I printed it out and I just made a little mark you could see there to the left side of the pastels by each one to get a reference of the color. Now I'm using Sennelier LaCarte pastel card.  It's a very gritty surface. This particular pad comes in all kinds of different colors, four to six different colors. I wanted to use this charcoal gray because I was doing a night scene anyway and just a note this surface will not take water so don't apply water color or any kind of water-based medium to this. And now I've just got my, I think this was a 7 by 9 inch and I have my little iPad holder here. A lot of people have inquired about this holder. It's really neat because it just hangs right over your easel or you know something you know whether it's an easel or a drawing table like this and it also sits nicely on a table for sketching or whatever. Now here's my little hinge system I often use where I just put a piece of tape on the back of the surface I'm working on and have it sticking out of the top and then I just put a piece of tape on the top. That keeps me from having to put tape around the edges of my surface. I also like to share my little homemade pastel dust catcher. It's nothing but some aluminum foil made into a trough. Now here's the photograph. I took a bunch of pictures in my own backyard at the new property. My husband and I just got, oh there's a deer that visit my backyard and I'm just choosing what I want to do here. And none of the compositions were quite what I wanted. So this is a time when you improvise and you kind of learn how to create a composition on your own. So I'm really moving a lot of elements around and I'm kind of seeing in my mind kind of what I wanted to do. My backyard scene was really flat. All I really saw was trees and sky and so I decided I wanted a little more interest. So you'll kind of see as it develops but this is just kind of a little idea value study composition. I often do a little sketch kind of just to get an idea of where I'm gonna head with the painting. So basically the painting served as a reference for color and value for me more than the composition. But these are the great American pastels that I chose. Of course it's a night scene. Lots of cooler colors in the evening. You don't have sunshine and the warm tones. But I'm gonna have a few warm purples and that little mauve color there. And I am gonna have some darker greens. They're gonna be muted and dull because there's not a lot of light. Now the moon is the source of light and I decided to make a little bit of a warmer moon. I am gonna put down the darker yellow there first and then kind of lighten it up with the other values on the top of that. And you can pretty much ignore that little colorful sketch that I did there. I quickly realized that the great Americans are so soft. They don't work well on that paper that I have. You may see I like to cover my sketch board or easel with a type of you know just a cheap paper because I often clean my pastels a lot and sketch on it while I'm working. But they did not work that well for the the colorful pastel sketch there. So just don't even pay any attention to it. I'm going to sketch this out. I just have a little pastel pencil. Again I'm still just getting basic composition with this. But let me go ahead and speed this up and you can kind of see where it heads. And some of you may recall that often in my videos I'll put the reference image up in the screen here usually to the right so that you can kind of see what I'm working from. But this was so interpretive. I was literally just using the image for the color, the value, maybe some of the shapes of the trees. But I was kind of reinventing it. So there's not a lot of purpose in putting the reference photo up there. I might stick it up there a minute. But at this point I was still exploring. I've got a general idea of composition. But at this point I was going to have mostly trees in the front and try to push back some trees in the distance. I love depth in a painting. I mean that's really what we're doing is taking a three-dimensional world and putting it on a two-dimensional surface. So why not maximize that by having a place where your eye can go way deep into the painting or see some interesting elements behind. And this is kind of how I started. But the neat thing is that the more you paint, the more you look at the world. I highly encourage study the world, study how trees grow, how reflections behave, how light behaves, and learn rules of perspective. And then you can start to basically change your painting to what you see as artistically beautiful rather than what is necessarily in the photograph. And you'll see as this evolves that I even change it from here. I decide later that I thought it'd be much more interesting to have some water and reflection underneath there for interest than just the trees and the sky and maybe some distant trees. Pardon my head.  This is a place I wanted to mention something also. Notice I didn't draw, I mean I did with my little pastel pencil, a little circle for the moon. But I'm not making a line with that pastel. I'm really just kind of blocking it in. And there's something that makes art look more painterly and beautiful called lost edges. You really don't want any sharp lines. That is unless you're trying to really accentuate a little particular area in a painting. But for the most part it's much more free and impressionistic if your edges are just kind of lost between the outside edge and the inside edge. They're more edges than they are lines. So also too, of course the moon is a source of light in a night scene. So usually there's going to be lighter values around the moon. So I'm kind of overdoing that right now. And later I don't make it quite as drastic. But basically we're just kind of blocking things in at this stage and getting correct color and value. And in this particular clip I'm using a piece of the pipe foam insulation that a lot of you may be familiar with that actually a lot of pastel artists use this now. And it's just a cheap little easy way to blend. And you don't want to over blend because your painting can lose its color and get kind of muddy. But there are certain areas that you want to push back and less detail makes something look further away. And so I wanted that sky to be a little bit more blended. Now this is the point where I'm still playing around with maybe having almost like a little opening where there's some distant trees. And I'm going to kind of carve those in. I'm painting rather negatively now. Negative painting is when you're you're painting in the holes rather than painting like the leaves of the tree. So I'm carving in those those trees by the negative shapes that I'm painting around it. And still kind of having fun at this point and just seeing where I'm going to go with this. And I can't remember the point where I start I realized hey I want to add some water but I'm going to just paint a while and let you listen to some music now. I thought I'd mention here how the light has changed. I literally was painting before it was evening and I had my studio lights on. And now this is the next day during the daylight. And the lighting is so much different. So it's amazing how much just your external lighting can affect so much of your painting and your colors. Now I'm just comparing some values there. Again now you can see I have added that water reflection and I've mentioned in other videos that you want to reflect whatever's happening in the sky into the water. And of course reflections and shadows and things that are happening above. So I'm playing around with some of these greens right here for the background. And I later realized they're all too light that I really needed to keep that really dark background trees there. That's just too light. So I'm going to fix that in a little while. I thought I'd mentioned here that of course you see I had dark and some things up but reflections are going to work the same way at night as they do in the daytime. So I'm using the pipe foam insulation there to pull those shadows down from those distant trees. And then I'll add the water reflections on top of that. It's going to make it much more believable if I have those reflections down in the water. And I just happen to love some of these purples back there in the background there. So this is a new pastel. It's a harder pastel in you pastel not any W and they're great little harder pastels to have for things such as actually blending you can do with a harder pastel like this. I often just break them and take them on their side to blend if anything's kind of chunky or maybe a bit too textured and and they're just they're very versatile. So I like to have a combination of soft and some harder pastels. Now I'm just adding some again what's in the sky is going to be reflected in the water and I'm measuring kind of where those purples are going to be based on where the trees are. So again you can kind of see it come into life and how it's starting to be more believable as water and I'm continuing to work here. I was going to kind of blend in some of that sky. There's kind of a stark transition from one blue to the purple. So I'm just basically getting it to be a little bit more consistent and again putting the same blue that I'm putting in the sky into the water. Now a lot of times you'll have a painting you're doing where you have the sun or a moon like this to where you'll actually see the moon's reflection in the water. In this particular composition the moon is a bit too high in the sky. If the painting was longer if I had more painting down at the bottom there you would actually be able to see the the moon in the water. But in this case that wouldn't be correct to put it in there but you will get still some of that light that's going to be a hint down towards the bottom right hand side of where that water is. Now you can see how I'm using the pastels themselves to kind of blend those colors in. And I you know I kind of I have the advantage of being able to look back at my painting when I record it like this. I recommend if you have the opportunity to do that. It's a big help because often you can look back like I'm doing now and say wow there's certain places that I really liked it. I kind of liked that sky chunky like that. And I I think I end up blending it more at the end. I liked the final but sometimes I like the I'd say about 70 complete phase. I'm going to speed this up a little bit. I've had most of the I know you guys like real time and I've had this mostly at only two times sped up which is plenty slow enough to be able to see what's happening. And but I want to get to some of the points at the end. So I'm going to speed this up maybe four times and you got to get the idea. See what I'm doing here and then I'm going to pop back in for a few other comments. I wanted to point out here that I use this little tool that is actually a makeup brush. My son and daughter-in-law sell these makeup brushes. They actually had their own product designed and they sell them. They they're really great for makeup. I just don't wear makeup a lot. They're they're really good for blending especially foundations and but I had this idea one time to just try them for blending my pastels and low and behold I really like it. Especially this little one is I think it's meant for eyebrows but it works great for small spaces. If you're interested it's the company is ovelbeauty.com. It's O V E L beauty.com not O V A L and again they come in four sizes and I I've really had them work quite well for me. Now I'm kind of measuring some things again here. I already spoke about how the moon is not going to show up in this in the water because I would have need needed more paper down at the bottom there. So I think I'm actually talking there but I decided to do a voiceover instead and I've you know like I put a little note before I'm playing around a lot with this because I'm doing it from imagination and the good thing is I'm kind of pulling the shadows down again with that little makeup brush and it's brushing off a lot of the pastel so it's still allowing me to have grit to the paper. The end goal is to get all the reflections correct and then I'm going to lay that water down on top of it and then it'll be more believable as water. So that's that's the goal. I wanted to zoom in the camera a little bit here so you could get a little bit more of a close-up as to just to see a little bit better about where the pastels are and and how I'm using them and now you can see how I got that water. Now I'm carving in kind of sky holes right now with that purple but now you can see how I got the reflections right of the trees where the darks are and I did a little sideways not what I'm doing now but in the water when I move my hand you'll see how I kind of glazed over the water with some of the colors that are in the sky and see how it really gives that impression of water at night. So again just a little carving here and there. I love the carving part I think it's so fun carving out the trees and how they just literally come to life it's very cool. So again playing around with the water a little bit more and pretty soon here I'm going to show you how I get the fireflies. I'll give you a little heads up. I end up not keeping too many of the stars or the fireflies. I felt like they were overkill. It kind of was just too much. I almost looked tacky so but I'm going to show you real quick. Let me speed this up and we're about to wrap up here and I'll show you the firefly star technique. Okay so the tools that you're going to need to be able to make the stars or fireflies is the first time I ever tried it with fireflies. It's a grater. I typically have one that's smaller than this big one but I'm kind of in between houses and places right now so but I just got some of the colors that I wanted to use for either the stars or the fireflies. The fireflies are going to be a little bit more of the the yellowy and the stars are going to be a little lighter. Like I said I end up not keeping as many of them but what I'm doing is I'm using the grater to just grate some very sizes of pastel dust and I'm breaking them up a little bit. I find out that you want a combination of a little bit big and a little bit small because obviously perspective applies for fireflies just like it does with anything else in a painting so I'm just you know kind of getting me some good chunks of pastel to work with and sometimes I'll actually for stars is grate it on top of the painting but I wanted a little bit more of a strategy here and I wanted to control the placement a little bit better so I'm actually using some little tweezers to just go ahead and put the stars and the fireflies where I want them and then I do end up sprinkling some with my fingers later to get a little bit more of that random feel but stars and fireflies are going to be much like I've talked about with anytime you're painting things such as flowers in a field you don't want too much consistency it makes your painting look amateurish if things are placed in a pattern like you know you want a variance you know and I just think that's amazing how nature has this neat way of having so much order but at times it has the spontaneity that's it's almost like a beautiful dance I I often often compare it to music there's something in music called dissonance and it's like you'll be hearing the song I think Moonlight Sonata has it I love that song where it's just sounding this one particular way and then all of a sudden there's this note or this part that almost sounds a little off but it is so beautiful it's almost that little randomness makes the song and the composition even more beautiful so I'm trying to create randomness with my placements of these again I end up some of them are just too big but this is more so that you can see them and see the technique I do calm them down a little bit later so you get the idea I'll go ahead and speed this up a little bit and show you now these are going to obviously fall right off the paper if I lift it up obviously I have this laying down and so what are we going to do to make these stay in place and I'm going to show you right now all right so what I've done is I've gotten a piece of glassine it's a product that you can use to actually protect your pastel paintings but I don't see why you couldn't just use a piece of wax paper I think I have used wax paper before for this and I didn't have a roller like you'd roll cookie dough with again I've sort of moved out of this house where my studio is so I'm kind of limited with some of my regular household supplies but this is just a big decorative bottle I had and it worked it was a big flat surface so I'm just pressing kind of hard where those stars and fireflies are and what it's going to do is especially because this Sennelier Lecart paper is so gritty it's going to hold some of these like I said some of these pieces were too big you see how I'm blowing and mostly they're staying but I go back and I kind of revise and and fix it up a little bit sorry for the shakiness there but you can kind of see if I if I pick it up those are going to stay in place and so that's how you can do it you can either do it right on the painting if you want to just have some real randomness or you can kind of play some like I did too but hey there you go stars and fireflies with a neat little technique so I hope you guys enjoyed this I enjoyed doing this painting I encourage you to just try some kind of night painting and join our Monet Cafe art group on Facebook you'll get so many tips techniques and just a lot of really cool warm loving people so anyway guys love you and I can't wait to be painting more and sharing more please subscribe happy painting bye