Hi. My name is Paul Gansel. Today I'm going to talk about Python DateUtil. It's a library for dealing with dates and times and that sort of thing. Everyone knows that it's super fun to deal with. It's not a dry and boring subject, so strap yourselves in. It's going to be a mile-a-minute ride. There's something that I got involved in, maybe like a year and a half ago, and I've been the primary maintainer. Surprisingly, a lot of these libraries like this have very little attention paid to them, so if you want to do some really fun work, you can stop by DateUtil or other libraries like that. I'm going to format this kind of an overview tutorial on how to use a library. The five basic modules are relative delta, which is for handling calendar offsets. It's just about meaningful ways to reduce some of the ambiguity around telling how long it is between two dates. Our rule is an implementation of the iCalendar spec for recurrence rules, so that's if you want to generate a series of dates based on some rules of increasing complexity. Then TZ module, we provide a whole bunch of different TZ info subclasses, so however you want to generate your time zone information, hopefully we'll be able to parse it. Then the parser, which is the sort of automagical function where you give it a string that looks like a date and it gives you a date. I'm not going to go too much into that, but I will try and point out some pitfalls. Then there's the Easter module. I'm not going to talk about that beyond this because I can explain what it does in about two seconds. It tells you when Easter is. We'll start with the relative delta.  I'll give some examples, but one month from now, what does that mean? 30 days? 30.14 days? Who knows? There's two ways to construct these. One is just like a time delta, you can just give it the raw inputs, all the components of the relative delta. The other is as a difference between two dates. Just like you can take two date times and subtract them together, time delta, you can pass two date times to relative delta to generate relative delta to the relative distance. When constructing the relative delta, there's two broad categories of arguments. There's the absolute arguments. These are all the ones that have singular. They're singular, they're not ending in an s, basically, an s, basically. These are basically equivalent to calling the replace method on a date time. When you add or subtract your relative delta to slash from a date time, the first thing it will do is it will take each one of these components from the date time and replace it with its equivalent on the relative delta specified. For example, this is a relative delta, this is a relative delta that if you add it to or subtract it from a date time, it gives you the same date and time but in 2015. I just specified the year. This one is one where I only specified the time aspects of this. If I add this to any given date, no matter what the time section of it is, it's going to give me 12.15 on that date. Common thing I guess. The other type of arguments that you're going to get are relative arguments. These are the ones that are pluralized. These are basically offsets from the date time. One thing is that if you want something that's one month away, this is going to give you one calendar month. It's going to try and give you the same date but one month now. If that date doesn't exist, for example, if we're here, we go one year from 2016, January 29th, and one month, that's going to try and give us February 29th. It's just going to fall back to February 28th. This is the kind of thing that this is useful for so that you don't have to add your own logic about handling leap years or the ragged ends of months. One thing to note is that with this, the normal addition, subtraction, multiplication, multiplication rules apply. If you subtract 15 days, that's going to give you 15 days to go. It's not going to just always add to it. A special type of the relative argument, you could argue that it's relative or absolute, is these weekdays. What these tell you is if you want a date that matches a specific day of the week. This first one I can construct is something that you add it to something and it gives you the Sunday following the date that you add it to. Here, I just generated three. One of them, or two, these last two, they're in the same week. The first one you add it, it's already Sunday. It gives you that Sunday. You add it to three days later. It gives you the eighth. You add it to three days after that. It's still not the eighth, so it gives you the eighth. We can also pass an argument to these dates, the weekdays, that says an additional offset. An additional offset. This is saying, give me not next Wednesday, but the Wednesday after next. You can see it works essentially the same way. The other thing that makes this particularly fancy is that you can add these all together to get some very specific rules about what the next date is supposed to be. Here, this is just some very simple logic that says, if I'm given a date, I want to jump to the beginning of the next month. That adds one month. Remember, we're always going to be in the same month. Then it's going to reset the absolute argument of days to one. No matter what month you are, it gives you the first of the month. Then this guy, this is going to say it's going to add one year and then it's going to reset to February 1st. Then it's going to go for the third Monday after that date. That's going to give you the third Monday in February, which is Martin Luther King Day. This is an object that if you add it to a date time, it gives you the Martin Luther King Day for the next year. If I multiply that by a number, it's really only going to multiply the relative components. Since the only real relative component that's multiplicative is the year component, I can just do this and I can generate the Martin Luther King Day for the next three years. That's not actually probably the most efficient way to generate Martin Luther King Day dates, because we have this thing called an R rule, which is an RFC called the iCalendar specification. It's kind of confusing. I think it was from Microsoft. I don't know what the name confusion is like with Apple's products there. This is for generating recurrences with some potentially complex interval. For example, one thing you could do with this is if you want to know all of Pat Merida, the actor from Happy Days ran the diner. If you want to know all the times that his birthday fell on a Monday, you can do that. If you want to get the subset of those that happened during the Vietnam War, you can get that he had two of them. It was 1965 and 1971. R rules were originally invented to generate Happy Days trivia, but it turns out that they are useful for other things. The basic components of an R rule is the start date. That's what the basis of the rule is. The start date may or may not be part of the rule. It may be excluded from the rule depending on what the other things are. Freak or frequency is technically not the frequency of it. It's really more the units of the fundamental frequency, but it is the mental frequency. This is sort of like does the rule apply on a yearly basis or monthly basis or what? Then the interval, which is actually the frequency, but it's implicitly one. That is how many periods of the fundamental frequency do you wait before you create a new recurrence? I forgot to re-order this. Well, no matter. Here's an example. The first rule is an hourly rule with interval one. It starts at 9 a.m. You can see I generate that. I ask for the first three of them. I'll go into this counting a little bit later. It's going to give me 9, 10, 11. If I replace the interval here, I set it from, instead of saying it to 1, I set it to 2. Starting at 9, it's going to give me 9, 11, 13. 13 is one o'clock. If I start at a different start time, obviously it's going to go 10, 11, 12. That's fairly straightforward, but the real interesting parts of the recurrence rules come about when you start using these by-rules. These modify the frequency in some way. They have their own set of frequencies by month, month day, etc. The way they work is if the by-rule is of a frequency that is greater or equal to the fundamental frequency, then it's constrained. For the example here, I'm going to say generate a rule that's daily, but by month, November, by weekday, Tuesday. This is going to filter out anything that's not a Tuesday in November. If I start it in 2015, the first date it's going to give me is in November. It'll give me 4 November, 4 November, and then it'll give me 2016's first November. For by-rules that are less than a fundamental frequency, that is more a, I don't know what you call it, a sideband or something. It increases the frequency. If I have a monthly rule and I apply it by month day, I apply it by month day in multiple days in a month, this is going to give me every occurrence of these month days within each month. Here I'm going to say, this says every month I want the first, 15th, and 30th, 15th, and 30th of the month. You see I started after the 15th. Even though I started on the 16th, that DT start is not in the rule because it doesn't match, but it's going to give me, it gives me the first 30th, then move into February, then move into February. There's no 30th in February. When it hits that, the RFC says you drop it. It skips dates that don't exist. You can see, and it will just continue on this way. It'll give you first, 15th, and 30th of all the rest of the months. If you don't limit these rules in any way, they'll just be generated infinitely, or until Python can no longer represent the dates. Obviously, they're generated lazily. There are two ways to specify how to terminate the rule as part of the rule itself, and these are mutually exclusive just because of the RFC. It's not logically necessary for moving mutually exclusive. Here you can, the first one is count. It's pretty self-explanatory. If I give it count two, it gives me the first two occurrences. The second is until, and that stops generating occurrences when we reach that date. That is inclusive. If the until is a recurrence, it will be returned. Even if you don't have limiting information in the rule itself, you can still retrieve subsets of it using the methods on the object. For example, this is the after method. It passes a date. It gives you the next recurrence that happens after that date. There's a corresponding before method, and then there's also a between method where you give it two dates. I think this is inclusive, and it'll give you all the dates between. This is also, this is by Easter rule. This is not part of the RFC spec. This is an extension. I don't know who added it, but I think it's a date exclusive. Here, I'm just passing a by Easter of zero, and this tells me when Easter was in the 90s, because I specified I want the dates between those two. While these rules are powerful, they can't really express everything that you would want to express. When you want to get something really complicated, you would use an R rule set, which allows you to combine recurrence rules, either adding them or subtracting them, and you can also add and subtract dates. I'm just going to work through an example where we're going to generate an example where we're going to generate a fictional bus schedule. Let's imagine that the bus comes from 6 to 11. It comes on 30, comes on 37, and it comes every hour, except in the evenings it comes at, it comes every other hour. First, I'm going to generate an R rule that gives me every hour on the 37 for just the weekdays. I'm limiting this to the weekdays from 6 to 10. That's too many dates. That's too many times. There's going to be too many times. There's going to be two extras. Then what I do is I'm going to take this. I'm going to generate the same schedule, and instead of generating all of the dates, I'm going to generate all of the dates, I'm going to generate just the ones I want to drop. Then I apply that, I add that to my R rule set as an X rule.  Then my fictional bus schedule on the weekends, schedule is a little different. 8 to 8, it comes on the 7 or 8 to 7 to 7 or 7. Basically the same thing, but now I've limited it to the weekends. My fictional town that has poor bus service, they also have scheming politicians. On November 8th, which is election day, they've decided that they don't want people who take the bus to be voting.  The bus is out of service. If I want to reflect that in my code, I can generate all the dates between on that day and I'm going to add them one by one as exceptions to the rule to say if this is a recurrence, it doesn't occur. But they're not totally heartless. They're going to offer you one bus in the morning, one bus in the morning at 4.32 in the morning, and one in the evening at 7.49. The polls close at 8 so you're probably not going to be able to make it in time. These are just one off exceptions again, but in the positive direction. So now I'm just going to add both as an R date. The rule is on that date of the course. So now I have the schedule. I can take this and this and I've hidden the part of this where I turn it into a pandas data frame and arrange it like this, but now you can see this is the result of the output, the result of the output organized as a bus schedule and we've got a rule that generates a bus schedule. And that's the week of election day. This is there. This is there. Scheming schedule. Alright. So I'm going to move on to the time zones.  But I think I'm just going to give you a quick overview of the key features of time zones. You can maybe just have an understanding of a little bit of what's going on here. So the TC module provides a number of ways to construct time zones because there are a huge number of ways that people have devised to specify time zones. But the important ones are first there's UTC. So this is just an alias for UTC. No offset, no DST. It's called UTC. And this is the basic thing. If you're working with timestamps, your optimal situation would be to convert your stuff to UTC and working with UTC. It's very simple. We also provide a TC local which is just a wrapper which is just a wrapper around pythons functions that allow you to query the operating systems time zone information. So here, you know, you can see I'm on Eastern time and what if I, where is that my TC environment variable to UTC, it would give me UTC. If I set my environment variable to Pacific time, it'll give me Pacific time, it'll give me Pacific time. And that's not just the offset for today. It will give you the offset for any given day. So you specify any day. However, usually your best situation is if you know specifically what time zone you're in in terms of like the geographical and political position of the date you want to express. And the best way to do this is to use one of these IANA or they call it the Olsen database zone info files. If you have a NICS system, it ships with this automatically. Windows does not. But they will ship zone info file. But I will caution you against actively using that. It really just use the normal date you tell time zone handling logic and it will fall back if you don't have it.  Anyway, so these are very useful in a sense that they provide all the historical zone information about a given zone. So here's the New York zone. And today it's eastern daylight time. In 1944 it was eastern war time. It was eastern war time, which is just a permanent day like saving time that happened during World War II. And if I go back all the way to 1901, that was before UTC was invented. And so this happens to have information for the local mean solar time. So these are how dates were expressed in New York in 1901. So obviously that's powerful and if you can you should use it. The way you get those, don't construct them directly from the files. Use the get-to-z file. The get-to-z file is kind of the equivalent of the automatic, the equivalent of the automagical parser function, but for time zones, you pass it something that looks like a time zone and hopefully it will give you the right time zone. If you pass it nothing, it assumes you want local time. So it'll look for the best thing that looks like local time. If you pass it an old time zone, it'll give you that and it'll either pull it from your local file or from the get-to-fallback. And if you want to express some new time zone tz variable, you can do that and this will give you time zone in Australian eastern time from another one of the tz subclass that I didn't mention. One thing to note though is I did a major overhaul of how the time zone back end works for the forthcoming 2.6.0 release, which will be coming up probably next week. So if there's any chance you're going to have to represent something like an ambiguous date, like this is 1.30, 2004, October 31st, there was a daylight time transition, so there were two 1.30s there. In the old version of Datetail, there's no way to express this first date. You always get the second one. It causes a discontinuity in some systems, because even if you're started with UTC, as I'm doing here, it doesn't translate properly. But the new version will. You can also just use PyTZ. They have a slightly different way of handling their time zones, but they do handle this correctly. The final thing I'm just going to quickly go over is the parser. It doesn't require that much explanation, because it's designed not to. You can either instantiate a parser object and parse, or you can just use the default parse method. You just give this something that looks like a date, and it pulls out. It'll do its best to turn that into a date. There's some fuzziness around there where you might get the wrong date, and there's basically no transparency here about how it was generated. You can reason about it like here. You can say here. You can see it's going to try and say it once a day, month, year, but if that doesn't work, it's going to give you here. It's going to say, well, if it's not day, month, year, it must be month, day, year. Here, it can't be month, day, year. It can't be month, day, year. This guy has to be year, month, day. When should you use the parser? Only use it if you don't know the format of the date, or if you want to pull out a date that's not just a date, you can use this fuzzy keyword to just pull out a date from a string. Obviously, if this guy's name was April, that could be a problem. The other time is that the SCRP time mechanism for parsing dates where you know the format doesn't really handle time zones correctly. If you need to parse a date that has time zone information, we'll do that in many cases. Here's an example where it understands how to turn these formats into offsets. Be aware, though, this uses the POSIX format, and POSIX is completely backwards. So CST minus 8 means 8 hours ahead of U2C. UST minus UST minus 4 means 4 hours ahead of U2C. So it's bizarre. But a bear minus 0, 4, 0, 0, 4, 0, 0 does mean U2C minus 4. It's very confusing, but that is the ambiguity inherent in parsing dates. The only other thing I'll say about time zones is if you have a limited subset of time zones that it could be, like, for example, CST, ISD, these are overloaded terms, but a lot of times when you're printing things, you use the local TZ name. So if you know that you have base only coming from India and China, you can specify if it's ISD, give me this. If it's CST, give me that. Otherwise, you don't know what it is. So, all right, that's the end of the talk. Just want to give my plug for if you guys want to help out. Come on, get help out. Come on, get help. Like, you dive into issues. We could probably use help by reformatting the documentation. I've been pretty terrible about that. Also, the parser doesn't have enough transparency, and I think it could be really improved. So I'm going to be trying to solicit feedback on the parser. So if you use the parser or you want to use the parser, you know, you can get in touch, and I'm going to try and come up with a sort of mini RFC about how I'm going to change the parser. And then finally, I'm a big believer in the web of trust, especially with software and stuff. So if you guys want to cross-sign my keys that I use to sign my keys that I use to sign the library when I release it, this is my PGP key, and I have them on little slips. I can show you my ID if you want to cross-sign my key or you can show me yours. You can just sign it if it doesn't have to be cross-signed. And if you don't understand that, feel free to ask me and I'll explain that to you. So, any questions? Go ahead. Sorry. In your singular, ARBS, do you handle a negative? So can you say something like the last Thursday in a month? Yeah, those can be negative, and that is how they're interpreted, I think. But, yeah, those are more relative. They're like a hybrid. It's relative slash, you know. Okay. In other words, use it cautiously. You can play with it. Use it cautiously. You can play with it. Yeah. I mean, it's really, I think what you really do is you get the first of the next month and then you get one Sunday before that to get the last Sunday in a month. There's examples in the documentation of that. Okay.  Well, I mean, you could generate an ARB rule and then specify within 30 days or 30 days or, I'm not sure. Oh, I get it. Do the between, but then the last Friday that. Yeah. I mean, I have to think about exactly how you want to do that. Okay. Exactly how you want to do that. I mean, worst case scenario, you just generate the last two and then find out which ones are within 30 days. Within the 30 days. Okay. Thank you. Thank you. I just have two quick questions. The first, since time zone data is always changing, is there like a canonical source of time zone data out there, time zone data out there? The second, like, how does a parser work internally?  How's it work? Okay. So the first one that, that's the IANA time zone database that I mentioned. Usually you're operating, usually your operating system ships with it. And when it gets updated, which happens about 15, 16 times a year, your operating, your operating system is responsible for that. And that's why I say use get TZ instead of passing a specific file, because otherwise you have to manage those files, to manage those files. I also maintain a mirror of the database that I ship with every new release, but I don't do a release every time there's a new time zone. So, so you can build yourself, you can pull, you can pull the time zone data from my mirror and then use it directly and then use it directly. But ideally you have your own time zone data. And then the second question was, How does a parser work internally? High level. It's not, it's, it's like a legitimate parser where it tokenizes it and lexes it and then it just looks for stuff that looks like dates. But I really think the real issue with that is that it's very opaque and it's not modular and it's not modular. So that's what I'm looking for comments on is that, you know, my hope is, and I think date parser, which is another library, another library just wrote their own parser that does something very similar where they allow you to specify more like a list of possible dates. They have a slightly different aim. But anyway, we can talk about that more, but I can talk in length about that. You had a question. Have you seen the EX time library from DevMod? No. What is EX? No. What is EX time? EX time. Go take a look at it for many of the parsing and higher level APIs that you've been asking about. Okay, I'll do that. Thanks. A question about anything, a question about anything kind of got you to see more and more people about it. And there's some kind of weird edge cases that it's like a topic. Well, I mean, there's a lot of things around time zones that are very complicated, that are very complicated, like counterintuitive, like, for example, in Samoa there was no December 30, 19, 2011. It went directly from December 29th at midnight to December 31st, 31st, because they moved over from UTC minus 11 to UTC plus 14.  Also, you know, I mean, there's so many things you could say like Morocco, for example, Morocco, for example, usually you think you either have zero daily savings transitions or two. Morocco has four, but only when Ramadan occurs in the summer and only if their legislature passes a new bill every time. So this year they have four because in Ramadan, you're not allowed to eat until after sundown. So daily savings time is artificially for longing sundown in terms of civil time. So during Ramadan they push it back because everyone just, you know, goes to work at noon and then, like, it is hungry all day. It is hungry all day. So they're like, well, we don't want to do that during Ramadan. So they go daily savings back and forward, but then, you know, Ramadan drifts around during the year. So eventually they'll be, you know, there will be different overlaps, different overlaps. So, yeah, I mean, the big gotchas about time zones though are about ambiguous dates, and Piscesy handles those much better. He handles those much better for now. If you're using Piscesy though, adding or subtract, doing arithmetic on time's metric on time zone aware things is not a winning proposition. I think that you tell handles that better than Piscesy, but, you know, you know, there's an argument to be made for the fact that that might be a fool's errand because it's kind of dangerous. Like you're really supposed to either do your operations on your like additions or generate our rules on completely naive time zones or UTC. And then apply your time zones at the end. So you mentioned in the talk that if that person's birthday in the parser was April, it could potentially... Yeah, I think I saw this on a Stack Overflow blog. Basically what it does is, it's just trying to find anything that's date-related. So when you go with the fuzzy parsing, this is going to say, all right, is this date-related or not? If it is, I apply the normal rules. If it's not, I throw it away. So if this guy... If this was April Merida instead of Pat Merida, it would say April Merida. Okay, this is in April. And then it would keep going. It would find June. It'd be like, well, I already know the month is April. So let's forget this June nonsense. That's probably someone's name. And then it would give you the rest of the date. So it would parse probably as like April 28th. And if it was July 31st, then it would give you an error because it would be like, well, April 31st isn't real. The improvements to the parser, I think, will hopefully add something to that. But there's not much that can be done when it's real fuzzy like that. Yeah, because I was just thinking, if you're putting something into this parser function automatically, thematically, it could be troublesome to pre-filter it to say, oh, if the person's name is... The real issue is that the parser gets zero context. So the more context you can give it, if you can pull out sections of the date you already know and pre-parse them or whatever, and just put them in a known format if you really need to parse the rest of it, you know, that really helps. So for example, you guys probably all got a ticket that says like, admit one PyGotham. On that, it had predicted 072016, right? Now, we happen to know that it is July of 2016. So if we saw that in context, we know that that's just referring to the month of July in 2016. However, DataTill does not know anything like that. It'll know anything like that. It'll see 072016, and it'll say, oh, that must be July 20th, 2016. So, you know, that is... It's not a huge error, but it just illustrates that context is actually kind of important. And when you're parsing just... When you're trying to be automagical, it's tough, like, without context. Is that all the questions? All right. Thanks for listening to the talk.


Hello everyone. Today we're talking about the question of searching and discovering software in general in the world of computing and more specifically when it comes to the Geeks package manager. So actually a couple of years ago, so there was this guy who invented the World Wide Web in 1989 and 20 years later he gave this TED talk, which I think is quite amazing. I really recommend it in the next web and asking about the linking of data, so it's a good thing to put data there on the internet, but how do we find it and how do we query data with each other? That's a very good question. It's a very general question. I think it really applies to software as well, how we find packages and how packages relate to each other and not just packages. I'm talking about this just now. So so I think what it implies here is that today we have this package repositories, those are app stores and if you already know what you're looking for, you know this amazing software called VLC, so you look it up, you install it and it works. But what if you were looking for a concept? So how to back up my data? If you don't have the name, I mean, this is very tribal knowledge. At last, those programs are basically based on the popularity. What about the rest? I mean, what about those more exotic features? New fields for things we simply don't know. So we like to be able to discover more efficiently. There's something else as well. So I think so do you know, have you ever heard of dot files? So those little configuration files that you put in your home folder to configure your text editor, your web browser or anything. So it's all a program and typically those five configuration files are stored in what we call this dot files repository.  Okay, it works. I'm a bit stressed about this because the one with the handle would have been a big part. So I actually did try this query on Github and it returns some 130k, 130,000 dot file repository on Github. I think it's insane. I don't know what you're thinking about it. But if I don't know if you say there's an average of a thousand lines per repository, that's some millions of lines of code that are well used by individual people but not really put to the common good out there to be to be reused and to be shared. They essentially don't find something personal. They are not really those general, they don't take this very general approach to distribute programs. So I had this intuition that maybe we can start with an entity's craziness and start being a bit more general and by this, I mean that essentially what a dot file is that it implements a particular workflow that you have. For instance, if you think about backup, you maybe write this backup script that we call some SSH, VPN connection, whatever, and use all same different sort of data. And really, I think we can be more general than that. So if you have this framework for services, so just like system services, but maybe also user services, so essentially those little declarative snippets that tell you what you want to do. And once you've gotten that set up, you can really really share it with everyone else. I mean, this becomes very trivial and much less personal. I'll give you an example. So and using some X expressions, we could declare at the global level. So for everyone, we could declare this a backup service type. And then program it so it takes different fields, host a port for the server. And what would be very interesting here is that you get those two fields. Austin plus VPN could be the way you want to do it. And this is where you can specialize. And this is where very obviously you own folders. So that's also where you specialize. But what's really cool about this is that the specialized part is only three lines. So you don't need a huge script or multiple scripts actually to bundle together to get your features running. You can do, we can be more generally distributed so that we save everyone work in time. So how do we do this? I think there's another talk happening later about system D and home D. It's very similar. So we already have this thing that's working or why not allow, since with this room, why not GNU Geeks and GNU Shepard? And what I find great about this is that you can install GNU Geeks with Shepard on any system or GNU Linux distribution. And why it just works? So it's quite universal. Everyone can use it. So it's very easy to share. And what's also particularly interesting about Shepard and Geeks is that they can be tied together in the way that when you declare a service in Shepard, it will automatically drag the required dependencies. So with my previous examples here, from my user.files, I can just put this service there. I don't have to install a VPN program or R-Sync. It will do it for me automatically. So I don't have to care anymore about the implementation details, which are the underlying programs. I don't care about this. I want to get the job done. I want to do the backup. That's really what I care. The rest is just details. So back to, let's leave the service to the site for a moment and back to the packages. Next, next to us, Goring distribution, this thing has some 40,000 plus packages. It's pretty huge, right? Geeks is getting there very slowly. So with some 12,000 packages.  I mean, have you ever brushed through the list? It's really hard to find your way around.  But what if you have to discover something? I mean, we need a good search system. We need to link the data so that we can explore more humanly, more efficiently. So it speaks to us. We're not machines. We cannot browse 40,000 packages. So with some promise, you know. If you've so a lot of package managers have support for searching files within packages. For instance, if you know the mercurial VCS, a version control system, the executable is actually called HG. So if you're looking for HG, you might not find mercurial or vice versa. So you need a system that supports both. A lot of package managers actually support it. Geeks doesn't. But not all of them are smart enough to have this search system that will actually look it up both in files and in the description or the package name and all those things. In general, you do the file search separately from the package search. I think we could blend those two. So I think and since this is missing from Geeks, I think we can implement this this way. That would be pretty cool. Another problem is that well, so-called Gen2 use plans. If you use Gen2 or on next things called the package overrides. So we may have different features within a package itself. So for instance, you may build a browser with different types of backgrounds or maybe GTK or QT and then you don't really get the same package in here. I mean, if you have one build with some features, another one, I mean the same package with other features, then we have a different type of granularity. We want to also know about the features that are at this level, at this granularity level. Then and one that's complex topic actually, but it would be nice to be able to just like for files to be able to search for features within programs as well. So I was talking about search before and that means that we need good search. I think a lot of package managers don't have good search and maybe it's easier to just find out, to just do an internet query to actually find what you're looking for. And that's a problem. We should be able to do it from the solution itself. So I think we need good tooling, good user interface, and in particular good way. I mean, we want to make this very accessible to all of us, not just common line gurus. Then, so going back to link data, how does it work? What is link data when it comes to packages? Because they don't necessarily have, they don't, the package itself doesn't know about a relation with another, except for the dependencies. But what if the two video players, MPV and VOC, well, maybe they're not related on the software level, but are related in the meaning, in their purpose, right? They're both video players. So here we need a system to have some human input that says okay, this is how we categorize things and they belong to the same category. So you can start adding this humanization of the search domain. Among packages. Then, well, then those are very typical features that you get from app stores, etc. You get a number of downloads, the ratings, all those things. Why does it matter? I think it actually matters because it gives us additional data about how much a program is used. So, for instance, the number of downloads or ratings, maybe we should focus a little bit on the most popular package because we want to make sure that they work. But, actually, more interestingly, we want to focus on the least popular package because if we have it and only a few people care about it and it breaks, well, chances are that no one's going to fix it. So with that kind of data, we have a better perspective on what should be, what should get special attention. The last, on the last entry here, tags, put it with a question mark because we would tend to think that maybe tags should belong to the package metadata, they are not human input. You would say like VSC should have the hashtag video tag. But maybe not. Actually, the problem with tags is that they're essentially very subjective. They go with time with different fashion. So maybe today we'll talk about cloud. Maybe this term will go out of fashion in five years. We'll talk about something else. So the word cloud will not be meaningful anymore. So in that sense, I think tags should be very dynamic, very volatilizing. So what does it mean to be searching? I think so this is basically combining everything I said so far into one single interface. So don't separate the search for different components. We don't want to have a separate search for files, for features, for the community data. We want to just write my package manager search, or even from a nice GUI. And write, well, your query, I mean, I want to back up my data and issue return the relive and stuff. And that would be really amazing, right? You don't have to care much more about it. So for so for the further, when we go to the detail, implementation details, so WikiData, do you know WikiData? Show hands. Okay, so it's surprisingly not so popular. Well, what here? I guess we have a select audience. WikiData is this amazing project where it's a Wiki, by the Wikimedia foundation, where everything, every object, every entity, every concept on the planet is indexed and has those properties. So typically, do I have the words here? Yeah, if I do this, it will appear. So this is the WikiData entry. So it shows the languages, different terms, the kind of instances, if it's software, library, video player, the logo, you get all those different things. Inception date. So what's really cool with the WikiData, I said, well, it's a Wiki, so I mean, if it's free to edit it, and you can put all of those human inputs in there. So that could be a very nice interface that we could exploit to actually make use of this community-driven data. Sorry. Next, well, that's not to myself, sort of. So how do you make this search engine? Practically, package manager search anything and it finds what you want. I think it's something really smart here. Zapkin is a nice implementation that uses a lot of those inlinks between the same words and so on. So it allows you to actually support just the meaning of what you're trying to search and return the most relevant result. It's pretty amazing. If you don't know Zapkin, check it out. And if you do something better, please reach out to me. So the good news is that I'm actually working on it. I've received a grant from the NLNet Foundation and I would like to address more or less all the points I've mentioned today. And I would like to do it on Geeks because I believe that it's a very good package manager and well, as I mentioned before, it's universal. Anyone can use it. So I'm not doing the work for just a subset of the distributions. I could actually apply it to everyone. Yeah, sorry. So that would be, this is basically to sum up the five different steps that would be to implement all this. And here, if you're interested, it's a little bit of a side comment, but if you're interested by the NLNet Foundation, if you're working on a free software project, check them out. They have quite a lot of money. So you would be more than welcome to contact them. And last but not least, if you want to follow up on Geeks Development, I'll be there. And this is my personal website, my blog. I will be posting there, my progress. And I hope that we'll be successful. Thank you very much. Questions and please repeat the questions. Yes. That's a very good question. I don't know. And I think that, okay, this is not part of my work, my work project. I think this is a central question. How do we publish programs on the internet? Yeah, we can set up a repository, but in the end, if no one knows about it, how do we find it? Yeah, that's a good question. I'm sorry, I don't have a good answer to this. To actually feed the results into Wikidata rather than just use Wikidata. Yeah, that would be really good as well, yeah. So maybe have some bi-directional, yeah, for a definite. All right, thank you very much.


everyone and welcome to Nora's Cove. I'm Yoshida and here at the Cove we do budgeting, finances, cash stuffing, DIYs, minimal planning, functional planning, all that great stuff. So I hope that you would consider subscribing. If you are interested in cash stuffing, stay tuned. Okay, you all. So first things first. One, I got a new calculator. I actually have two new calculators. This one came from my good friend Mika over at Mika's creative closet. She saw last week that my calculator was broke. So she got me this calculator and I am ever so grateful. So I'll be switching between these two calculators. I got this one because you know, always have to tilt this one up. So I want to be able to see the number why it laid flat. So anywho, also I'm going to be introducing you all to a new insert that I created, which is the envelope breakdown. I'll be showing you how I use it. Also, it's a very low cash stuffing today. Okay, this week wasn't as great. We'll get into that when you see my next video, which will be my budget for the week video. But I wanted to always know that when I say, oh, I shouldn't stuff because I don't have a lot to stuff. Those are the videos that do the best. So today we're only stuffing $25. So let's hop right on into it. I will not be using a cash flow because it is unnecessary. So we're going to be going to my wallet. And this was supposed to be like my tips where I build my tips to have cash stuffing. This is all that I had this week. This was not $1. So this ended up being like change broken up. And when I had left after I paid boots around the cash and also I had to unstuff just a couple of envelopes because I had a lot of things to pay this week. Some things didn't get paid. We'll get into that when you see my budget video. And I thought I was going to need pretty much some of the money. So also this is change and things that I kind of unstuffed. And this is where it's left. So that is why we have so little this week. Only worked like two days this week. So let's count it out. But yeah, it was a little rough this week. But you know, that comes with the territory. And sometimes it's just like that. So we have five, 10, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 and 25. And like I said, I wasn't going to do a video because I was like, nobody wants to see that. But anyhoo. So also this is a new sticker in the shop. It is our Yodi character. And she has a cash stuffing envelope. Also we have new cash stuffing envelopes, stickers. But let me break down how this is going to work. So this is September. So you have your envelope breakdown. I decided to add a little color since some of you like color. And then you put the month here, the week, the total. And then here, you can list, this is for high priority, sinking funds, low priority, sinking funds. If that's something that you don't need, and you just need double lines, you can just kind of exit out, ignore it, put a sticker over it, whatever. And then here at the bottom, you have your total in row one, your total in row two. And then here, here's your money tracker. So here this is how I'm filling it out. My money in was $25 and I'm getting it from the source of hair. Money out will be the 25. No, I don't need that. I just thought about it. Well, money out, you can see if you need money out of these envelopes. Let me scratch that out. So I feel that out wrong. Money out is what you're taking out of the envelopes. The sinking funds is 25.  And then the cash envelopes, which will be listed here. But as you can see today, we're not stuffing our cash envelopes. So that's why there's a zero. So let me break that back down again, because obviously I misunderstood my own self. But the money in, if you have coming in at $25 and my source is from here, the money out is when you want to take something out, you can come back and look when you need to take something out. And then you break what it's for that you're taking the money out for. And then here's your sinking funds again, total and your cash envelopes total. So your sinking funds will be these two combined. So here it'll be 25. So okay. So I hope that was easy. And it looks a little lightish gray here, but there is a little color here boxes. And this is like a lightish taupey color. And when you print it, you can print it with color, or you can print it on a grayscale if you're just not fond of too much color. And that's what I did sometimes. So here we are. So this is what we're going to be stuffing today. We're going to have emergency fund $5, the dollar challenge five ones. And then here, we'll have $5 in business supplies $5 on a week ahead, and then $5 in planning. So I wanted to redo this insert because the original one that I created last year, it just didn't leave room for a total. So this will be part of probably a budget bundle that I'm working on. I haven't heard back from my graphic designer, so I may be doing it myself. So let's move that to the side. So now I know what I'm stuffing and I'll just put that to the side. And let's straighten up these ones. So it's going to be very quick today. So we don't have to stuff our cash envelope, but the first one we're going to go to, which is my high priority to me. And we're going to give the $1 challenge five ones. I'm going to stuff that first. Yeah, so I really like this. This is just such an easy challenge. So that's why I try to contribute to it without stuffing Christmas, taxes, savings. Oh, and my savings, I didn't get a chance to put back in my savings, what I took for my daughter's tire. So nonetheless, we'll get back on track with that, all of this emergency fund. I kept saying, God, I really had planned to put 50 in there, but I'm just going to put what I can. And this is one thing I didn't touch. Like I told y'all, I just refuse to touch this emergency fund because now I know how important it is to have one. So that'll be getting a $5 bill. And so now emergency fund has 100, I'm sorry, 50, 100, 120, 130, 140, 45, 50, 55, 60, 160 dollars. So I'm going to put that on my tractor. And so we're done with that envelope. So emergency fund now has 160 dollars. So as y'all can see, you just add a little something, it's just building, I've been doing this for two weeks. Well, three, this is my third or fourth week. I don't know, but it's building. So next I'm going into my low priority. And I'm looking to do some things, you know, here in the shop. So we're skipping nail supplies, household, business supplies, it's, this is the envelope there was definitely $5. So five, six, seven, eight. It now has eight. I want to, there's something I'm working on. And I'll need to get some things ahead of time for it. So be on the lookout for that. I can't tell y'all just yet. I've been thinking about it for about a year, but gotta have money for it. Okay, so we're done with this envelope. Excuse me, this binder, we're going over, still considered our low priority binder. This is my follow facts. I don't know why I still have these in here. I just really need to take these out. We're going over to a week ahead. And then I did take money out of the booth from that envelope. So in a week ahead gets five, that's our last $5 bill. So week ahead now has 10, 15, 20 and 25. And I thought about it, you guys. I said, I need to make this envelope breakdown available for those who digital plan. So I'll be doing that working on that this week. Okay, so we have 25 a week ahead. The next one is planning. If anything, I'm still debating after this week, because I need to have at least half of the money to go out by the 29th. I don't see that happening, but I'm just going to stuff it anyway, because you just never know. So planning gets five, one, two, three, four. Plus I did buy some planning supplies this week. And I could pay myself back or whatever, maybe next week if I decide if I'm going or not. And then I'm pretty sure there'll be some tickets around available around maybe tax time. If there's some available amount tax time, then maybe I'll go. But if not, if I don't have about the 29th, I'm not going to worry about it, because I don't want to stress myself. And it's right here. And if I want to go see my friends here, you know, I live in DC. So if I want to go see my friends, I can just go down to the convention and meet them outside, you know, whatever. So anyway, we have 20, 40, 50, 51, 52, 53, 54, 55. We have 55 in planning. That built up really quickly, because I was determined I wanted to go. And like I said, I still may go because I'm sure there'll be tickets because people, everybody don't have that type of money right away. And it'll be tickets available. I'm just gonna assume. So my goal for this is to be able to stay at the hotel all the nights. But I don't want a roommate because when I snore to need a long time. So I want to be able to pay for a hotel for three nights. Of course, my entry by products, each other, great stuff. So it's in the thousands that I'd like to save this. So yeah, so that's it, you guys. That is all of our cash stuffing. We stuffed everything. Now, if we want, let's do a total. So we have 165. I didn't count the, you know, what the total was, I'm just gonna put 160 because I'm not counting my ones yet. I'm gonna wait because I may use those for Christmas. And then total over here, we have eight, because I never go in and count the total amount. So this envelope is like, envelope breakdown is perfect. There is $88 in my low priority funds. So 88 plus 160 is 248. Wow, 248 total. And then I'm gonna put a slash over here. And I'm gonna put 248. That'll kind of give me an idea for next week. And it is front and back. So next week, you can put, it'll be October, I think, maybe September, October next week. And then that way you can carry over your total. So I try to make my inserts very simple. I don't want them to be too difficult, especially for me. And I don't want to definitely not be difficult for you. So that's all I have today. Today, you guys, thank you all so much for watching. If today was your first time watching any of my videos, and you enjoyed today's video, do me a favor, hit that subscribe button. Also hit the notification bell, the little red bell, and come back for more. Also, I'll do my best to list this in the description bar if you're interested in it. It does come in four sizes, half letter, letter, what else? A5 and classic HP. I'm thinking, I kept saying A5, but I'm thinking of adding mini HP to it, because I know I think I used mini HP to budget before. But if there's a size that you're interested in for this envelope breakdown, let me know. And also, I think I'll do it in personal, which is considered A6, so that you can put it in the back of your binders. So look out for that. But for right now, I'll list the listing below. Check it out. They're only like a dollar or 55, I think. So I hope you all have a great day, and I'll see you in my next video. Bye.


Okay. So let's try this first one. Is everybody cool? So let's try this first one. If 15.00 grams of sucrose, so already we have something, right? So let's write down what we have already. The mass of sucrose, right? And what is it? 15.00 grams. It's dissolved in 200 point milliliters of solution. So that's giving us the volume of solution, right? But is it giving it to us in liters? No. Okay. So we've got the volume of the solution. And what was that again? 200 with a decimal point there, mills, right? But we want to convert that to liters. We already know how to do that. We'll wait for a second to do that. Let's write down everything we got. And then it says, so let's repeat the question again. If 15 grams of sucrose and then it gets the molecular weight at 342.30 amu is dissolved in 200 milliliters of solution, calculate the molarity of the sucrose solution, okay? So how would we do that? Well, first thing we know, we know we need to convert the volume to liters, right? So we can do that fairly easily by multiplying that by the conversion factor that we all know, right? What do we put on top here? One liter, right? And down here? Very good, guys. 1,000 milliliters, right? Convert our cancel-cancel. And what do you get? We can do it that way. 0.00, right? Please. And that's the same thing as the number of moles. Now, how would we convert the mass to the number of moles? The molar mass, right? The molar mass. And it's given to us the molecular weight, right? Is that the same thing as the molar mass? You guys can talk to me. Talk to me. Is it the same thing as the molar mass? Yeah. No, the number is the same, right? Is the number the same? How can you not talk to me anymore? How about this? Let's think about this. What needs to be down here? Grams. Grams, okay. We know that. Okay. What needs to be up here? The number of moles. So do we know anything that converts grams and moles? It's not the molecular weight, because that's AMUs, right? Is that the same? It's the molar mass, right? It's the same number, but different units, right? What are the units of molar mass? Grams per mole, right? Grams per mole, right? That's how you convert grams to moles, right? You guys, you guys remember this. Remember this from chapter, what was it? Three or something like that? So, let's do, let's write the molecular weight down. What does it say? The molecular weight is 342.30. Okay, so 15 divided by 342.3. What do you guys get? What do we put on top? Anybody have the volume? A little this morning. We're all proud of you. Is that what you got, at least? Right? Yes. Yes, great. Good job. Are there any questions? So the next one will probably go smoother, since you guys know the rigmarole. And honestly, this one is probably a more advanced one, because of course we had to convert mass to moles, but you guys don't have to do that.


This is Dennis McMahon and welcome to Positive Monk. And today we are going to be exploring a very exciting group, the Milton Artist Guild, and what they have in store right now during the holiday and post-holiday period, and how youth people in the area and around the country can get involved with the Milton Artist Guild. And my guest is Lisa Rees, the president of the Milton Artist Guild. Welcome, Lisa. Thank you for having me. I appreciate you spending time with me today. Tell us a little bit about yourself, first of all. Well, I am, as you said, the president of the Milton Artist Guild. But I also have a full-time job. I am a leadership coach. I have my own business. And I am very active as a volunteer in our community. I serve on a couple of other boards and do a lot of customer facing things with all our customers in the gallery, as well as the community. I'm constantly attending meetings and just getting the pulse on the community. What is it that is on their minds? What is it that they're looking for? And especially, you know, being an art gallery, a lot of people still don't know about us. So my mission right now is to spread the word. And that's why we were thrilled when we got this invitation to come on your program and to talk about who we are and what we do. Well, tell us a little bit about the Milton Artist Guild and how it got started, its history, and who was involved. Yeah, so I live in Milton. And I, you know, love to craft shows. And I noticed that there was something called the Milton Artist Guild. And I really didn't know what it was in all honesty. I thought it was something for artists to go and, you know, advance level people. And I didn't realize what it was. It was a bunch of artists who display their work, and all their work, and support each other in this wonderful community. So how it started was back in 1988. There were three women who were artists in this area, and they loved so much of what they did. And they had passion for their art that they wanted to share it and talk about it. And so they formed this kind of living room collaborative where they, you know, got together, shared what they were working on, their projects. This was back in 1988. And they all of a sudden it started to just grow and grow, where more people were hearing about it and wanting to join. And finally it got to be so large that they needed space. They said we're ready to take that next step. And you know that space is at a premium, especially five years ago. This was obviously pre-pandemic. And in Milton, you know, there's not a lot of retail space. So we were very lucky, fortunate that Ernie Parmelot of Parmelot Real Estate, when the Hanna-Fords moved to its new location, they had a lot of space. And we said we would love to open up a nonprofit and to display all these artists, all their work, and to sell it in the gallery. And so for the last five years, we have been so blessed with having their support. Ernie Parmelot has been our biggest champion, and he has allowed us to be in the space for free. And that is a game changer because as a nonprofit, we knew we couldn't possibly afford the space. So it started as, you know, just three women coming together. And all of a sudden it just grew into a storefront. And now we have been there for, we celebrated our fifth anniversary over the summer. And as I said, you know, right now we have about 160 artists, and they are displaying their work in the Milton Square. That's what it's called, Milton Square, right behind the post office in Milton. Well, I remember that situation getting it several years ago, and that was, I think we did a program shortly after you came there, but this show goes not only statewide, it gets around the world, it gets on the web, to the country. So tell us a little bit about Milton, where it is, any geographical or helpful information you can give to someone who wants to come into Chittenden County and go see it. Yeah, so a lot of people ask, you know, where is Milton? We are about 20 minutes north of Burlington, and about an hour south of Montreal. So we are just on the northern part of Chittenden County. A lot of people think we are part of Franklin County, but we are actually in Chittenden County, which is the most populous county in Vermont. And so we are really easy to get to, we are not far at all, but a lot of people still, even in Vermont, and even in our community are like, where are you? So we have really made it our mission to advertise, you know, we took this huge initiative, something that you know nonprofits don't have a lot of money, but we thought it was important to be part of the Vermont Attractions Association this year.  And so when you go to big tourist attractions like Echo and Ben & Jerry's and the Teddy Bear Factory, you'll actually see the Milton Artist Guild, our cards on the rack. And what that's doing is it's helping people, you know, understand that we're so close to everywhere. And you know, Vermont, we're not a big state. And it's been very gratifying to see people from throughout the state and the region. We had a lot of tourists this summer. And we had a lot of people who made special trips to our gallery to see all the different artwork. So that was really gratifying. I've seen those cars. They even have them in the Burlington Police Station and other parts of downtown Burlington. It's really something else. Tell us about the physical make-up. The physical space? Sure. So when people look at the shopping closet, they are really surprised by how large our facility is, our store is. We have 6,200 square feet of footage in our gallery. We have about 150 different artists of all different mediums from painting, to sculpture, to metal art, to woodturning, photography, play. We have potters. I mean, it's just amazing. And so people can kind of get an idea of what we offer by going to our website, which is miltonartiskild.org. And they can see how big we are. We also have in the back a workshop space because we love to give workshops. So our artists will give workshops on introduction to acrylic painting or how to make a beaded snowflake. I made a beaded bracelet the other day. And every month we're doing paint and sips, which is super popular where you come in and bring your own beverage of choice. And you get to paint with one of our artists, a painting to bring home. And we've had a lot of people who have given them as gifts, who have kept them, you know, kept them for themselves and just love just coming together and having a good time. So our gallery is very deceptive from the storefront because when you look at it, you see a double window. Side of it, it is spectacular. Yeah. Is there any kind of process by which items get displayed in the gallery or is it like a jewelry system? Tell us how that works. Yeah. So when I talked about, you know, our mission and who we are, we take a lot of pride in that everybody is welcomed into the gallery.  And what juried mean is basically it goes through a panel of to see if your art is, is that a caliber to be displayed and sold. What, and while we do have juried artists in our gallery, which is exciting, we have a lot of juried artists, but what we pride ourselves is that we are also for the beginning artists, the artists who has never sold their wares or as unsure whether or not they're, they're good enough to display. And so what we do is because we have 150 artists, we really can help mentor younger artists. We can give them advice and pointers.  Knowing that we take a small percentage of commission, but we, a pride herself that we only take 30% of commission where the artists get 70% if you volunteer in our gallery. So that is what's exciting about it is that we are the largest nonprofit, non-juried art gallery in Vermont. And so, well, you know, we love, you know, all the art galleries, we just take pride that we're so large and that we really have a community. And that to me is the most important part of who we are is a sense of community and belonging. That's one of the things we spoke about was what the Milton Art Guild does for the community. Tell us about some of those projects or other activities that you're involved in. Yeah. Well, if you come into Milton, you're going to see our work immediately because as you come into Milton, you'll see Garner's supply, which is a huge national firm. And they have a huge warehouse on Route 7. And if you go towards it, you'll notice on the site is this beautiful mural with a hummingbird and flowers, huge giant, giant. And Milton Artists Guild was part of painting that for them. And as you start to go into Milton, the welcome sign of Milton was designed by our artists. As you continue through our town, you'll notice that if you go to our public spaces like our ballparks, you'll see all the dugouts and all the different buildings in the park. And those were all painted with our artists and kids. So the kids from the schools got to participate. We did outlines for them and they actually painted it. In the schools themselves, we help with murals on the walls and we will come in and do guest speaking. The Milton High School just launched a Milton Innovation Center at the High School. And what they're doing is they are opening this up to makerspace for the students and the community. So last year was a pilot earlier this year where we met the Milton Artists Guild partnered with the school and we told them, well, what would you need if you had a pottery studio or a woodturning studio or a metalsmithing? And so we lent our volunteers, our members came in and taught classes. They taught advanced techniques in metalsmithing and in pottery.  So we see the potential of partnering with the schools and kids to say, you know, you don't have to always go the traditional route of going to college. Maybe you want to become an artist. So that's really important. The other thing we do around kids, which I think is critical, is that we have every Sunday a free kids workshop. So from one o'clock to three o'clock every Sunday, we receive a grant from the Vermont Federal Credit Union and they've been so gracious to give us money so that we can pay for supplies and our artists to teach a 15 minute to 30 minute craft to kids ranging anywhere from three years old up to teenagers, they come in, they can make a project. It takes, like I said, about 15, 30 minutes and they get their hands dirty, they get to talk to artists, they get to be in creative space and they get to socialize with each other. So we've been offering this for a couple years now and it's a wonderful give back to the community where we have families who come in all every week. We have, you know, new people that come in. So that's exciting. And the other thing that's exciting is that we applied with the town. They received some ARPA money and we applied for a grant that would be for art programs every week for homeschooled and alternative school children. So we would then open it up once a week, let's say Thursday, we'd have two different age groups and you would come in and you could be from any homeschool or alternative school at a certain point and it would be for a minimal cost because the grant only applies to 80%. And so what we would do is charge a minimal cost to be part of a weekly art program. So we're hoping that we can get the word out. We should receive word any probably by the end of the month and we will be advertising that on our website and through social media. But that to me is about giving back to the community. Our artists are so giving and it's about cultivating art and bringing out creativity and socialization in our youth. It's a really important mission of ours. We're pretty proud of it. Where did that grant come from? What was the source of that? No, it was the pandemic money, the American Relief Act. And so Milton received, I believe, $3 million and they've already, you know, they already have their projects of many millions, but they wanted to give the community and nonprofits an opportunity to maybe fund additional projects. So back in November, I did a presentation to this select board and, you know, asked for the funding for all of next year and the following year and to do it as a pilot and see like maybe eventually we'll have businesses who will want to sponsor us just like the Vermont Federal Credit Union sponsored us for social Sundays. Maybe we'll have businesses who will say, yeah, I believe in this and I want to fund this, but for now we're hoping that we get the funding from the town of Milton. That's great. That's really a great interaction there. You know, a lot of groups have their own projects, but they don't have to know how of being able to apply for things that the grants that come from governments or from industry or even from material makers and manufacturers. And that sounds like a pretty interesting part of networking that you're doing there.  When you are getting a grant, they give you money to do a project so it doesn't help your operational costs. And so if we're to fund our executive director or we're to fund the power, the lights, the gas, utilities, we need actual, you know, to do fundraising and we count on generous individuals, our artists give back to us. And really what we're hoping to share is that Milton businesses and businesses in general will see that, you know, we're very, we don't have a parent organization. We don't have another place we can apply. We can't apply to the state of Vermont or federal grants. And so we really do rely on the generosity. And that's why we need to raise about $100,000 every year just to keep our lights on. And that's a lot. Well, tell us a little bit about your fundraising activities and why people should support you and how they can do it. Just give us an idea about that entire money, art and money and what you need right now from the public. Yeah. Well, thank you. I appreciate the opportunity to make an appeal because it hasn't been easy.  So now we're starting to see where people are more comfortable. But we are executive director that we had left back in early July. And so without an executive director, it has been kind of, you know, the board and myself to step in. And it's really hard to be strategic when you're trying to figure out how do you do payroll and how do you do QuickBooks? And how do you do? And oh, there's some grants that I need to. So for me, our biggest priority right now is to hire an executive director. And I'm super excited because one of our artists, who's our vice president, Karina Thurston, she is ready to take on this position. She knows the challenges. She's an artist. She's a leader. And she's, you know, has a lot of energy and ideas. And so what we're trying to do right now is we did our fall letter of appeal where we mail, you know, letters, but on our website, we have a link and we have some opportunities for people to make a donation. And they get put into a raffle and also one of our artists and the founder, one of the founders of the Milton Artist Guild, Lorraine Manley. She is probably one of our most popular. She's a Miltonian. Her and her husband have lived here for many decades and her art is just spectacular. It's been featured in books and magazines and she's been at the, you know, the hospitals and she's on display in the public. And she donated a beautiful 24 by 48 inch painting called Woodlands. And it's spectacular. It retails for $3,200. Right now, I think the bidding is up to $500. It's a silent auction. And it, it ends on midnight on December 22nd. So somebody can come into the store and get it and have it for the holidays. So, so we're very blessed to have that. So our goal is to raise $15,000. We also have a grant, a pending operational grant out there with the Vermont Arts Council. They were also given some pandemic money to help the creative economy. So we are part of the creative economy. A lot of people don't realize, you know, that Vermont has this engine. 8% of our economy is the creative economy, which is the creative economy. And so we're also doing a lot of work on the arts and theater and things like that. And so that is a big, you know, that's why we're constantly looking at ways to say, you know, we want to serve you, but we also need you to help us to serve you. So we do two big fundraising events a year in addition to our letters of appeal. We have something called the big deal, which we do in the summer. It's a big deal. We do this for the artists, and I think it's a cross Vermont. We partner with them. And it's a cash raffle. Basically the top prize is, is cash. And what we do is for every ticket that sold, we share the proceeds with our partners. So we partnered with the artists in residents, the Vermont dance theater. organization across Vermont to help them raise money, too. So we feel really good about being the sponsor. We find the prize money, we print, we do all the work, and we are able to give back to those art organizations. The other thing we do is in September, the weekend after Labor Day, we do something called Art & Stroll. We had our second annual Art & Stroll event, and it's in the field between the Hannaford Shopping Center and where we're located. There's a huge field there, and we had 50 artists from all over the state, and it was a craft fair, and we are trying to expand that to have more food vendors and crafters, but again, it's a way that we can bring art into the community and also support local artists. So those are our big pushes, but really, where we get our money is from the generosity of individual donors and business donors. That's where it's all at, really. That's great. Well, tell us a little bit about your plans for the future. You mentioned the art walk, but give us an idea of where, again, this is the last show of the year for Positively Vermont. We're going into the holidays, because we're heavily into the holidays. Then the new year, tell us what's next on your agenda for the future. Well, right now, we are, as you said, the holidays have been amazing. This is where we do probably a third of our sales is in December. So I just was at the gallery this morning and walking through, and all the artists are so excited. They're just ramping up and getting all their product out there, and so we really welcome everybody to come and see us. We also have an online store, which we are expanding. So people who are not in this area, who want to purchase anything on our website, that is going to be our goal for next year is to expand our online website. The other thing we're going to do is we're going to offer more workshops. We really want to query people about, what is it that you're interested in? What do you want to learn? Do you want to learn how to paint? Do you want to learn theory? Do you want to learn how to make things? So we all want to continue to offer our workshops and our paint and sips, which are a lot of fun. So we're going to really try to do a lot of marketing and advertising, and also ways to involve the community. We'd love to host events. So we're going to look at rental, renting out our space so that you can have a get together, a meeting, a party, and host it in a beautiful space like the Milton Artist Guild. So that's going to be huge. And also to support our members, we want to do more around that, making sure that they feel supported. So Carina has so many ideas of how do we bring in marginalized communities, unrepresented communities, really making the Milton Artist Guild feel like a place where everybody belongs. And I think that that is going to be our focus. It's not about making a lot of money for ourselves. It's about how do we help our artists support them to make the money. These are 150 entrepreneurial artists who are just their work. It just blows me away. So we're going to hopefully have the kids programs for the alternate school and the homeschooled kids and just stabilizing ourselves and making sure that we are here for many years to come. So it's about building relationships with our donors. And we want people to feel like they're part of our guild. And that to me is our biggest priority, is that everybody's welcome, everybody belongs. We're all in this together. And we really do need the support of the public to make it happen. That's great. That's a nice wrap up for us today. And we look forward to seeing you again in meeting Carina during the course of 2023. And thank you very much, Lisa. And this is Dennis McMahon for Positively Vermont. My guest has been Lisa Ries, the president of the Milton Artist Guild, located in beautiful Milton, Vermont. Thank you all for watching.


Okay folks Larry Pesavento for TFNN, don't forget the Tiger dollars are good investment if you're going to do it for the next till July the 7th you get big discounts and of course it's great to support TFNN all the great work that they do here. Let's get on with these markets. We were really strong the last time we spoke here which was let's see it was a week ago I took three days off I had such bad laryngitis I could I actually lost nine pounds because I couldn't even swallow but I'm doing okay now everything's fine but anyway the stocks are down slightly today no big deal Dow was down at one time 200 points it's now down about a hundred S&P was down about 25 it's down eight or nine so there's not anything really dramatic going on that's for sure even in the gold market the gold got up to 1942 that was exactly $36 from the bottom at 1902 and that took us to let's see where we would be at right about the yeah that was just about the harmonic number on the gold is around 32 to 36 so 32 that would be just about right and so that's really done very much Silver's been acting pretty good so not really a whole lot considering we've had this long weekend and not really much went on I mean I don't look at the news very much but people told me about the riots in France and stuff like that that's much matched what we had in Minnesota and other parts of the US plus what they had happened in Hong Kong was much much worse because it lasts for months and months but we live in interesting times as the old Chinese curse so let's remember that and we've got something different today on the second half of the show an old friend from many many years ago Grace Morris of Astro economics is going to be our guest Grace and I are the senior citizens of this stuff and she used to put on seminars in Chicago at the Swiss hotel I don't know how many we did but there was a bunch of them during the 80s and boy we had a lot of fun I haven't talked to her for a long time and we trade newsletters and I look at sees what she does she's a stock trader folks and she trades she doesn't use a b c d or anything else she uses astrology and she's going to talk to us about what she uses and just got a hell of a track record let me tell you I believe she studied the works of W DeGand but I'll have to remember some of it because I really haven't talked to her in probably 15 years or yeah about the time that Jeannie Long passed away but anyway we'll be right back<PHONE_NUMBER> Billy Ray Valentine with DfNN