You know, obviously the meeting is not called order with one person. Okay. So I'm Kirby Keaton. I'm the chair. I'm an attorney. I work for the state of Vermont. For doing tax policy work. Let's go around. I'm Mike Miller. You guys know me. And I'm the planning director for the city of Montpelier. I've been here for eight years now. I am Jake. I'm a senior UVM interning with city of Montpelier. Currently working on the public safety plan. Nice to meet you, Jake. Oh, Jake, I thought you're not a planning commission member. No, no. Oh, so we only have one. Really is just me. Yeah. Hi, everyone. I'm Aiden. I cough from SE group. I used to be in Burlington and now I'm in Colorado. But familiar with this area and within the community planning team. I'm often working on. Economic development, communication. A lot of our graphics and public engagement. So excited to be here. And I'm Gabby Voler. I'm a senior planner with SE group. And I'm a developer with SE group. I'll be managing the project that Aiden will be doing. The day to day work. And to give you a little bit of background, our company. Has offices in Burlington, Vermont. Frisco, Colorado, and Salt Lake City, Utah. And we recently, our most recent project with.  What was that 2019, 2018, maybe. Yeah, it would have been just before COVID. Yeah. And Aiden, you worked on that, didn't you? Yeah. Yeah, with Patrick mostly. And so I do a lot of the, I run a lot of the. Community master plans and kind of downtown projects. And we've done a lot of work on story maps, kind of bringing projects to life on the, on the web through. Maps and narrative. So I'm sure Mike's given you a little bit of background, but we applied for this project. And we're excited to help you bring your. Plan to life and make it. Easy to read for your residents and. Zers and all of that good stuff. Have you guys been able to get in touch? I know. You guys were going to have some folks get in touch with Zach about getting access to our. Stuff, our. Arc map stuff. Did you, were you guys able to make those connections? Yeah, I did email Zach and it seems like we can create everything on our account and then just transferred over. I did not foresee any, any issues with that process. As far as getting. GIS data from. It's at the RBC, right? I thought that connection has not been made yet. Okay. Well, I think we can, we could probably just get going. I don't know, Mike, do you, I mean, I'm still interested of course in hearing if we don't end up having everyone else. Show tonight. Hard to know what was going on with our other two members, maybe. Since. It was just a presentation tonight. Maybe that was, I don't know. People saw that as a, as a reason to take a night off. I'm not sure. But. And you're recording it. So, you know, we could continue and they can. Get up to speed and watch it. And the public. Any decisions are really trying to give you an intro to the project and kind of some of the options and all of that. Exactly. Exactly. So it's good background info. And you're totally right about it. You know, workers recording it. So it will. You know, the public will be able to see it. So yeah, let's, let's jump into it. So this is not an official meeting. This is. So there's no reason for me to call that to order. This would be just a working meeting and presentation for the planning commission. So there's no need to follow the agenda necessarily. So let's just jump right to the plan meeting with. I love it. So the first thing that was on our previous agenda. Was to look at. Sort of schedule. Make sure that that still aligns with both sort of internal and external. Forces there. So if I have the power. It looks like I don't have the power right now to share my screen. Okay. You don't. I have the power. I don't have the power. I don't have the power to share my screen. Why do you not? Okay. Now I do. Maybe I wasn't seeing it, but I was looking in the right spot. Okay. So this is the timeline. Slightly updated since the proposal. We are in this first phase to play defining the plan template. And then we're going to be creating data requests. Kind of trimming down on some text. Doing an outline of each chapter. So once those outlines and data requests are completed. We typically send those to Mike who distributes them to the applicable. Parties for each data request. And chapter. So far, you know, we're here. We're here. We're here. We feel pretty good about finishing out the. Outlines and data requests for the existing chapters. By November, knowing that we're going to be catching up on some of the non existing chapter. A little bit later. Mike, does that. Drive with what you were thinking there. Yeah. Yeah. So. I think the one chapter that. The planning commission will have to work on will be the land use one. And I think that was, we were going to do a little bit of. Maybe iterative work with you guys going to see what would be possible because we talked about a few ideas, but I think the other chapters. Are the community services. Utilities and facilities. And I think it's going to be, I think it's going to be, I think it's going to be, I think it's working on public safety. So hopefully we'll be able to wrap those up. Our goal is to have all of those, except maybe land use would, would be all done by. The December. Okay. Perfect. So at this point, we have. Chipped away at the economic development energy plan and housing. So my co-worker Julia. Who is on the Burlington planning commission this evening. Once the schedule gets normalized, she'll be able to join these meetings. She created the outline. Did the data request and got material back. And has created. A. Like example chapter that we can look at. We can look at the planning commission. We can look at the planning commission. We can look at the planning commission. We can look at the people to this. After November, December. When a lot of this is in a draft phase. We'll come back to the planning commission. And really look at, does this structure make sense? Is it communicating the things that we want to communicate? At that point. We'll strategize on how we would like public engagement. And then this third phase has these review committees. Which aren't fully. Formed or thought out, but we're essentially going to. Try to put the website in front of. Potential user groups. Maybe youth, maybe. Visually impaired folks to try to see how the usability of this website. Is how the review committee will react to different audiences. So that review committee will likely have. At least one planning commission member, but also just be really introducing other folks to this website. So that's the difference between the review committee and the planning commission folks. And then we have this public engagement opportunities. So we're envisioning. Sort of a plan launch. And then we can get some feedback on it, but really just let people know that it's out there. And it exists. Any questions on schedule or any. Notes considerations. I have a question for Mike actually just. Are we, are we still, or at what point, Mike, are we thinking of starting to introduce this to the city council? Yeah, I think we're going to start with the city council. Because the city council will probably make changes. At least some, some changes. I don't think it was not going to be a rewrite or anything, but that, that could affect. You know, the content that you're putting in. So I'm just wondering how those things you're going to. Overlap. Yeah, I think we're going to have. There's going to be a plan development. Most of this is kind of going through the kind of the plan development. That's going to happen afterwards. And then, you know, we would work with. SE group to make those edits as they come through. We're expecting most of those edits would be smaller. And we can either that's within the contractor. We pay them separately outside to make the small edits because that. Those, those could take. You know, they, we could get in and out of this in three or four months or we could take a year for them to slowly, meticulously pick through everything. So. We just have to kind of go, but most of this is kind of more plan. Development before we go into the public hearing process. Now we're going to want. As we. Come up with things and we start getting into these public process that, you know, a little bit of that in that. Step three. They're going to help us as a group is going to help us set up a number of ways to communicate with the public, but their contract is not to be doing the public input as much as they're going to do. You know, they'll be doing the beta testing and these things to make sure it works and functions with different groups, but most of the public outreach is going to be things that you and planning commission and I are going to do. Taking this on the road to. You know, whether it's going to. The farmer's market or, you know, doing things at the senior center or setting up other meetings or going back to different commissions or doing, you know, the capillary neighborhoods, whatever we think is, is appropriate to get out as much input as we can. Hopefully being an online format, people will have the opportunity to review. And our hope is that within. The. The document itself will be opportunities to provide comment. So our hope is we've just got to get people to start viewing it. And that's this is the plan. So if somebody goes in and reviews the historic resources plan. After they review the plan, they can make comments or questions, but we've got to have some public input meetings that we would probably be handling. A majority of those. And maybe that's within our public. Some of our planning commission meetings, maybe we, you know, do a lot of advertising, a lot of blasting about, you know, we're going to discuss two or three chapters at this meeting. And then, you know, I don't want to try to go through one, you know, take us. Five months to go through one chapter of meeting. We certainly could. It's up to you. The planning commission and how you want to do it. But I would like to see us try to get through a couple of these. A meeting because they're already there. They're already online. People already have them. And hopefully we can do a quick introduction. And then take input. And then move on to the next chapters at the next meeting. So I have a follow up question now. So are you potentially using so what I originally thought was like this. The online version is going to go live at the same time. That you're completing kind of your draft of all your content. So. What I'm hearing now that's kind of helpful is that. You're going to have an online, we're basically creating an online draft. That you want to use. And as a public outreach tool, while you. Go through some additional input and adoption. Process. So we're not put, we're not producing just the final. Plan on the web. We're actually producing a draft plan. We're using some of those public input tools for input. And then, like you said, whether it's we have money left or whether we do additional around for some editing to get it to the final version. Is that kind of what you're. So I was thinking we had the final plan. It's all there. And then we have some kind of continuous. Input process, but I think this is actually better is. The draft plan gets published. We have a caveat to say this is a draft. We're still getting some input. It's not an adopted. Plan yet. And then we use some of those commenting tools, forms, surveys. Embedded on the story map site to get it. To go from draft to final. Yeah, that would, that would be my, my hope. That's helpful. That's helpful. So as far as this timeline goes. I mean, would you like it to be more clear. On this, that there is a draft launch. And then in some future. Time. There is a final. I think it's fine as long as it's understood that this timeline is the drafting process. And that the final would come. Closer to the end. Okay. Yeah. So I think it's. Like now through this conversation, like, is that the right. Are we going to be at a full draft by February? Hopefully maybe not. Like there might be some buzzing is there. Like, like Mike was saying, we don't know how long the city council will take with it. But so my original question for Mike was kind of like, when are we going to at least first send it to city council. You know, when are we going to be at a full draft by February? I think we should at least start that. And. What are you thinking, Mike? That's the summer. Yeah, I mean, I think it's a little bit of a. You know, a little bit of the political question of, of how to manage the process. Sometimes the council just wants to get it when they get it. So we get through our process. We hold our public hearings. We send it to them and it becomes their document. And they have public hearings and. They could have just the required, the two minimum required hearings and take testimony. On the whole document, which would be the whole website, or they could break it into pieces. You know, I've had. Boards and commissions do it differently. I would say Montpelier tends to be a community that, that goes for more public input than less. So I don't know if they're going to simply warn. You know, warn it and over three meetings or four meetings to go and say, you know, we're going to look at these three chapters first, and we're going to take these three chapters next and, and work their way through it. I had 22 meetings on the zoning. You were, you were there for the zoning that was starting in. Starting, I think in February and it was adopted in January. And that was a couple of meetings a month. So. But they wanted to carefully pick through every single single zoning chapter from beginning to end. So I don't know how they're going to handle. Handle this process. I'm hoping, you know, my hope is that as we, as these start to roll out that people are generally looking at them positively and, and, and agreeing with the approach that we took and the process that we took. And that, that this really rolls out. And it would be great if, if we're done, you know, if the content is done by the end of February and we've got things pretty close to buttoned up, we could go right into, you know, an extended planning commission public hearing process that is March through June. And it could be basically going to city council in July. I mean, I would love that. I just can't until, until the public starts reacting to it. I won't know. So having a little bit more of a vetted, they slightly vetted work product before city council. And then have it go through that process. That makes sense. And we try to get the council, we invite the council to go to the planning commission process because we'd rather have their input. If they're going to have problems with something, we'd love to have them, you know, kind of give their thoughts, even if it's just an individual counselor. So it's good to have the individual counselor say, you know, I'm not going to be able to support the energy play in the way it's laid out at this time. Then we know we can either send it on to them because they're just one vote, or we can go through and make amendments to make that counselor happy. But. We really usually don't know until we're in the process where they're going to be. But again, in general, this council has been very good, but we'll also have to see because in March, we'll have. An election where we're going to potentially have three to four new seats. So. Okay. We'll have to be seeing how the elections turn out where things land. Okay. Okay. Okay. I think next on the list was to review progress, which I've given a little bit of an update. The furthest ahead right now is the historic resources chapter. The other ones are still in the like editing and data request phase. I think I have it up on my screen here. Okay. So this is a. Just an example of what this chapter could look like. We went pretty light on the branding and colors and that sort of stuff, just knowing that. There would be. That's often what people really latch on to. So we're going to start with the content and the structure. And then kind of do the polish a little bit later. So it starts off here with just a little introduction about, you know, why historic resources resources are important. A fun little slider. Tool. Before and after. We're also using this example chapter to show you. Some of the features of story maps, like how we want to walk. I don't know how familiar you are Kirby with story maps, but you know, making this come alive a little bit more than just reading a plan. So we're, we're kind of tests. We're testing some of the features that we want to use, like the slider bars, like the show you how the, the text content and the photo content interacts. You scroll through the page. So please, you know, stop us if you want to talk about any of the features or. You know, I would say generally, we're thrilled to have you doing this kind of work because it's, it's not the kind of expertise that we have. So it's a, it's a huge bonus for us. Thank you. I always think the slider is a fun way to like catch people's attention. Yeah. And there are some other examples here that Julia emailed to us today that for her really show, you know, how other cities and counties have taken a process like this to look briefly at those. So here's an example of what we would call like a quick map where she's going, she's using this tool to kind of go through a couple of the like statistics that were highlighted in this chapter. So the historic district, historic markers, the landmark, the numbers are a little confusing because they don't quite match up the stats, but you can kind of see that. Just people around town has a photo has a description. Can you zoom in and out on your own to that map? Or do you, is it, is it tied to just the scrolling? Yep. Yep. No, you can, you can, you can explore in the background. You can. Whoever makes the story map can decide what. How zoomed in it goes when people scroll and where it goes to. And how many clickable products like are all, what layers do you have that are clickable just those four, or do you have like the layer with all the historic structures? So this map, the base map in the background is static. It's, there's no, right. Yep. There's no like actual GIS data that's supporting this. Julia went and clicked on those four locations. Oh, got it. Okay. Yep. So what we can, that's a good point. We, there is capacity and capability to have a base map where you can click on the state building, click on the museum or something like that. And, and a similar. Little info card can pop up. So it just kind of depends on how you're setting up the data in the background, but this one. Was just like a little custom quick. Okay. Yeah, like we've got, we've got the, the GIS data layer for the national register district, which includes the building outlines of the contributing and non contributing structures within the district. So certainly that would probably be a layer that. She could integrate, you know, into that first. Piece when. Yeah, that's what I was. That here's, here's the district. Yep, exactly. And it would have all of the. All of the. You know, which where are the 300 and 535 contributing structures. Absolutely. Yep. I think that would be a cool application. I'm going to write that down. I like this base map. Look, I feel like I haven't seen. Yeah, it's kind of like one of those pre-built ones. Okay. Yeah, that is neat. That is a kind of makes it look old, but new. So yeah, that's this first tool. So far it's organized into issues and background. And something that I, when I reviewed, I sort of highlighted, does that look, we'll definitely want to make sure that where we are going to be in these sections and flow will is consistent. So if all the chapters have issues, background goals, great, but we'll just want to make sure that it's consistent for each one that pops up here. Yeah, I think the header we used was how. This chapter in this case would be how historic resources relate to the structures of the plan. So in some cases they, they support. And in some cases they create. Conflict with other chapters. So. Okay. Okay. Again, this is a, this is like what's called a sidebar with the quick map feature here. So we don't have the overlay district in here yet. We don't have the library. We don't have the library itself. We don't have the library itself in here. And so that could contribute to the contributing structures. But again, I think that would be a really cool thing to highlight on this page. She's a little placeholder here of a little photo library that can be. Placed in this section. And then the, how do we get this done? So I'll need to follow up with her on what. This is looking at. The historic resources. Progress. Number of outreach efforts completed and stuff here. So I'll need to see like how those can be. Sort of like continually updated. You know, if that's a spreadsheet that the city is updating and then the computer just knows to update it, I'll need to look more into that. But then just a little. This was the piece where we were. This is doesn't appear how we measure progress isn't in all the other chapters and this this is where we would need to have a line because it has to be static. The plan really can't be dynamic. So, some of these pieces maybe, you know, we would love to be able to integrate them, but it's really not the primary. Primarily what we're trying to do is make sure we get that top part. We've got the time and you guys find it's relatively easy for us to insert the measurables into there if we locate how to measure things and we want to put them in and we would put them in but we have to kind of put a dynamic line there which would indicate that this is, you know, on the Yeah, there it's it's here but it's not part of the plan here. And then also for the feedback process we could under that line. Say, the above was the draft plan. Here's a short survey. What did you like about this chapter what needs improvement, whatever, you know, a three question survey about the chapter or however we want to get that feedback. Yeah. That's a good point highlight what static and what's dynamic. What's, yeah. Okay. So, are there initial thoughts about the level of text level of graphics structure seems like there's some absolutely some data and mapping that needs to be highlighted a bit more pulling pulling those data points. Get the overlay district in there, things like that. This link I believe is public so I think your folks will be able to look at it and review if you would like to sort of review it on your own time. It is the link will update so if Julia puts maps in here data gets in there you'll be able to see that. If you want to send it to me on the chat eight ends then they can click it. Yeah. Yeah, one. Trying to think if you want to just send it to me. Because I don't know how accessible the chat is going to be at the after the. Oh, okay. So he sent it to me I can get it out to do we want to pause and we have two new participants. So we have our other planning commissioners who were available for tonight. Oh, great. On Adams and Erica ziki are members of the planning commission. We still don't have a quorum technically. Okay. But but we do have more folks seeing this which is great. And just so you guys know my plan to after this meeting I'll do a write up kind of summarizing what we went over for the rest of the planning commission just to catch them a little bit about at least my impressions of things. And can we share the link in the chat. I know for viewers at home we can share it another way or people can actually probably see it on the screen share there although typing that in might be like the cumbersome but thank you. Yeah, absolutely. I can hear that you have some technical expertise with how to, and I'm trying to get to get this right Mike and I have to correct me and how we would link some of the like action items across different chapters that right. Yeah, how to show the implementation strategies that we, right, the goals, aspiration goals and those are what it's why it's on the Excel table because the man has the way to present it I don't know if we can figure out how to make that fit into the story map but we can we should be able to frame it in pretty easily with it or do an embed here. We don't have to belabor that book and cross that bridge, you know at the right time in the process. I want you to know how we were thinking about it. We want to connect those dots at some point. Who would we try to get john to connect up with the all three of you or I think probably aiden because she's trying to running the day to day. Okay. I'll make sure I'll make sure you to your email is connect so you guys can figure out a time to go over things. Absolutely. Okay, no, so I have a couple of notes in here to get the GIS data to look at the structure of each chapter maybe look at the headings of each section here to really make sure that they're making sense. Sorry, sorry to interrupt I think that permissions might might not be published or shared to the public for the story map. Okay, okay. Let's see. I don't know if I have the permissions to make it public. I'm an administrator. Okay, there we go. Thank you. I'm happy to go over like a slightly updated version of this historic resources and and wherever else we are at that point if there's other chapters built out, but as john Kirby Mike as Aaron Jake whoever has feedback on this. And absolutely integrated into us drafting further chapters. Yeah, so so about that aiden. Do you think that the so so what I'm hearing from you is that you want our feedback about historic resources as a template for future chapters. You're going to be do you think you do you think that you'll be developing out more of this in the near future, as in will it make sense for us to wait a little while before we check in about that. So as far as updating this historic resources will just need to make sure that we have the data from the RPC so if that is quick and we can get that incorporated I see that being a next two to three week item probably not a next two to three day item. So, as far as comments on structure and the amount of content, I think that that can be any time. But if there's specific comments that would come after the data is integrated then yeah those would have to wait a little bit. Thank you Kirby one of the big things we would want to be looking at at this stage is to make sure that a lot of the big headers who are talking really the template not necessarily the specific content details so as we had in there we talked about issues and background and you know should that be issues or should that be how this relates to other chapters, because we know how we wrote out our chapters. So those are the types of things are going to be important because we're going to replicate this exact format for each of the other chapters it's not going to have different format, you know if we're going to talk about the issues here then we're going to talk about the issues in the other one we're going to talk about the backgrounds and energy and we're going to talk about. So we're, we want to make sure we've got the format right. And we're talking about, you know, if we need to adjust things, you know, maybe the maybe the decision is hey we got the background maybe the background should be above the issues. Whatever those are really some of the big things. As much as the content is obviously important and we're going to be reviewing it. As far as the point of reviewing a template, we really want to think about the big picture of. Yeah, I like the slider bars I like this or I think that's distracting or those are kind of some of the template things. Yeah, I'm you. Nope, you're good we can hear you. Okay. I mean we get some instant feedback about that now and an Aaron and john jumping, of course, Mike. So yeah so right now it's broken down as issues background and what else issues background goals. How do we get this done. So I don't think that we're married to it but but what we've what we've done so far.  It wasn't by design necessarily just kind of how we did it and how we started doing it. There's an intro, any chapter which is which is background. Right. And then there's. And then there's the next part is how does the chapter that's being discussed how does it relate to the other chapters. And that could probably be put in a you know more interesting or easy to follow or is understandable way, but that is the gist of it and I think that we've considered an important part. So that the reader understands how the whole plan is holistic you know. And we don't currently have that on there right even that relates to your rename that the issues. I believe. Makes sense, I think, that says how it relates to the other chapters. No, yeah, I know she just changed the heading here to save the issues. So this one's talking about tourism economy. Okay. Yeah, so the content that we had about how it relates to other chapters is currently in the issues on on page. But it's not issues so much it's more of, you know, how is this chapter fit with all the other things we're doing. Okay, maybe we change that header. Yep. Yeah, and and we I think I think I can speak for all of us to say that if you if there's an interesting or a catchy way to put that. You know, we're on board. Yeah, because it is a bit of a mouthful as it is. It's probably why he was trying to simplify it and save the years, but. And, and then this, and the last part that's that's our typical way of going about it is the summary of past efforts. That's kind of more background more what's been done in the past. It's not, in my view anyway it's not an essential part of what this plans about. It's a high priority thing to include I would say, although Mike made his degree there's probably some statutory requirements for listing some past efforts if I am in a fuzzy way remembering that. Just to give my two cents of like of like not a top thing but like but having somewhere on there like a rundown of what's been done in the past was important to to when we were putting this together. And then after that the chapters tend to actually walk through the nuts and bolts of the of the plan itself of the chapter itself, which, as I'm sure you guys all know by now. The way that we've ranked things are aspirations are the biggest 10,000 foot view things, and then the goals underneath the aspirations and then under that is, is the strategies which is the actual specific action item things. And can you scroll to that so we can see how that's organized. I don't is that. Do we not put that on there. That part of how do we get this done how we get this done looks like that was what we were calling the summary of past efforts or something like that. Which as you can see from this is it's kind of just like what's, what's going on what's been going on recently. So, did we not put the aspirations goals and strategies in here what about this section. I think those are the aspirations. Okay. What are we calling this header, scroll up a little bit. Those are, we're calling those goals. Okay. So this is an aspiration statement and then these are the goals, but the strategy, or these the strategies, the strategies are how, how we get this, how to get this done. Okay, I don't know what what's under there is are the strategies are not gorgeous. Okay, so is that larger text the aspiration. Yes. I think it may be the first aspiration. There is only one aspirate. There's only one. So, so other chapters, yeah, we'll have one to three. Right, so that I think that is, you know, one of the things that I'm definitely going to look for as these other chapters get developed is, okay, this one only has one and it looks clean. It's all fine, but if there's, you know, multiple this big block text like how do we communicate that those are different aspirations that have their own goals and strategies as part of them. So this, this chapter may not have been, you know, it won't be the best example of how that gets demonstrated for other chapters. For sure, but good to highlight the structure there. Yeah, John. I was just going to say, it does seem like having an either aspirational statement I don't know if they would be like run on sentences for those that have multiple ones but it'd be nice if there was just one for every chapter right. I think, I think, I don't know, I guess throughout this, I've been sort of biased towards simplifying and throwing throwing things out but yeah to the extent that it's possible to make them look at like, I don't know, having a separate thing that says aspiration and goals and then it seems like unnecessarily complicated to me. I like the idea of, if we, if it is just goals and there is either a call out or blocker of a more aspirational statement, and maybe they're longer and others and then having the goals set out. That seems John what if we for some of the chapters as I recall needed more than one aspiration because the subject matter was such a large area that you couldn't have a meaningful aspiration. So I'm just thinking that inevitably will have situations where there's more than one aspiration. What if we just had more than one of these blocks, like, like what what's like this, this the goals block we would instead maybe this is up for debate but whether like the title there that says the goals maybe that actually says something specific each time for the type of aspiration that is. So like in this case maybe it could say historic resources or something like that. And then we have one of these blocks for the aspiration and then below it would be a different block with a kind of a indicator type word as the top as the heading word there that has the other aspiration and then list the goals underneath that. So, so instead of making it look to cramped we just have different blocks. It means the entire page is kind of longer. So these chapters were written I think is how it can work out. I'm kind of thinking out loud to a certain degree here. Yeah, I know you're okay I mean looking at. I think, regardless of how we want to either combine aspirations or not combine aspirations, just making sure that we can have a consistent structure throughout the chapters I think is the most important. So, if we change what this says here like that's, that's fine we just need to make sure that if it's historic resources for the historic resources chapter that that is the same for all the others. And I mean this could be like use the word aspiration but like 1.1. You know my pillar will do this this and this and then things are nested underneath it in a way that people can kind of understand what goals go to which aspirations and which strategies go to which goals. Yeah, I think that that's fine. So far there's only there are two chapters that have more than one aspiration. So there's only housing and economic development. And economic development was because there's a split between the aspiration, if you're looking at it from the, through the perspective of the business. And then there's economic development through the perspective of the, of basically the labor of the workforce. So you have different aspirations. Same same theme but you're looking at through two lenses one through support of business and one through support of the workforce and those are two separate concepts but, and then housing was split into two but other than that, everybody else did. So, as john points out we originally had like four and three and two and four, and they all got compressed down to one with the exception of those two chapters. But it'll probably be a lot more complicated when we get to community services so I'll be curious to see when we try to compress. What's nine different sub chapters. How do we make a single aspiration. I was, I was thinking of community services and I was thinking about how inevitable it will be, but but those things you brought up. Yeah, they like let's take economic development for example, yeah we really divided between entrepreneurship or business or commerce or whatever you want to put that, and then workforce. So, so we have so that lends itself to two good headings, like one being a workforce heading and then, and then stating the aspiration under it. I'm, I'm with you in the, we don't need to say aspiration, it can just be the way that you have it now or it's just stated there. And then the goals associated with that underwear under under that. And it leads me to a question I've had for a while now. The final version, like how the goals are listed there and there's three, you know, goal topics under there. Will the final version have the strategy drop down right there, like with the goal or something you can click on to access it from that location. Is that is that the vision. So, I'm going to tag john in here but if there is one or two strategies per goal I think that we can add either bullet points here. If it's a lot more than that and this is just becoming like a gigantic run on list, we might need to be more creative. A creative vision, a creative vision for this. Kirby, you repeat your question. Yeah, so what we're looking at now is the aspiration listed and then the, and then three goals, essentially listed under that. So where the strategies would come in. I was wondering if, like if a person hovered over one of the goals with this with a drop down menu strategies appear there, or just how how will people access the strategies from this part. And part of my question is, is that the vision or do people access the strategy somewhere else on this page instead. Isn't that what the how do we get this done section is. When we, when we wrote these out originally, the, how we get things done was really a summary of just some of the key strategies but it doesn't outline I mean, as all of you know who've gone through the strategies we sometimes have 1718 strategies that are that are there, and we don't really need to talk about because they're just ongoing programs you know what we're going to participate in designing downtown we're going to continue to, you know, participate in the growth center program and so you've got these different strides but really what the, the, the chapter in the pages really just supposed to tell us what's our goals, and what are the key things we're doing that we're going to help accomplish this. We don't have to go through all every single strategy it's really just to highlight the key thing. And then with something it'll say if you're interested in, in, you know, more in depth or if there's, you know, like you said an inserted box or something, john that people can, can drill deeper into it, then they could go and see well, you know, here's here that various ways that you can kind of look at. What are what are the goals that are associated with this aspiration what are the strategies that associate with this. Yeah I guess my question is how how nested are your goals and strategies is like you have certain strategies under a particular goal or is it like a list of goals and a list of strategies to accomplish those goals kind of more collectively. They're very connected. So what we end up with at the end is the strategies might go through this strategy supports goal one in goal five. And in fact that strategy may also support goal to and goal six from a different chapter because it's so it's not just like a one ABC because your ABC could actually relate to other goals. We built this, we built it from the standpoint of, you know, you know, we want safe and affordable housing so how are we going to get safe housing we're going to do this this this and this and how we can get affordable housing we do this, this and this. There may be some that appear in both lists. But as we, you know, once we built it out, you know, you then take all those goals and all those things, it ends up with a really long list but then after that for presentation sake, we then started pushing things and compressing things together. But which kind of makes it impossible to put in a descriptive format, you know, we don't really want to write out all of that. But from, you know, we kind of look at the staff is going to be kind of in the committees are going to be really looking at those implementation strategies. And nesting is important the information in there is important but from the public explain to the public what we're doing and why we're doing it it's not as important we do want to have right that Excel table and how they nest together. Yeah, I think Excel table go would go hand in hand with some kind of overall network diagram. And I don't know if you've seen these where it will have like all of the strategies and it will show with lines like one strategy might have three connections. And another strategy might just have one connection and it kind of looks like a beautiful mess of wires. But if we could make a network diagram that's clickable in some way. I don't know I'm sure there's programs out there I'm just brainstorming that could be a visual way of showing how the strategies linked to the different goals in the different chapters and then that table is kind of the back end. Yeah and the more and the more information we put in the table the more information we can more questions we can ask of it so if we put in there. You know who's responsible for this whether it's a committee or a staff person. You could then also query by you know what are all the right what are all the projects that have been assigned to the planning director what are all the public housing housing committee and yeah. So people could sort by depending on who they are but again from the plan or the written storyboard that's not really what the public we don't want the public getting lost trying to wonder yeah I agree but the committees and the staff would you know love to understand how to do a quick query of these things here so they could go and isolate the things that are for them because we're looking at this isn't eight year strategic plan and the committee is going to want to say right. This is an eight year plan. What's our work plan for this year what's our work for next year and what should we be going to the council for for budget requests and you know how does this really yeah staff loads you know we can't have all the projects that are assigned to the community development specialist being all the projects we work on and nothing from somebody else so Right. Do you want to do you want to at least label your goals so you could have HR one like historic resources one historic resources to historic resources three. I find like giving a little code like that is helpful in organization. Yeah if that if that makes sense I think at this point we had just made individual Excel tables and at a certain point I started scratching my head thinking maybe maybe I should be building this out differently, but I think we can always go through and make those edits if it's like no go you know don't just go go one go to go three go for you know that should be different for each one of the each one of the Excel tables so that way you know. Yeah we had that was the the concept. It was just unnecessary too complicated to try to explain like to try to have everyone put in those and we figured we would just index it once it was all done and give them identifiers. But that'll allow that'll allow us to you know either create parameters or allow for more interactivity and not worry about like. It'll just simple it should simplify things. I guess I'm still trying to I'm trying to think of like how do you how do we integrate it within this, you know, under each goal, it could get it could get maybe a little messy if we're trying to have like. It'd be easy if you want to send something like have something either pop up that has those strategies and just struggling to think of like how to elegantly. And like integrate all of those in some kind of interactive way. Do we maybe try to make a separate page for implementation, where we have just all that Excel information and, you know, instead of trying to make it into into here and just go through and say for a more in depth review of goals and strategies, you know, check the implementation page with this link or something like that. It could bring you to that and then have those filtered to whatever like that goal is, you know that you could be instructions of how to do a filter if you're interested in more of the filter this is how you would do it. I would like to see the public be able to access the strategies directly from the goals here though. I just just want to make that point that if they're reading about a goal here and it's something of interest that they should have immediate access I think to the strategies of how we're going to do this exactly. And, and there's a lot there's a lot of policy reasons for that one big one for me is. You know, the housing goal of you know, they go to the gist of it is not Peter cares a lot about housing. And a person, I think, would say, how much do you really care about housing, I want to see what you're really doing and they want to click right then to see what the strategies actually are, because a lot of these goals are subjective. I mean I think that people are going to want they're going to read the subjective goal, and they're going to want to know what are you what are you really doing so I just want to make sure that that there's easy access to that. And I don't think I'm not hearing anybody say anything differently I just wanted to make that point so I don't need to take it more time on that. I do think it's important for that for that access to be there. Absolutely do you think that having it be a link is. Is it just another step that you don't want people to have to take or do you, or it would be like a link be okay direct. I think I think a link is fine. Like what what wouldn't be great I think is if you have to go somewhere else on this on the side to access or find that if you have to go look for it. That's that's all I think that's not helpful but, but a link, a pop up thing. I mean I defer to all of you who have much better expertise about user interface stuff than me for that. But as a person who's like a user of these things I want to be able to click the thing that I want to know about now you know, so that's that's all I have to say but but the act the specifics of how that happens is, you know, you just have to try it. Yeah just yeah no I think this is, this is exactly what I want to explore with this group, because there are certain limitations of the website platform and there are certain things that we need to fulfill so knowing where those gaps are like, it's it requires some creative problem solving. When I look at this I'm like, okay there's like a slide function that we could have. Here's our, here's our aspiration, and then it has the goal and a strategy and it's like a, you know I could make that into a photo, but then that's not accessible to other folks like I could, you know have a little chart or we know Gabby was talking about the diagram with the lines showing what serves what, but for someone who's using a web reader screen reader. That doesn't do anything for them so yeah trying to make sure that we're, we're putting the content in the right places. And that it's easy and accessible for, you know, the for the public, not for the more like wonky folks who really want to get into the nitty gritty. So one, one way that could work a little bit, just as another idea that you know following up with Kirby's wanted to be able to have that direct. You can hover over things and it'll bring up a card, or click on something and it brings up a card. And if, if there was the description of the goal and then there's just three, you know, in, you know in the case of the historic. The first historic goal, there are three things is historic surveys program the key historic resources study and the certified local government program. And there can be three of these and you if you click on them and put brings up the box which describes what that strategy is. It doesn't go into maybe all the details of how much it costs and all those pieces or maybe it does I don't know, but it doesn't take you into the actual Excel table depth but if, you know, if there was just underneath assess there's you know those three, three pieces and then under the other one, you know there might be. Again, some of them come back, get repeated so under engage there's certified local government again historic preservation outreach program and the designated downtown program so you'd have three, one of which is the same as the one above but it's the one above but it's just, it's not describing it it's just going to put a little tag there that goes and says, you know, these, these are the tools from the implementation plan that would be used and if you hovered over it, it would describe it, you know. Yeah, yeah, I mean, I can play around with it and bring it to the next plan commission meeting, I think it. That's important to get right at this early stage. So I'll try to look at the different functionalities and Yeah, well, see what ideas work and what ideas through through an idea out there maybe it doesn't work maybe it does work but you know ultimately I think the more complicated Excel table full detail piece I think might be going to work best as its own implementation page where we've got all the data and all the information and these other ones can just grab bytes of data that we want to have the public get more information on what specifically we're going to be doing. So I feel like I have some pretty good action items. Yes. Do we feel like we have time to just maybe scroll through some other examples. We find that valuable. We can also start wrapping this part of the conversation up as well. I think, you know this this is we're available for this right now so so whatever will be helpful for you. I think we're on board for. Okay, so there's these two examples when I have Toronto one out of Odondaga County in New York that have done fairly similar not completely the same processes but this is something that as we have more of these houses so development housing public safety community resources whatever you want to call it. These will be the little bookmarks that come up so this could be like a homepage. So folks could see okay housing historic resources. This is how they've chosen to organize it. So we'll just to start to see with what the website can do and how some other folks have organized their information. These don't look to be exactly like comprehensive plan titles but maybe some like strong themes in their community. So here there you can choose to include these bookmarks or not so everything that's this title heading style can come up in here so if you want to get people the ability to. Okay I want to jump to national trends. They can just use this as another navigation. Put links within the text that same sort of scroll and photos look and see if they have any here let's go to their map. So, um, let's see this map. Yep this is has the full sort of GIS data in the background. So I think I can should be able to click and see things maybe they have that turned off. You can choose like what gets displayed on certain maps with the little legends like, let's see if the scroll, they have others. Okay so vibrancy was the only characteristic they chose there, and then they do have a public input form on the bottom here. All thing that we can create. So here they have a photo of a graph it's not interactive and this is the sort of thing where with a screen reader you would just have to try to describe this as best as you as you could but I don't think officially it would count as an accessible form of media. But I don't know that 100% sure. Again they've just used a static map here. And let's see what this map has. I think this will be a really good one to look at because I think we're going to push the mapping capabilities to their fullest extent in the land use section where we want to you know we might want to get a pretty granular. This is why I'm most interested in the other examples of like how did they tackle. We had zoning housing. I believe this one had a really good. Sorry I'm kind of scrolling fast I know it's, it can be frustrating. They had this really cool like map button tool where that's something that I see us being able to okay here's our neighborhoods. We have a million spelling obviously. So here's yeah. So we, you know this could be how many neighborhoods that you say there was Mike. 50. We don't want from a zoning standpoint it's 50 neighborhoods but there's many. Many. Other. Yeah, not on every neighborhood zone differently is it. No. We've got a lot of zoning districts, but it's not, it's not 50 it's just really in a number of cases it broke out.  You know, you might have the rural district anywhere that it doesn't have sewer and water, but you might end up with nine distinct areas on the city, each one is its own neighborhood. And most of it is really within the zoning. There's a description of the character of the neighborhood.  So that's where a lot of the neighborhoods, there may be three or four very similar neighborhoods, but they're not connected. So, right. Okay. We'll see how I tackle that this is this is an example of what these map buttons can do. So this is pulling in different census data in the background here. So I believe these are probably their version of census blocks or. I'm not actually sure what the differentiator here is. But you can click on these. I don't know why it's not showing the actual number of population sometimes you can do that. It should give a little, oh, here we go. Legend household income. So this is the sort of thing that we can do with whatever information's in the background of the land use. You can organize it and these can jump to they don't have this capability right now, but these buttons can jump to different Extents of the map and zoom in and zoom out. So people can can explore it on their own. So you won't really belabor these examples but just to show how other people have used it. They're, people are using a lot of photos for, you know, official city and county purposes so now I'm kind of questioning my, my take on the accessibility egg I know it's, it's not interpreted the same way if you just What you would just do is add a little sentence caption to each of these like maps showing population employment concentration but you know it's not as You know it doesn't have the same visual. It'll still be better than what we've got right now I mean, whether you're looking at a PDF map or whether you're looking at a hard copy plan. There's, you know, we don't make, you know, we don't make our hard copy plans with, you know, Braille. Right. I mean, whatever we're doing now on the digital is has got to be an improvement over what we currently are doing and obviously we'll strive to be as fully as close to fully accessible as we can get but at the same time. We'll see where, where we end up from a legal and Right. reasonable standpoint. Okay. Yeah, because I really I think these like our important map graphics and you know it opens up some new possibilities if you know as you can pull in these charts and tables that you, you can't put in otherwise. So anyway, so those are those two I can I'm happy to sign along those links as well those are just publicly available. If people want to explore those these examples more. Or say like I definitely want like I really like that they did this I really want that to be in our plan that's really helpful as well. You know I'll throw those in the chat and then email them to Mike as well. Any thoughts. Sean and Aaron have no thoughts. I don't know anything I'm just learning. This is fascinating. I think simple is good. I think you know static maps are also great with the descriptions. I think we need to just tell people what we're trying to tell them and not like expect people to try to figure it out. And like this Toronto one I think. I think that that where people can explore like the different demographics while like conceptually is cool I don't think the execution is great. I think it's hard to understand what's happening here and you click through and you just see these core plus maps that are just different shades of green and you're like, I don't know what this is telling me, which is kind of neat if you want to dive in and you're missing the so what you have to do that yourself and I think part of the purpose of a comp plan is to do some of the analysis and come up with the so what of like. Yeah, whatever the so what is like we have a lot of neighborhoods with large kid populations or large immigrant populations or whatever it is. And so do you have a strategy or a goal around any of these differences that you're noticing. Great. I think that's where I think the interactive part school but like, I think, doing enough of the analysis of like these are the five ways we want to slice it and show, and then have your so what around those slices. But I can tell you generally that a major priority for this planning commission and for the city and just for Vermont as a state is to allow and develop more housing development. So I think if we are going to focus or dive into a particular issue with with like map data to support it like you're saying that housing is an obvious one for us to have that kind of support around. This this plans, more ambitious than previous plans as far as housing goes and a lot of our work recently has been to try to have the city be more ambitious about helping being housing friendly. So, and it's a, it's kind of the topic of the moment. It's one of the main topics in the state. I think following up on Gabby and john's comments.  And it's like, well, we guess we should talk about what the population is and, you know, it's well, we're trying to really get away from that really just try to get and focus on the issues and what's important. So, yeah, that that's so what pieces really what's important we didn't intentionally want to fill the entire plan full of data and information it really is. So what's important here's some data that's important to that here's a map that shows that. And, and here's what we're going to do about it that's what's most important is educating the public on what are the issues, educating them on what we're going to be doing about it and trying to leave a lot of the, you know, you know, john and I would spend all day drilling into those those data maps, but I don't think that's useful for the public. Right. We're telling a story here and if it's not helping to tell the story then it's, then it's hurting because it's, it's just complicating it. But yeah this, this graphic here is a helpful one there, you know helping people. Thank you. It's like the whole thing. Do you have granular enough land use data for every building so you know what it is like single family home duplex multi family. I'd have to see what we can feel out of the probably, you know I'm thinking the assessor cards and whether it's as a separate block in in the numeric data or not. It's like residential is broken down by category, but it's up to the local assessor to to fill that out. Sometimes it's in a descriptor in the end that'll say like to to DW plus and it makes it difficult to then grab that and, and recode that now if they were consistent throughout the entire thing and we can. You know if they always said, yeah, who DW and later on they say D, you know, dpx, then you're like well now we've got duplex and two dwelling units it's like that's not going to work for us we really need to have it if it's always going to say to do it says to do. I mean that might be a whole other project but if you had that data you can build some really powerful maps to like show what you actually have versus what it's zoned for. We do have some course we have some course data that we did that we might be able to use as we develop the zoning we went through and took each neighborhood. And that was how the neighborhoods came out was breaking them into various pieces and then calculating what is the 90 percentile for density. So that way you'd know that's why this is zoned res 6000 is because the 90 percentile dense density was 5,980. And we just rounded that up and so we have that for each of the neighborhoods we wrote down what was the density of each unit and found it. Okay, so that might be a good starting point we might have some course data but not specific down to what is this what how many units are in this building know how many dwelling units are in this neighborhood yes. Got it. Okay, okay so Mike I will work with Zach to get RPC data. Is he the right person. On my list I'm actually going to be trying to meet with the RPC tomorrow on something different. And I'm going to find out who the new GIS person is that's over there because as I said they they've. I knew the three previous ones and they're all now off to new job so I've got to figure out who's their newest GIS person unless John knows it's Brian right. It is Brian okay. I have not met him and I will try to introduce myself tomorrow. Awesome. Okay, and then I have smaller notes to just about you know, integrating that data trying to look at a couple ways to incorporate the goals, aspirations and strategies. We will at least do the data request and the outline, just again a word document of the other chapters, but I'll sort of hold tight to making any big website updates until some other information filters in. And that should give some other planning commission members time to look at the website look at those examples and give that overall sort of structural and content feedback. So we can set up a time for you to kind of show us the back end of your spreadsheet so we can start thinking about how that might end to the story map that'd be good. So what's our next, and what's our next goal date for meeting with this group and see I think I had something in a second and fourth Monday or correct. Okay, I don't have anything at least on my project plan until December. We could do the, probably the 25th seems a little soon unless you would like us to come give a brief version of this presentation for the other planning commission members. That could work. But, or the 24, I guess it would be. That seems to 24th of October. Yep. I think that seems to sand. So then we're into the 14th of November or the 28th of November. What would be what would we be talking about at that meeting. We wouldn't be having. Like, I think we, I think we need to do more behind the scenes. So if we're ready to come back to the group. Yeah, I mean, I think the 14th could be. Okay, doable. Yeah. Okay. That seems right before the holidays. Yeah, after the 14th you get Thanksgiving and then. Yeah, I feel like meetings get canceled all the time in that timeframe. And I had also highlighted the, the 12th December 12th as a potential as well so just if that, if there's any like agenda needs of potentially attending that one, but we can make that decision on the 14th. Yeah, so we'll be available to help. Obviously, this is a huge priority for us. So whatever you think you need, you can drop in and ask for feedback. Time may be tighter future meetings, maybe only 30 or 45 minutes available. But I think we're flexible about that. Well, thank you all so much for your feedback and willingness to explore those different options with us. Thanks so much for coming. We're excited. We're glad that a secret is working on this for us. I think we're going to like it. These are really fun projects for us so we're, we like this kind of thing. I guess it's like a fun creative project. I'd like to do that. Sounds fun. It's like good job. Good for you. Hiring. I feel like every planning agency in town in Vermont is hiring planners right now. It's so funny. It's like people are just. Yeah, we need it really. You need planning help. Hey, well, I don't think we have anything else. This isn't an official meeting John. We probably know. So I think we can just call it a night unless anyone has anything else. And if we get, if we leave now, then Mike will come back and everyone will be gone. Anybody have anything else for Gabby or Aiden. For John and Aaron, just to help you guys catch up that this is Jake. He's the intern helping work on the plan with Mike. By the way. Good to meet you, Jake. I was wondering who you were for the last hour and a half. And thanks for the presentations really helpful. I like I said, I, this is not my area of expertise. So it was really interesting to see your ideas as we move forward. So looking forward to working with you guys. Thanks. So your area of expertise is your home community. So where we can help you display the information and make it visually appealing and easy to understand and you make sure that we're actually depicting the right information.  Well, I will be in touch with some of those links to get over to Mike and hopefully we can get that GIS data. All sorted, but thank you all so much for your time this evening. Mike, I'll see you next week at the Northern New England planners conference. Yeah.


Welcome back to Tennis Talk, my name's Cam Williams and world number one Ash Bhatti has pulled out of both Indian Wells and Miami That is coming up in the next couple of weeks. Of course Bhatti is the defending champion of Miami So it's gonna be interesting to see how many points she actually loses Let's go over read the statement that she bought out of the reasons why she's not playing these events This is what Bhatti had to say in a statement. Unfortunately, my body has not recovered the way I'd hoped after the Australian Open and I have not been able to adequately prepare for Indian Wells and Miami I don't believe I am at the level necessary to win these events and as a result I have decided to withdraw from both tournaments I love these events and I am sad not to be there competing but getting my body right must be my focus My aim is to represent my country at the upcoming Billy Jean King Cup event in April after missing the BJK cup last year I can't wait to wear the green and gold again. So you have it Ash Bhatti out of Indian Wells and Miami We're not going to see her until April and we're not going to see her back on tour until the clay court season In April where she has a fair bit of points to defend not too many points at the French Open But a lot of points at the lead in tournaments Madrid Stuttgart those big events She's a lot of points to defend there and it's going to be sad not to see her at Indian Wells and Miami defending champion of Miami And I think she would have played very well at Indian Wells because it's a slower hard court She doesn't mind playing on the slower courts as we saw at the French Open a few years ago Let me know down in the comments below Who are the favorites for these events now because I think no doubt about it Ash Bhatti is the best player in the world You take her out of it. Who's the favorite now? Who is the favorite at these two events that are happening in March in the next couple of weeks?


And girls basketball section 8A is being led this year by Steven Argyle, who have started out the season 20 and 0. But right on their tails, the Red Lake Lady Warriors ranked 19th in the state. And Castellate Bina, who took a nine game winning streak, into tonight's matchup between those two teams. Red Lake won the first matchup by 16, looking for the sweep. In the first half, Lady Warriors up four. Elana McClain rifles one to Jerica Kingberg. They go up 31-25. Time-winding down the first, Michelle Jordan lines up the tray, beats the buzzer. It's a five point ball game. But the halftime speech worked for Red Lake. Autumn Holthuisen at the top of the key. She had 20 on the night. She dished them out two, down low to Kingberg, gets the reverse to fall. Angel McClain let all scores with 22 as Red Lake gets the win. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.


I'm going to be talking about a new programming language that I've been working on. It's called Unison, and it's a really big, big project, a lot of new stuff in it, and so I'm just going to be focusing on one small piece of it, which I'm very excited about, which is its support for building very large-scale distributed systems in hopefully very little code. So just to motivate things a little bit, this slide is very much motivated by my, or inspired by my daughter, Ariana, this is her, her brother on the right there, and yeah, programming is awesome, right? It's fun, it's interesting, and I guess when I think about the times that I am, that I most enjoy programming, it's when I'm able to focus on the essence of the problem, the essence of the code. So the core data structures, the algorithms, the business logic, the stuff that I'd actually be excited to tell a fellow programmer buddy over lunch or something. And programming, it's certainly some of that, but it's not all that, right? There's a certain amount of kind of boring or tedious stuff we have to do, maybe stuff that feels needlessly complicated, and I don't know how many people sort of feel this way, but maybe sometimes it even feels like that's the majority of what you have to spend your time doing as a programmer. And so, yeah, I really wanted to try to do something about that for a while, and that's kind of why I started working on Unison. So I think that a lot of the sort of boring stuff we have to do as programmers, it has sort of a root cause, which is that our current model of what programming is is being sort of crammed into this tiny little box. And I'm going to explain what I mean by that. So I'll start by making what I think is a somewhat troubling observation, which is that what we currently think of as a program is actually just a description of what a single operating system process should do, right, in the sense that you run your program and what happens? An operating system process starts up. And while it's certainly true that that OS process can communicate with other processes, there's a certain amount of friction in doing that, right? You generally need to work out some sort of protocol that these processes are going to use to communicate. Maybe you're even parsing and serializing JSON and issuing HTTP requests. You're doing stuff that's not very interesting, and it feels sort of ancillary to the real thing that you're actually working on. And so, yeah, I guess if you sort of look back at the sort of history of computing, there have been various times where we've needed to expand our concept of what a program is. So sort of used to be, you know, in the early days of computing. By the way, I don't know if Joe's in the audience, but Joe's talk yesterday was great. But yeah, in the early days of computing, you know, a program was just a description of a single sequential thread of control, right? And that worked pretty well for a while until computers started getting more and more powerful and we started building these multi-tasking operating systems so we could kind of better take advantage of all that power. So with that, we got this notion of the operating system process. And you know, we were sort of writing programs with that sort of model of what a program was for a while, and it worked pretty well, kind of up through, I would say, kind of the era of shrink wrap software, right?  You would stamp that on CDs and ship it, and you were just printing money at that point, right? Okay, but things have changed in the last 20 years or so. So now we're in the age of the internet, and I love this cheesy clip art, by the way, particularly that middle image there is really great. But so, yeah, now we're in this age of the internet, we're building these larger and larger software systems, and it is increasingly the case, I would say, that what a single operating system process is doing is like this tiny percentage of what we actually need to be able to specify to build a large-scale system. So we need to be able to talk about all these other things. We need to talk about provisioning of computing resources, deployment, orchestration, scaling, you know, failover, all these other concepts that our languages aren't really the best at talking about. And so I would say we kind of have this gap. It's the gap between what our programming languages can talk about and specify well and the set of things that we actually need to specify to build a large system. And so we've kind of been filling that gap with all these different, I would say, special purpose technologies. So, yes, we need to sort of fill that gap somehow. But I would say the way to do it isn't necessarily with special purpose technologies like this, which are, they're kind of like machines or appliances. They solve sort of one problem well, but they're not a general purpose tool. They don't have the same power that a real programming languages have, where you can, you know, a real programming language, you can abstract over things, you can compose things however you want, you can factor the code in lots of different ways. And so we see this proliferation of technologies and things that you have to think about. And they're sort of always going to be insufficient, because we're always going to come up with some new use case that isn't covered by these existing sort of special purpose tools. And it also just, I don't know, personally, it makes me very unhappy to have to think about, you know, you might have to think about 15, some very large number of these different technologies that you have to pull together to assemble a large system. And, you know, I don't like having to think about that many things when I'm programming. Okay, so I think a better model is rather than sort of filling that gap with special purpose tools, I want to simply expand our concept of what a program is, so that it can talk directly about things like provisioning, deployment, orchestration, large multi-node computations. I want to just be able to describe all that with a single program. And that's sort of where Unison comes in. And that's what Unison is attempting to do. So for the rest of this talk, I'm going to sort of introduce Unison. I'm going to work up to the code for a search engine in Unison. It's going to be very little code. And so we'll sort of get to see, you know, what it's like programming in a language that can talk about all these other concerns that we currently have to specify sort of in other ways. And then after that, I'll talk a little bit about sort of how this is all done, like in the Unison runtime. Okay, so just as a quick intro here. So Unison is a statically typed purely functional programming language. I would say it's probably most similar to Haskell, if you've heard of that language. Just to, oh, but it has sort of this magic power. And that magic power is we can transport an arbitrary Unison value to another Unison node. And I'll show you how that works. So just some basic syntax here. So you apply a function to some arguments. We just list the function name and then the arguments separated by spaces. That's that first example there. And then type signatures look a little bit different than you might be used to. This is the type signature for a sort function. So it takes an ordering of A, a vector of A, and it returns a vector of A. So we just have the arguments and the results separated by these arrows here. Okay, so let's look at our first function definition. This is the factorial function. And it's this function that is doing a couple things. First we take the numbers from 1 to n. And then we're just going to multiply them all together with this fold left. And we could leave off the type signature. We don't need to say that it's a function from number to number. Unison is inferred, so that would be figured out for us if we didn't supply it. Okay, so we can evaluate factorial sort of locally on our current node. Or we could evaluate factorial at another node. So here's kind of how that works. So now our factorial function is taking a node, which we'll call Alice. And you can see in the body of the function we're starting this remote, I'll call it a remote block. And in the remote block, the first thing that we do is we transfer control of the computation to the Alice node. And so now the rest of the computation is going to happen on Alice. And the first thing we do on Alice is we're just going to evaluate this pure operation of factorial then. And what will actually happen at runtime is potentially the definition of factorial will be synced to Alice's node if she doesn't already have it locally. But yeah, so this is, and then one more thing is you'll note the return type of this function is now a remote number. It's not just a number. So that's sort of signifying that this is a function that may, whose evaluation may happen on multiple unison nodes. Okay, so let's keep going. So most interesting applications have some sort of persistent state that they need to manage, right? And so currently unison has one built in type. It's just a local persistent key value store, which is called index. And here's a subset of its API. We can do three things. We can create an empty index. We can insert a key value pair into the index and we can look up a key in the index and get back an optional value. And these key and value types can be anything at all. We don't need to specify a serialization format or how we're going to translate it to the database, anything like that. And then just a couple of new things. Unit is, it's just sort of like void. There's only one value of that type, also called unit. And then optional, we use that if we may or may not be returning a value successfully. There's two cases, it could be some or it could be none. Okay, so here's an example of using index. So we, again, we have a remote block. First thing we're gonna do in our remote block, we're gonna transfer control of the computation to Alice. Now we're on the Alice node. Alice is going to create the empty index and she's gonna insert a couple key value pairs into the index. Then we transfer control of the computation back to Bob. And then Bob is actually gonna do a lookup in that index that Alice created. So these index values are serializable and they can be transported to other nodes just like anything else. And so that lookup that Bob does will actually be contacting Alice's node because that's where the index is actually stored. It's in Alice's local storage. So these index values, they're not like sort of global distributed mutable state. They're sort of owned by a particular node that created them. All right, so far some like pretty simple, I hope, primitives here and nothing too complicated, at least at the sort of API level. But we have kind of most of what we need to actually build a search engine in about 15 lines of code, at least the core of the search engine. So before we sort of get to the actual unison code, let's take a step back. What's the actual data structures and algorithms we're gonna be using for our search engine? So really simple search engine, you have some sort of search index. You have a mapping from a search keyword to a set of URLs which contain that keyword, right?  And same thing for these other keywords. We could have a more flexible notion of what a keyword is. It could be a bi-gram or a trigram or some processed form of keywords. But we're just gonna ignore that for now. Okay, so to do a search in this index, it's pretty simple. We say we're doing a search for unison programming. So there's two keywords in our query. So what we do is we look up in our index, we look up for what's the set of URLs that contain programming? What's the set of URLs that contain unison? And then we're gonna just take those two sets and intersect them, all right? Simple, so let's look at the unison code. There's gonna be a few new things here, so I'm gonna walk through it. So don't be alarmed if there's anything that you don't quite understand yet. So this is the advertised 15 lines of code here. So let's just sort of get oriented. Let's look at our type. So our search function, it takes a number of search results that we wanna return. So we might not want the whole set, we might want just the top ten. It takes a query in the form of a vector of keywords, and it takes a search index, and then it returns a vector of URLs. Okay, what's search index? So search index is this dindex type, which I'm gonna explain in a minute. But the first thing we do in the implementation here is we're gonna loop through our query, and for each keyword in the query, we're gonna look up the set of URLs for that keyword. Now we have a list of these sets of URLs, and we're gonna intersect them. I guess before we do that, any keyword that is sort of not found in the index, we're gonna map that to the empty set. Once we've done that, we're gonna take all these sets, we're gonna intersect them. And we're only interested in the top ten or whatever it is. So we're going to take the first limit of that set of URLs. So there's a couple of new things. So one is this index traversal.intersect business. So we're actually a little bit smart about how we're doing these set intersections. We're doing the minimum amount of work necessary to just generate, say, the first ten results. So we're kind of like lazily producing that result set, rather than sort of fully instantiating these massive intermediate sets. That's just like a little generic library. It was about 70 lines of unison code. Nothing to do with search engines, really. You could use it for lots of other stuff, too. Okay, the other thing that's used here that's new is this dindex type, which is a distributed version of that key value store type that I showed a little bit earlier. And I'm gonna kind of dive into that a little bit. So we're sort of used to thinking of distributed data structures, algorithms as like these very complicated things that require mountains and mountains of code, right? And I feel like that's not necessarily true. I think when you have a language where it's very nice and pleasant to do this distributed communication, you're sort of able to focus on the essence of the data structure and the algorithm. And yeah, distributed data structures and algorithms, they work differently than they're sort of single machine counterparts. But that's fine. I mean, they're not necessarily extremely complicated. So for our distributed key value store, it's based on this very simple idea, which is that we're gonna have a directory of nodes. And each node in the distributed key value store has its own local storage. Okay? And so nodes are allowed to enter and leave the cluster that's backing the D index. And so, but we sort of have this question of if we have a key, say Alice, and we have a cluster node one, node two, node three. How do we know what nodes to, or nodes to contact to do a lookup or an insert, right? We don't wanna have to contact every node in the cluster cuz the cluster might be huge. So there's a very simple approach that is used sometimes. It's called rendezvous hashing or highest random weight hashing. And the idea is this, we're gonna just compute a hash of the pair. Node one Alice, a hash of the pair node two Alice, and so forth for each of our nodes. And we're simply gonna pick the node or nodes whose hash value is highest. And those are gonna be the nodes that we consider responsible for the key Alice, okay? So it's really just a random uniform way of partitioning our key space up among the available nodes. And so here's sort of the core part of the unison code where we're picking the nodes for a key. The important part here is we're calling that hash function on a pair of a node and a key. And we're sorting by that hash. And then we're taking the top K. So you might have some replication factor for your distributed key value store. So if one node goes down, you don't lose any data. But okay, so it's pretty simple and dindex is again, it's totally generic, has nothing to do with search engines specifically. It's just a generic distributed data structure. And I think the implementation is around 100 lines of pure unison code. So yeah, I like this. It's like simple and I don't know. I feel like I'm able to focus on stuff that's important about what I'm trying to do. So I haven't talked about creating nodes yet. So okay, we've got this great, this nice distributed data structure. We've got our search engine, our search lookup algorithm. So now we just need a massive cluster of unison nodes to sort of deploy it all to, right? So there's a primitive, it's called remote.spawn. And it returns a remote node. And here's an example of how it's being used. So we spawn a node, then we transfer control of the computation to that node. And then we're gonna do some other stuff. And that other stuff that we're doing, that's gonna now happen on the node that we just spawned. You might ask, well, okay, we spawned a node. But where exactly did we spawn that node, right? And that is actually, it's left deliberately somewhat underspecified. So it might be literally on the same machine as sort of the originating node. Or it might be just in the same data center. Or it might be sort of just in the same data center region. All those might be fine choices. But let me just show kind of an example of how we might use this to provision and deploy our search engine. So we have a node, imagine we have a node for each of the computing regions where we might wanna spawn new sort of computing resources. So we have a node for US East, a node for EU Central. We could have a node for EU West, etc. And you can see, here's an example of how this could be used. We create an empty dindex. Then we're going to spawn a bunch of nodes off of the US East node. We're basically gonna be provisioning nodes from the US East region with this unison code. And we're gonna do that 10,000 times. So we're gonna get back this list of 10,000 nodes. And for each one of those nodes, we're just gonna loop through it and have it join the dindex or the cluster that's backing the dindex. So yeah, what are we doing here? We're provisioning new computing resources. We're deploying code to those nodes that we've provisioned. And we're doing all that with just sort of ordinary unison code. So we're not calling out to all these special purpose tools. We're just writing regular code. Any sort of patterns we notice while we're writing this code. We could factor them out into generic functions and reuse them. And this is the kind of thing that at least I want to be writing. I don't want to have to deal with all these other tools when I'm building a large system. Okay, so I'm gonna post sort of all the code including these generic utilities I wrote very soon on the unison blog, along with some sort of demo of the search engine actually running. But yeah, I want to talk a little bit about how this is all done. Cuz maybe it just seems like it's just too magical, like this can't possibly work, right? So let's go back to our very simple example of factorial. Evaluating factorial at another node. So we kind of have this question, right? If we're gonna evaluate the factorial function at Alice, how exactly do we tell Alice about factorial? So we could just send her the name, factorial, right? But then that's maybe a little too fragile. Cuz how do we know that the meaning that Alice has assigned to factorial is the same as the meaning that we've assigned to it? She could have a completely different code base with different set of libraries, right? So that's kind of not, it's too fragile, not very scalable. So the unison solution is we're going to identify things not by their name, but by a cryptographic hash of their content. So, and it's actually a nameless, what I call a nameless hash of the content. So it actually doesn't matter whether we call the function factorial or whether we call it blah. It doesn't matter whether we call the parameter z or whether we call it n. It's the same function, right? And it's gonna have the same hash, let's suppose that is q82 something. So what we're actually sending to Alice when we send her that expression, factorial of n is not the name factorial applied to n. We're actually sending her that hash, the hash of the specific factorial function that we're asking her to evaluate. And you can maybe see how this sort of solves the problem of, how do we transport an arbitrary value, including possibly a function to another node, is Alice can just check her code store. She can see, I already have that hash, great. It's gonna be the same function, so I can just proceed with evaluation. Or if she doesn't have that hash, she can ask the sender, hey, I don't have that hash, can you send it to me? The sender sends her a value, she verifies the hash, adds it to her code store. It's cash for next time. So this works really well, it's very robust. It almost feels like cheating. I mean, I think it's a great idea and it's vastly simplified a lot of aspects of Unison's runtime. It's in its implementation. But it does have some very interesting consequences, which I'll just sort of give you a sample of. Which these could almost be another talk in and of itself. But so what it does is it changes our model of what a code base is. So we're used to thinking of a code base just like this bag of text files, right? And you just modify those text files. That's how you edit and evolve your code base. But in Unison, you don't really modify anything. So if we take our factorial function, and we modify, quote unquote modify it. So yeah, and remember, say it has that hash q82. If we now modify that to factorial then equals 43. Well, now this is actually, we haven't really modified anything. We've simply introduced a new definition that has a completely different hash. Zz, zz, z. And all of the references to factorial, they're referring to it by hash as well. So they're not like automatically updated to point to that new hash. And we probably wouldn't even want to do that anyway because it's not really safe. This sort of raises a lot of questions about sort of the overall programmer, you know, user experience when you're developing code. Like how do you do things like refactoring? Yeah, how do you do things like dependency man? So it's like all these calls into question and like sort of the basic workflow that we have as programmers. But it turns out that there's a lot of really big benefits beyond just the distributed programming stuff. There's a lot of big benefits to representing the code base as an immutable data structure. So just to at least give a preview, there's much better, you can have much better support for large scale refactoring than we have right now. You can have much better support for dependency management. And so you sort of have all these benefits that kind of come with that. And I'd love to talk more about it. But if you do want to read more, there's a lot more on the Unison blog. So unisonweb.org, it's mostly a technical blog. There's design posts, there's status updates. And definitely encourage you to follow along if this sounds interesting at all. And lastly, just want to thank, first of all, the full stack fest for putting on an awesome conference. Yay. And also just a number of people have been helping with Unison, either with actually contributing code or just kind of consulting, advice, ideas, and so thanks to all the folks who've been helping. One last thing, Unison is of course open source. It's being very actively developed, so things are changing very, very rapidly and definitely fall along if you want to sort of see where it's going. All right, that's all I got, thank you. Which advantages does Unison provide over the distributed currency model of Erlang? Yeah, I was expecting somebody to ask this very question. So yeah, I mean, so Erlang is great and I think it's taught us a lot about how to build distributed systems. I think the thing that's kind of missing from Erlang is, so in Erlang, when you still have to work out some sort of protocol when you have two Erlang processes communicating, right? So you can't just send an arbitrary, well, you can't safely send an arbitrary function, for instance, to another Erlang process. Because you don't know whether that recipient is going to have sort of all the transitive dependencies of that function that you're sending. So I guess I'm not really an Erlang programmer, but I guess it's even somewhat frowned upon to just be sending arbitrary functions around between processes. So yeah, you still have to kind of work out some sort of communication protocol and it's definitely a lot sort of lighter weight and nicer than maybe issuing HTTP requests sort of manually and doing like JSON parsing and so forth. But yeah, I guess I feel like it sort of doesn't quite go far enough. And then there's sort of one other thing, which is maybe more subtle, which is that I personally feel like message passing at the level of actors or processes, it's sort of, it's kind of a level, it's maybe too low level, it's not really the level at which I want to program. And you can maybe sort of compare it a little bit to the unison code you saw where, well, yes, we are having to send messages between these nodes to implement our distributed programming API, but it's sort of like, it's sort of below the level of abstraction at which we're working. Like it's sort of like implementation detail. Yeah, there's messages flying all over the place, but yeah, I just want to sort of declaratively specify, hey, I want this part of the computation to happen at this node, and then I want it to move to this other node, and so I just sort of like that model better. But yeah, Erlang is great, and if Joe's here, I hope he's not too offended by my talk. All right. I feel like you and Sasha from who was speaking yesterday around Erlang and Alexa should have a conversation in the bar, in the beach bar tonight, and anyone that's interested should sit around and see who wins. Okay. Okay, so another question is, can you give an example of a production system that uses unison? Oh, no, so. Are these the guinea pigs? So yeah, I mean, it's like I said, it's being very actively developed. It's not ready for production use yet. But so it's this crazy, it started as this crazy experimental project, and I was doing a lot of exploring of different ideas. I wasn't sure which ones were going to work out, and I kind of wanted to get the ideas to a point where I felt good about them before really sort of putting all the engineering effort into making it like a production usable system. But yeah, now I actually do feel like the ideas are really solid, and I'm looking forward to sort of putting all that engineering effort in to make it something you could actually really do real stuff with. All right, well, your final question is, and you might have kind of answered it a little bit earlier, is unison inspired by Erlang, all the Cloud Haskell project, and how would you compare them? Yeah, I mean, I think to some degree, yeah, I've been definitely influenced by lots of different languages. I guess Cloud Haskell is very much, it's very much inspired by Erlang's concurrency and distributed system support. So yeah, I sort of put those in a similar bucket. But yeah, I mean, definitely some inspiration from those places. So yeah, I know, it's kind of a vague answer. It's a big question. Okay, well, if unison becomes the programming language of the future for distributed systems, you heard it here first. Round of applause for Paul Cisano. Thank you very much. Thank you.