re was some growth in the grant list you came in even better than that yeah so when you have growth in the grant list obviously but that's what the voters were looking at when we voted was yeah it's on that budget and that was caring for the that was caring for the long-term debt which was I think like 8% no 4 cents so big I'm gonna get 80,000 it's a big payment so um yeah we're that budget comparison pages that's the one we want anyway so I think if you just set that aside we can percent but what was the cents tax rate probably it would have been in the uh which page 24 or 5 or whatever that you know calculation data should have given back to you yeah just given the phone whatever that comes on you man so yeah I think if we um so I'll bring my laptop next time so we change some things and instantly see what the number is and we'll go from there and by then we'll have to get some better numbers on you well you know we're pretty good so we'll have some answers about I will definitely know more from Mike about the storm now if we can just stop having these natural disasters happen yeah we'll be we'll be fine that's your real only when they happen that he takes over when he washes his hands of it until it happens you were definitely in the two something yeah 2.4 I don't know the number or not but on uh we talked about when we were going to talk about uh conversation we're going to talk about uh total compensation yeah I did do a um the only way I was able to do with all the changes and everything happening this summer was I did the focus and I did prepare a total compensation package and I tried you know a pair of towns and more slides in their case more highway budgets um grand list that sort of thing and they were actually in that we were good I thought we were good um what happens is a lot of the towns that I was looking at similar we're doing the same thing we were paying 100 premium and and um their wages were one thing I don't like all the time about VLCT they used to be better about how many years you know of service someone had so what someone had been there 20 years or so some of those columns weren't filled in but I did end up making some phone calls to a couple of towns that I felt were similar and they were doing the same thing we were doing and I felt like the salary compensation wise was good so we were out here right in the next little highway so it was on one department I know I we thought in the school wherever I'm hearing it from people now is paying 100 somebody's healthcare insurance is a very sore subject yeah and that's really because it's not free I just added two two numbers quickly and our health care health insurance premium is over 150 thousand dollars a year and we don't have any employees so my where I'm going about is at some point I think you need we need to start asking for a little skin in the game because a family plan is what 21,000 22,000 less now I tell the 20,000 I know that well the problem you know and we should be looking at what the look at what the total compensation is because you know clearly you know I would say at municipal level your benefits not always but your benefits on average are probably better but you're paid you know if you have somebody whatever if you have someone started on the road crew for $18 an hour you know I can tell you that in construction field you're not going to find anybody for $18 an hour you know you'd have to pay them a lot more than that I know I know I know they try to come and test to this I know that we have people that work at the school and that's what I have to go by what I have for information they're working for $15, $16 on them yeah and they're paying 20 percent their healthcare insurance 20 percent in a lot of cases too they may have come on that way you also notice the turnover at the school yeah right I mean and it's no different I mean if you I mean I would say because just being in the industry that if you did that because you know my employer I have to pay a percentage of my healthcare however my wages are much higher than than than the public wages would be yeah I mean I think we would just have to see what do more research on what is that total compensation look like and like I said I did the road for road service the salary survey for the road crew and it was there in this tire compensation package and it was health insurance and a lot and the talents of Ireland we're doing what we were doing wait but we shouldn't just compare it with other towns we should probably try to see what what is a private identity look like for total compensation because that's who you're competing again you know well that's what I'm saying you yeah the other thing the way if you want to tackle something like this some ways that you could consider doing it are because you already have people hired and we were you know and myself were tired with the package that's how you came in that's one of the reasons you maybe you took the job but what you could do is there's just like you have done in your personnel policy to kind of stop the big payouts of all the sick time and all those sorts of things you could say you know when someone comes on maybe that that's different maybe that you do pay a full single or part of a family or whatever you could start making adjustments with people as you bring them on but it's going to be difficult because some of them may require you know bigger salary it's just really hard because we all know unemployment is really low right now and when you're looking for people it's it's it's I know what I'm going I could tell you that if you look at the highway how many applications and no seeming qualified well I mean you know maybe and we had a stack this bit maybe in a year or two's time everybody will be under the healthcare umbrella and that's right but everything's gonna be great that's right and then my great insurance is gonna go away yeah but it's definitely something we should be looking at and put that out on you yep I mean like I said I had done one department and but we I know in the again I've just given in the municipal part I know in the school teachers are making eight thousand dollars a year and they got free healthcare and it costs a thousand dollars a year well now teachers are making sixteen seventy thousand dollars a year but healthcare is twenty four thousand dollars a year and they're still getting full benefits when they got full healthcare it didn't cost much and they weren't making much we're now they're making a little wage and it's very expensive and the healthcare for a truck driver and a tricycle help healthcare for a English professor with the same dollars that's what the healthcare costs just as much as money it's a big it's a big dollar it's a hundred and fifty two thousand dollars and I just took two numbers out of it healthcare outpaces you know wage inflation by you know it's outpacing it by four to five times so you're never gonna catch up I know I just started right in yeah so I know I you know on that we can talk more about I know like a lot of the private businesses are doing now is you know if you come on and you're a single person you know then they'll pay a hundred percent of your single person and if you add your family to that then then they pay like 80 percent of that or you know a percentage of and then that's how they pay in to that system but it's always hard you know I think that there's so many different we've done this for you know for years had the same conversation with different towns and it's it's always you're trying to make something equitable that's not and that's when you have people that take it the don't and it's all that I know for a while it may have been on the board when that happened but none the rest of you weren't but when municipalities when the first exchange was going to come out and we were so excited Mr. we thought hot dog we were cancel insurance we're going to kick everybody into the exchange and we were thinking all this money you could say was going to be great and then they're like yeah no you can't go into the exchange because you're municipality so they wouldn't even let us in and because we were like sweet this is going to be a great room for us and but probably have is as long as unemployment is at a low rate like it is yeah like you know the time that we should be looking at total compensations is when unemployment goes back to you know five six seven percent because then you have a bigger market because right now I mean employers are tripping over you know any any available employee you know we're paying them whatever 24 to 26,000 to drive a fuel truck plus a $5,000 sign-on bonus just for season I can't I can't compete with that yeah but but that you know that's that's what the market is you know that's true so all right we'll move on to the listers so we had a couple of well we have two resignation letters you know as we've been talking about the lister's office it sounds like that all three listers are going to be either off or will be off between now and town meeting day the first one we had from Roberta Carrier which is her letter of resignation effective the third of December which has passed and then the second one will be for Jim Gray who will be terminating his employment as lister effective 12 31 19 so we're going to be before any reappointments will be down two listers going into town meeting which technically will be down three because you know there's one more to do it so which puts our town in a kind of a tough spot but so I would I would entertain a motion to set the resignations of Roberta Carrier effective 12 3 2019 and Jim Gray effective 12 31 19 okay all in favor and then on the flip side of things our savior and grace you're just trying to get around the house I was just trying to find was there a letter uh no there wasn't a previous back oh it wasn't all was in the last packet yeah okay we pointed to the staff we pointed to the staff all the staff last year you didn't do last year you didn't do anything I hired her as a staff but now that you have an opening and you can appoint Judy to be a lister and then in March she will run she can run the balance of revertisee or she could run for the full three years of Louise so I guess you will take them well I was going to say at this point which if we're going to appoint which position are we appointing for are we appointing for Roberta's position you're appointing her for Roberta's because it's the only one currently open open so you just appoint you're appointing whoever you're right till March doesn't matter you're just appointing her until the March town meeting this March March so technically she wins Roberta's uh I have no idea 2021 she had two years left right so she would carry so Judith that happened she would carry out that remainder of that appointment not necessarily because you only have the ability to appoint her until the the most until the 2020 election at that time she could run for the balance of Roberta's seat okay she could run for all all right got it or one of the other ones yeah okay so I would entertain a motion to appoint Judith Bingham bring him to Lister so effective uh what would the effective date be effective now so 12 9 2019 until town yeah March 2020 until town meeting 2020 okay we have a second second all in favor all right right now don't say anything you'll be able to do some sneak attacks and we had the hazard mitigation assistance certificate which I don't I didn't see anything in my packet oh okay yeah I was on the back while mine was double printed so I was saying yeah if awarded um so we're gonna partner with the state on a grant application and so it's awarded um they'll get us financial we'll get financial assistance stuff they are hazard mitigation plan all right so it's always a good thing yeah so you either need to make a motion to authorize the select board chair or myself only it's only has the money for one second yeah there we go so I would entertain a motion to accept the town manager to sign it on behalf of us for the hazard mitigation assistance certificate all in favor town manager's report given you I was just letting you know that Kelly's work on the town report we called the school because that was a debacle last year to let me know what our deadline for print it is and we're not waiting so we either get it done or print your own so the BRI meeting is tomorrow night and so I'm going to attend that I'm excited to do that meet everybody there FEMA we're you know obviously takes a lot of time we've got projects submitted so we already received money received money back for the um debris removal project so that's good news um we're starting to see our money back it did follow up on our the money five hundred six hundred thousand that we're waiting for federal highways we're doing campbook road that all went through so um that's been submitted as well so we should be seeing that money which will go directly to maskoma to pay for the draw um so that's five ninety one nine twenty nine as I said DuPoison came and started working on the Peabind slide they provide us with a traffic plan um Allen is borrowing some jersey barriers from the state again thank you to Ryan Slack for offering that so what I already told fire chief to that Peabind that's part that's going to be one lane in an area where the slide is because if somebody goes off they're going off so um that was part of their um package and was to do a traffic plan so they've done that so getting that taken care of so that would be nice um so Deetre and I are working with Comp Account it's a lot to get all the stuff together so we've been working on that big spreadsheet emailing back and forth giving them the information that they want I have not uh had a chance yet to read the town of Rochester just approved a class four I think it was Paul maybe who mentioned that to me so I got a hold of Joan and she was happy to share everything uh Sullivan Power is working on our financial statements they're going to come back to finish the transfer stations audit and clean up a couple things um but I don't know when exactly Rick hasn't said yet but um I was emailing with Sarah LeFroy today and I said fire chief was able to get samples of the insulation attic so we that's already been sent in I told you that um sent Bob Haines a letter of support that he requested um for a GW plastics project um you got the marked up photos for the storm dreams and then yeah somebody was concerned about how the salt was being spread on the sidewalks so I included a pass right did you all see the picture so that way you could see it wasn't going willy-nilly up you know everywhere it is being focused right there I talked to um Morgan a little bit about and he said in one area he is most areas he's not driving on the sidewalk in this area he is um because obviously that was the picture that you have but it's not you know you could tell by the spread that the picture actually came out great because it could tell that it's not going everywhere it's really kind of sticking where it needs to be so um so that's why I brought you in the original because the coffee was way too dark you couldn't see it so this week we have so slug word meeting BRI um FEMA's coming in meeting with them um trying to get Oscar to come in to meet with him to see what we're going to be doing there um just working on finishing up with coffee count to get those documents um to them trying to finish some stuff for the audit and also just trying to work on you know some of the finances obviously a detreat starter um and it's been a nice addition and right now she's going to be off on a couple of Tuesdays and working Fridays but when she sugars it out I think she's going to be working Monday through Thursday which is great always already been able to give her the grant stuff like for the one for the downtown um she's been doing that she's been working uh Dave and with Alan and on there on the sheets the insurance stuff we had a lot of insurance things hanging out there we had not tackled and is it the msds sheets is that do I have the right initials that's what they're you know I'm shaking my head yeah waste of government money yeah so we're working on that process to make sure that everybody has uh updated you know policy and then we're going to get everybody together we have some training we have bloodborne pathogen one we have PPE and because what happens if we don't adhere to all this stuff that the lct points out our deficiencies then you can't qualify for the you know grant money that they have so I'm just trying to focus on cleaning up a bunch of older stuff um also speaking that we're going to be combing out the office we have some issues with um access and things like that are going to be taken care of hopefully when the road crew gets I'm going to use a couple of guys for a few hours to get some stuff cleaned up there um so just trying to hoe out clean out and catch up so all at the same time and have we heard any um feedback in regards to the um trash coordinates I have heard a little bit I'm hoping for something in writing because I've talked to a couple people about it coming in and it seems to me the impression they have so far from the limited people that I have spoken with that they are in favor of trash but that is it they're not in favor of the vehicles or collection of any anything else they understood my point as far as being with the tax collector and trying to get some properties cleaned up they were completely on board with that they understand that but they people that I talked to felt that garbage was garbage that shouldn't be cleaned up that should not be property but when we started looking at vehicles how many registered unregistered vehicles or campers or whatever they felt that was an inch too far I guess so when is our when's our deadline to have that is it the end of end of this month that we have time or first week in January or something that's not much we only have a couple meeting maybe maybe two at the most yeah because we're trying the warning so so we'll have that for the next meeting you know that kind of make a decision I guess what do you want to do I mean I can I have asked people anyone who's come in and talk to policy I have spoken with them asked them to bring me back something in writing what do you like if you don't you know if you only like three things start home but I have got nothing back from anybody that I've spoken to I know there was some talk you know some people were really upset about it but feeling we were targeting them and you know not targeting anybody we're just trying to get some things taken care of so I don't know what the board has heard maybe you're hearing a lot of pushback that it's not going to pass maybe we need to just scale it back so it's strictly trash well I mean I don't know I mean I think at this point you know if we move forward with what we have you know it goes to the voters and if they vote it down then we can re-tool it to just trash or or we could chop it all out and just approach it with just trash and you know go from there I mean I guess have you heard anything wrong I haven't heard anything but you know if it's just not much trash then I guess everybody can have 15 20 cars back around the only I've heard from probably four I want to say four or five people and the ones that don't like it are the ones who feel that they're being targeted and they might be the ones it should be yeah but the other folks I'm sorry but the other folks are saying parade for raw we need to clean up some of this stuff but how is it going to get past that time meeting you know go make it power good well can we a little more power I have heard and I will say I have heard a lot I have heard from more people in favor than I have opposed right for sure I've had some people come out and said it's about time can we put it on the agenda for next time next time and maybe make a little bigger thing about it I mean did we already have an informational meeting on that no we still have not decided what next time is did we have an informational meeting on that I'm sorry we didn't have an informational meeting on that potential so for the for the next select board meeting would it be best for us to like we did tonight with the budget should we do a trash ordinance informational meeting and then we can get back maybe some feedback and decide what version we want to push forward or yeah and I'm sorry what was your question I thought the state statute about how many how many unregistered vehicles you could have but I'm not sure how that works because is that only if you cover in your zoning because your zoning doesn't but I've been in town where the zoning will say like if you're in the village you can only have two cars but if you're out you can have three so um yeah I don't know but you said statue you think it's in the statute I think it becomes like enforcement you know and how it's the big thing we do I mean even with the trash you gotta enforce that yeah I mean that's obvious it always once we get some things taken care of at the level when I get caught up D tree gets trained we get you know we get some time behind us we got behind a fault you were looking at you know we had a tough summer okay but it would be nice to them because that is my plan is I will do zoning enforcement and going and making sure that when you get a permit I am going to come and look at it make sure no one's done that since we started zoning I know that's what we're going to do otherwise zoning is yeah so we definitely need to do that so and I think that was in the ordinance so I think you're right I think do an informational because at this point I had heard way more positive than negatives and the people that I asked to bring us back well to see if we can make sure that it's well advertised and and then we'll I guess as a board we'll come prepared to take some sort of action to push it forward or at least I'll put it in the newspaper that'll get them everybody uses yeah headline front page got the force ordinance trash ordinance it'll be standing in the mall yeah yeah read the long and all of a sudden that was the end of it so they've cut her down on so many words she can publish how much they've come out so select board meeting minutes from the 25th November yeah we could do that under other business anything on the meeting minutes entertain a motion to accept the meeting minutes from November 25th so moved second hey Ellen favor all right everybody had a chance to look through the other communications that were in there yeah questions or regards to them I don't think the high school would have very well tonight and tomorrow yeah I know they did such a I was just waiting just waiting for somebody to go out there walking it and then you know there's no fresh ground I took my daughters over there to see it the other day and you know I was like that you can't go on about you can feel the ice the ice they flooded it next week Saturday this Saturday oh I'm not to ask them because this Saturday what what do you know when you know what time yeah it didn't say what time now I'm looking at it here just said during the day we've got that project happy holidays on Saturday so you're gonna be 50 families coming in to pick up food and clothing and stuff okay no I don't know I'm not if she probably said the time but I'll ask her um she won't be in town where's the happy holidays huh the holidays in the school no it's at the white church at what time from 9 until 11 on Saturday I am to help they'll be the interior I can drop off my written stuff directly to you guys at the white church on Friday right correct okay yeah I'll let her know um find out and so in that vein I mean obviously you oh huge thank you to everyone who participated that day plus Chuck and Michelle Washburn it looks like they donated all the material to do the um outer edge of it plus they also had this metal bent to go over the liner along the edges um Dave was there Dietrich was there um who else was was with Eric Jason Paul Feeney so how how will they protect the edges of that will there be how will people get in and out frame but from people getting from let's say the parking lot onto the ice itself is there going to be any type of like a step or snow bank or you know board yeah no I just didn't know how we're actually going to try to do the timelapse when they plow leave a snow bank leave a wind row on material there on that side just more so if they're at playing hockey or messing around something doesn't go in the carriage parking along right yeah and I think too we're not we're not sure right now whether it's going to be lit you know either this year or we're just out of waiting and seeing and and you know what it's it's fine this is the first time we're at it and and if it can be lit great we have permission if it can't then that's fine too that you know people donating and it was a lot of time it was cold it was wet so I just really appreciate what you guys did people used to use the kerosene lantern or something like that there you go yeah now they can use their flashlight on their iPhone we all set right yeah so um so anyway so a big thank you to everybody who who you know helped with that project and I know that Chuck and Michelle certainly paid for all the materials top line went in and did it and had all that metal pen was just really great of them to do that so um so the other thing under other business speaking of pulling out I was they've talked to employees some of them at that office could buy we workers you may not know this but in the garage attachment to the town building there is a ton of the old chairs from this building and the basement is half full of them and a couple times a year somebody comes for a wedding and they go and haul them out of the basement and they borrow and then bring them back but I think that it would be nice to offer them up to residents if people want them they could come and get them um keep some maybe and we just we need to get rid of them the school might even take some on yeah the ones they had are starting to get a little bit beat up just because they're in the hallways and somebody actually asked me if I could repair one of the seats and just go get a new one yeah absolutely there's a part so those are the same chairs that that that the students had painted and stuff yeah there's a ton of them I mean the garage is half and so it just seems like nice to offer them to the residents to try to get rid of them and they want them come and get them and well you could probably go take a few of them down by the ice rink and put them down there so the people have places to sit they're probably going to get some of them oh and the surveillance cameras oh either put them on the side of the ice yeah I'll talk to D tree but it might be able to get rid of a couple of benches over there yeah we had to leave a path because that was one of the other violations that we had they just so many they just fold up chairs yeah they're the they're they're attached I assume they were in your hall originally but they they're the wooden ones in the seat folds down and and there's three maybe four put together all right but you see but they're just rotting in the basement out in the garage it seems like if there's somebody out there that could get some use of room or maybe you know residents come and get them and if only we knew somebody likes to work with wood nobody not ringing the bell all right so I'm gonna put it out there and see who wants them they can come and take a look at and well there's trust me there's times so um we could probably give one of them in town so um I'll have her let know that we can go ahead and move those out so be nice we got actually down there so and then um and then date for our next meeting we're looking at I don't know I mean right now we're scheduled for the 23rd right but a couple people one first had a conflict a couple people had to check their schedules I think you needed to know if you're at basketball games somebody else was double checking their plans Lindley was not here out the 23rd I'm not here I can call in but yeah out of town so don't matter to me well right now we're looking at leaving on the morning of Tuesday 24th yeah about whether the weather might be a factor you don't know and if we do we may go next week we may go earlier to the 16th what about you baby I'm good I'm late in the day after Christmas yeah I mean I'm good the 23rd I'm not good the 30th I mean we can have next week the only thing the next week is will be too soon to get to get everything that we want on the agenda because just looking at it I mean we are only gonna have because the next week the next one after that won't be until the 13th which I think by then you could do it the 16th I mean you could split the difference if you do it the 16th um that's what's us Christmas day was too soon to the six oh I was oh I'm thinking next week is oh that's right yeah it'd be next Monday yeah I don't forget I'm thinking maybe we wanted to stick with the 23rd and yeah I mean I would say at this point the biggest thing would be going through the potential trash ordinance would be the budget I don't want to hold charges to stop me any appointments like we did tonight you know appointments I'll try to shoot for that keep it so that it's just that if you do the trash ordinance um you know I will say that if you get a big turnout you're you're probably going to have to limit people to speaking for you know a couple three minutes and to not you're going to have to limit the it's usually a packed house in there so I know I'm saying if it is trash ordinance back until January well if not it's going to put on the warning right because I think then that's what we're looking at is the 13th of January is our next meeting after that and I think I think we have to have everything in absolutely if it's not the 13th it's before that yeah so I don't know if you'll be able to get to the 13th we may have to do a special meeting I haven't even signed last year but um as far as I'll look at the schedule for that to see when the warning but it makes sense to do it then on the 23rd and and um I'll put for the sign the warning date question mark and then the other thing for the next meeting to be thinking of is dedication dedication yeah I have a couple you have a couple ideas for you to think about and I'll let you know what those are and then and then to Lindley gave us up yeah I wanted to just do a quick update so if you remember a couple of meetings ago we had Josh Jerome was the economic development person for the town of Randolph is sort of leading a consortium of towns on this grant application so this first round this is going in this week this is for the $15,000 towards a planning grant that is if we were to get the second grant it's 300,000 and so the idea that the consortium has come up with is sort of on this sheet and it's that infographic is actually sort of the quickest way to really grab the information so from our planning meetings these were the heavy hitter topics that every single town is facing so it's housing stability education health and well-being mobility and economics security and so the idea is if we were given the $15,000 grant we would use it to explore these five topics to really see how a $300,000 grant could be used for this region and for these surrounding towns to really help and benefit so it so the idea with this grant is really just the $15,000 towards planning Josh Jerome is really leading this front but there are I believe it's six representatives so Beppa will have one representative that's still sort of being debated who that's going to be but we will have a representative on this team if we're given this grant and we'll go from there and so what Josh was asking was normally that I update the board with where things are and what's what's going to get submitted to this grant the board is willing this is a non-binding resolution that just sort of says that the select board from the town is on board with the grant being submitted that we're aware of it that we're backing it that sort of thing so it's nothing nothing that we're held to other than it makes the grant I know that Randolph's and I think it's Brookfield's have definitely signed them and others are being asked so. Do you have a time frame in which to sign that? The grant's going in on 13 so it's tonight is meeting and I can read it quickly if everybody wanted to hear what's on it. Okay so the select board of Bethel hereby signifies their desire for the town of Randolph to apply for the Working Communities Challenge grant from the Federal Reserve Bank of Boston jointly with the communities of Randolph Plain Tree, Brookfield, Chelsea, Rochester, and Bethel further known as the White River Valley Consortium whereas the White River Valley Consortium intends to work towards the vision and goals of the Working Communities Challenge to support local leaders from public, non-profit, private sectors working together to achieve ambitious shared goals, economic inclusion, racial equality, and diverse across age, gender, and sexual orientation as important parts of the shared goal, meaningful engagement of diverse set of residents including those with low incomes in decision-making and direction setting. System solutions not just programs to achieve the team's shared goals, connections to ideas, people, and markets within and outside the local economies and communities and learning and adaptation through research, community input, and peer-to-peer exchange. So it's basically that's encapsulating what's in this sheet and then the sheet gives you a bit more information as to the exact grant application. Which is kind of the same thing that they talked about when Rebecca and Josh came for and so you would you're going to do that because you need a motion to. No I was just looking through the bottom of like the current team you know which was you know the towns plus the organizations and I guess I was a little as anybody approached GW on being part of the team or not as part of the being that they have such a large footprint in the communities not not quite as part of the team but they will definitely be there's a whole list of because at first I was looking it was you know central modest and that but then there's like bar hard or bank and trust you know so then I'm thinking you know I mean GW probably invests the most of any company in the area. The idea is to get as wide of a swath of involvement as possible. I don't know I mean what does the board feel? Motion that we sign on to the letter support letter. Any other business to come before the board? Are we good? Anything else? Anybody have anything?


Hi and welcome to Analyzing Disputes. Here's where we're going. Types of conflict, hot and cold. Action plan for hot conflict and cool conflict guidelines. Types of conflict. Most conflict stems from personality or issue disagreements. People clash as the result of temperament and emotion over differences of perspective and opinion. Personality focused conflict is generally the toughest to deal with because it is emotional, people intensive, and frequently the product of a grudge. By contrast, issues centered disputes typically give rise to a cooler variety that is intellectual, idealistic, in other words based on coulds, and rooted in perceptual differences between people. For example, labor versus management. Cool conflict is less emotionally explosive than hot conflict but may take longer to extinguish. Remember the dimensions of both hot and cold conflict. Hot conflict centers on personalities whereas cold conflict centers on issues. Hot conflict centers on emotions whereas cold conflict centers on ideas. Hot conflict deals with confrontation whereas cold conflict deals with debate. Hot conflict deals with the past whereas cold conflict deals with the future. Hot conflict deals with commissions whereas cold conflict deals with omissions. Hot conflict deals with power and cold conflict deals with principle. Action plan for hot conflict. First, strive to get those involved to bury the hatchet and put the overall mission of the group first. Accentuate the use of we and us over I and me. Speak in the future tense rather than the past tense. Substitute I think for I feel. Get people to focus more on their intentions and ideals than their past behaviors or words. Stress opportunities for future accomplishment over past failures and shortcomings. Cool conflict guidelines. Help those involved to see the many things they already have in common and the goals they share. Assist the team in clarifying its goals and standards to facilitate rational discussion of the conflict issues. Give people ample opportunity to air their views and perspectives. Search for creative alternatives and options that everyone can endorse without feeling they've sold out. Encourage people to experiment with an idea or alternative before rejecting it. In return, promise to drop the idea if the experiment fails to work out satisfactorily. Challenge people to substitute facts for opinions and analysis for generalities. So here's one more event. To manage conflict better, it is important to understand the different types of conflict. Applying a simple plan can help you better manage hot and cold conflicts.


The business is Red Barn Carnivores and that's an homage to my grandpa who had a business called Red Barn Antiques but then behind his giant red barn where he stored all the antiques he had a giant garden. And so he taught me and my mom how to garden. It just kind of put a appreciation of nature and just growing your own stuff into my heart and I guess from there I've always been a little weird interested in unique things and I started growing fly traps, sundew, serocinia and it just kind of went hand in hand with the weird stuff but also still the gardening aspect. So a few years ago we went to a nursery down in Little Rock and I saw an Epenthes ventrata which is a pretty common hybrid produced by a tissue culture lab out in Europe and it just kind of reawakened something in me. I had grown these back way back in the day back in like middle school and high school with one of my buddies. When I saw that I just remembered, oh these are a thing and so I started researching them and started noticing the prices, the demand but also just how pretty they are, how unique they are and I did a lot of research, ended up building a grow tent out of my apartment I guess a couple years ago at that point and then it just kind of exploded from there. Eli has a tendency to like pick up random hobbies and just get really into them so it was just kind of like par for the course at that point. It didn't surprise me. And then of course when he was making money off of it, it's great.  We grow primarily carnivorous plants, venus fly traps, serocinia, sundew, nepenthes but we also grow elephantias, colladiums, just random stuff that we find cool. We're hoping to eventually move into a more holistic one-stop shop so there's a lot of rare aeroids or like I said, elephantias, ficuses, just palm trees. There's industries for everything. There's a lot of demand for a lot of different things. I think we've noticed too like we've gone to some like local farmer's markets here and plant sales here and people are interested in the carnivorous plants. Very interested in these fly traps, that's something most people are familiar with but we also have people that ask about what other plants we have so I think we've seen a bigger market for kind of the elephantias and the intermediaries and stuff like that locally. And they're kind of like slowly getting into the idea of having a carnivorous plant. It seems complicated to take care of, they're not quite sure they can handle it so we've seen that as well as a particular market locally. And we eventually want to get to the point where we have multiple greenhouses that are servicing a whole wide range of customers. One of the business points that we've seen for a lot of our competitors is they only focus on one thing. So they focus on, for example, there's a company based in Tennessee that they only really do really complex hybrids so like 12 or 13 parent plants which are really, really pretty but there are some people who are species purists. They only want, you know, primary hybrids or something like that or they just fail to diversify which limits their customer base stuff. We're hoping to add a wide range of stuff that will allow us to service a bunch of different people. We are on redbarncarnivores.com and you can find us on Facebook at facebook.com slash redbarncarnivores. We have a group you can join. It's carnivorous plants HQ, so headquarters HQ and then you can find us on Instagram at redbarncarnivores as well.


What's up guys, my name is Michael and welcome to my YouTube channel. Today we're going to do another Lico challenge called reverse string You're just giving a string reverse it. All right, this is actually really easy I'm gonna do it right now real quick. All you got to do is go through the middle We've done this so many times so many times go through the middle and Then swap it with the end. So I'm gonna create a char temp. This is gonna be the s at i Then we're gonna do s at i is gonna equal to s at s dot size minus i minus 1 Then we do s at s dot size Minus i minus 1 is going to equal to temp and then that's it, okay This is the mathematical function you could create s dot size minus i minus 1 That is the function that is Given the i that gets the last value so you don't have to do all this stuff We've done this so many times so might as well do it right now Let's submit and this should be very very should be accepted easy peasy lemon squeezy Basically, you could write this out this Function out yourself if you I go to the middle and then you take this little end of the year this length of the Ray minus i minus 1 Length minus 1 then minus i that would get you the end of the end of the array And of the end of the size of the character String so then you could swap these two This is how you create a temporary character get it pointed to the beginning Change the beginning to equal to the end let the big end equal to the temp character Which was a character we got from the beginning and that's it That's why you have to do Ray cops describe a check you guys later. Peace


Hi, I'm Lena Vataling. You might know me from SystemDeen stuff. I'm going to talk today about CS-Sync, which is my little site project. What's very unfortunate is that exactly at this time, or like in 20 minutes or something, there's another talk about CS-Sync actually somewhere on the other end of the campus. I would much rather be at that one actually. But anyway, for the ones who might have seen this talk, like for example at AllSystemsGo at DefCon last month, it's probably good idea to go to the other one and you'll learn something new, because this one's just mostly the same slide as before. A little bit updated though. Anyway, I'm talking about CS-Sync. Yeah, let's jump right in. What is CS-Sync? The name CS-Sync is supposed to suggest the relationship to content addressable file systems. By the way, if anybody has a question about any of what I'm saying here, I much prefer if you interrupt me right away and we have a discussion on topic than doing all of that in the end. By any means, you're completely welcome to interrupt me. CS-Sync, content addressable file systems. Everybody knows those.  Yeah, you know how this works. Content addressable file systems are these things where you have these hashes and they refer to objects and then you can use these hashes in the place of the objects and then you can build trees and these kind of things of that. So that one concept that CS-Sync picks up and the other one is R-Sync. Pretty sure R-Sync, everybody knows that too. What most people don't know probably who use R-Sync every day is the actual smart part about the algorithm about that. It's the R-Sync algorithm. The R-Sync algorithm is something that only actually happens in R-Sync if it realizes there's the same file on both sides like on the local side, on the remote side. Then the actual smart part of R-Sync takes place which is that it tries to figure out the differences and recognize the same data blocks in those files even if they shifted in the file by variable amounts of bytes. So yeah, R-Sync is an awesome technology. I think it was originally written in 1992. The ideas behind that unfortunately never became standard in what people do. There are lots of projects who use the R-Sync algorithm but unfortunately there are also a lot of projects that should use it that don't. It's an interesting little algorithm we'll talk about that later on. So this is the combination. Of course this doesn't really say much so what is it actually? I call it a content addressable data synchronization tool. So it's a little bit like R-Sync and a little bit like Git but it's also not like Git and also not like R-Sync. Its primary use case is file system like it can synchronize file system trees for cases where you have many similar trees. One major use case and the original one, the one I cared about the most initially, is about delivering OS images.  Something large that you tend to update in pretty regular intervals but mostly stays the same except for a couple of things that you fix about it and add something. OS container IoT VM whatever you call it. It has two other use cases though that I might mostly focus on adding functionality for that right now. Which I think are pretty much the same actually. It's the synchronization of your home directory between systems or backup. Backup of course is very similar in some ways but also different than others. It's similar because you actually also focus on large file system trees like for example your home directory which mostly every time you want to do a backup stays the same except for the few places where it doesn't. A backup system that wants to be efficient should take benefit of this. Of course if people backup their stuff with tar that's not very efficient because every time you tar the whole thing up. First of all it's very slow and secondly you store a lot of redundant data. So yeah these two use cases. Image delivery and backup slash the home synchronization are different but I think they're similar enough so that we can cover them with the same program. CI sync can operate on two layers. Like which one you pick is up to you and depends on your use case. First of all it can operate on the block layer. So the data images that it's like the delivers to systems can be basically what you did of a block device. So raw XT4 image like the actual blocks of the XT4 image or squash image or whatever you like. Secondly it can operate on the file system level. In that case it looks at files and directories like your home directory. So that's the level further up. In that case you're independent of the file system used in the below to some point at least you just look at more structured data in a tree fox. So what does CI sync actually do? Understanding that is the core of this talk. First step what it does is it serializes everything. We operate on the block device that's pretty easy. We just read it off the block device. It's already serialized. If we operate on the file system level it's also something that everybody does all the time which is tarcings up essentially. I don't actually use tar for some reasons. That's one of the reasons I care about reproducibility and tar has certain issues with that. Like reproducibility basically means that if you have one file system tree on your disk that you get the guarantee that serialization of it is exactly one thing and one thing only and does not change depending on which day of the week you do the serialization on or what the backing file system actually is or anything else like this. Generally tar is not very good at that because in tar the files inside the directories they appear in the order that ever the file system decides to push out and that might depend on many factors including hash algorithms and what not. So anyway, CA tar like that's how I called my serialization format like all the things that I came up with here always start with the two characters c and a. But the CA tar thing essentially just tar however it's reproducible and well defined in that and secondly it's random access so that if you want to access some file at the end of the serialization you don't have to read all the beginning like you have to for tar. But for the sake of discussion let's just assume it's the same thing as tar. On the block layer easy just read the block after block and on the file system later almost as easy just tar it up. That was the first step. Now we have this long serialization start somewhere and somewhere and it's just a series of bytes. Now we split it up in a way like how the arsync algorithm does. So we take serialization, chop it into series of chunks. These chunks do not have the same size all the time. The size is a function of what's in the data. What's actually happening there is that there's like this is the arsync algorithm ultimately is the hash function is calculated basically for every set of 48 bytes of the stream and when the resulting hash value holds in some mathematical expression which is hash function modulo q equals something then we do a cut. What's the effect of this? This effect of this is that same data results in cuts between these chunks in the very same places. Why is that interesting? That is interesting because if we would actually cut in equidistant intervals like we would always cut after I don't know 64k and you insert one byte to the front then all the blocks through the rest of serialization would change too because they all got shifted a little bit to the right and this will happen all the time because again like most of the time we talk about a tarring here so if you add one file in the front yes sure you added a couple of bytes to the front so all the blocks in the end would change. This algorithm the arsync algorithm like this chunking stuff has the effect same data will result in the same chunks will result in the same chunking locations that basically means that if you insert a byte somewhere remove a byte somewhere it does not explode into the rest of serialization but it will change this one block around it but after that block you get back into the normal chunking that you had before. This is like the interesting bit about it. It's what like the duplicating file system at least the good ones generally do. It's what arsync does it's what what's it called dropbox does to some degree and it's the interesting bit about it. So summary again first step to realize everything second step slices up into little chunks yeah why do we do this yeah for the adding extra byte in function ripple up to the rest of it. The used algorithm that we use for this is bus hash which is a cyclic hash function it's ultimately just an implementation detail that we do this. The good thing about this is that it's relatively cheap to calculate right like we don't like I mean think about that if you actually wanted to calculate the 48 byte window over the entire stream and shift it along that we would calculate a lot of stuff. The fact that we use bus hash makes that much much cheaper for the common case. Yeah this is what I mentioned here like you use the hash that you calculate for each of those 48 bytes take it modulo some value q and check if it's q minus 1 and if it is so you place a cut. If not you continue calculate the same thing for the next byte if that holds then you make it cut if it still doesn't you go to the next one and so on and so on. By picking this q the right way you can select the average chunk size right which the idea basically is that yeah in average we want 64k chunk sizes but they can be a little bit smaller they can be a little larger it's fine as long as the average is 64k. That was the second step. Third step after we chunked it all up we calculated a strong hash function like these bus hashes is like we forgot everything that we did about the bus hash thing about this rotating hash function. It's not a strong hash function we only used it for chunking things up we forgot that now. In the third step we used a strong hash function the one we're actually using is shaft 512 256 it's not so well known a member of the shaft family it's basically shaft 512 but cut to 256 bits and the reason why that's a good thing is because it's a lot faster to calculate than shaft 256 on 64 bit processors which is what we mostly have. It's not really shaft 512 cut to 256 bits though because it actually starts with a different value start value so it actually results in different values. Anyway one story short it's a strong hash function. It's like what get uses shaft 1 we use something a little bit more modern ultimately. When we hash these chunks we then can use the hashes as an identification for the little chunks. Now at the same time as we do all this we write out an index file that's how I call it which is very simple it's just ultimately just a list of these hashes. Actually it's not just a list of hashes because I want random access and random access to the serialization stream is a little bit difficult if every chunk has a different size because you never know if I want to go to buy 5 million in this serialization then you would have to that would be over 1 of n and that would suck. So actually it's just a list of offsets with the right hashes. These index files are sufficient like they explicitly define one version of the tree very explicitly because all you have to do is like the hashes refer to chunks if you concatenate the chunks in the order that the index file says you back at the original serialization. Fourth step after we did all this we wrote out the index file and have these chunks we compress the chunks individually so we just use some standard like compression like ZSTD this Facebook fancy compression algorithm that everybody likes these days. Then every single one of those chunks which are as mentioned uncompressed there around 64k we place them in one big directory and this is what we call the chunk store. We place them in the directory where each file is named after the hash. So now we have basically one big directory with lots of little files that individually compressed whose names are all hashes and then you just have to pick out the right ones in the right order and you're back at the original serialization. And that's all the CAsync ultimately does. To recapitulate we serialize first then we chunk then we hash everything and create the index at the same time then we compress it and store it somewhere. If we want to extract one of these things we do the opposite. We acquire the index file, we go through the index file item by item, look for the chunk store, uncompress it, concatenate the whole thing so that we have serialization and deserialize it to disk. And that's really all there is. Yeah. This is basically very similar to Git. Well I mean Git doesn't do anything with serialization right and Git also focuses very much. So one of the major differences here is that I don't care about the file boundary ultimately. I get rid of it very very early on. Git and R-Sync too. They all care about the file boundary right. So I think that is weakness. I mean there's strengths in some ways and weakness in others because what R-Sync and Git are never capable of is like they cannot really track when content moves between files right. It also has this specifically in R-Sync that's a problem right because R-Sync is not capable of recognizing when you rename a file or something like that because like this algorithm, R-Sync algorithm is an R-Sync only applied on individual files of both of them like if they exist under the same name on both of sides. Then it's efficient. Otherwise it's not. So this stuff however has this benefit like I serialize first. Then I forget everything about what I just serialized and the file boundary and anything like this. And chunk it up at that point which has the nice benefit. Small files that got lumped together with other small files until I reached the average chunk size. And the big files that are split up into small bits so that I reached the average chunk size. And it has a nice benefit that the same files that move between directories are perfectly well recognized with this because I only care about the data contents. I don't care about file boundaries or anything like this. So yeah, key difference to R-Sync or R-Sync I mean there are many systems that use some of these bits. There's at least to my knowledge no system that uses this combination to build a system like this. But the key difference, yeah, forget the file boundaries. I don't care about the file boundary. Limiting yourself by always keeping the file boundary in your mind makes a lot of things very difficult like tracking changes across. If we don't care about file boundaries, how do hard links work? That's a very good question. By the way I figure I should repeat those questions, right? So the question was if we don't care about file boundaries how do hard links work I don't care about hard links. That's my answer. It's not quite that easy. I do care about hard links. I thought about this for a long time whether I should actually care about hard links and actually serialize the fact that they exist. Ultimately they generally don't. If you tar up a Debian image or Fedora image or something you won't find many hard links in there. I use them though heavily. There's a mode that I'll come to later where you basically can use an existing tree that you already have on the system and then extract a new version and I will, if you want to, hard links the old version to the new version so that it basically can have two versions of your image and everything that's similar or identical is hard linked up if you follow what I mean. But let's talk about that a little bit later again. Any other questions at this point? Yeah, so the question was about hash collisions, right? Well, I mean it happens, sure, in theory, but we don't have enough atoms in this universe to make this like build a machine that can actually happen. I mean it happens for SHA-1. This is a way stronger one. SHA-212 flash 256. But if you, if we live in a world where collisions are actually happen, you can't really do that. If collisions are actually happen, then we have a problem anyway, it was good and so on and everything else too, right? Like before I have to think about that. A lot of other people had to think about that and fix it for them and they just can copy the solution. Anything else at this point? How does it handle repetitive data? So how does it handle repetitive data within files themselves? So like this authorization, I mean it reads all the files and then if you have repetitive data within the same file, this will always result in the same chunk. So on the server ultimately, the number of chunks ending up, like if you add them by size, it will be much smaller of course. It will automatically recognize similarities or identicalities, whatever you call them, within files, it will identify them across files because it doesn't really care about files, right? Like that's a good thing. So yeah, it's very efficient. It will reduce, like throw all the duplicates data around. Of course, always within the average chunk size, right? Like if you have identical data that is shorter than the average or minimal chunk size, then we'll never be able to find that, right? It's not for that. But yeah. What is the name of the compression algorithm? The name of the compression algorithm is ZSTD. It's a Facebook thing, like it's relatively good compressing it very fast. But I guess you designed it to be swappable. Like you can use X that and you can use something else too. But yeah, I mean you can use the hash function, you can replace that too, but the thing is I wanted to, like, and you might even want to replace the hash function. Like if you care about 32-bit processors, SHA-256 is way fast on those. So if that's what you care about, then you should probably swap that out. But I think most computers are probably 64, but so that's what we default to. Okay, let's continue. Yeah, so in an average, the chunks are evenly sized and we can recognize similar blocks in different files. File renames this way, files moving this way. We can recognize the same contents within files even too. And yeah, why do we all use this? Similar file system entries will result in mostly the same chunk files and hence you get efficient storage of many related trees and all that without keeping any kind of history. It's also really nice about this that everything is implicitly validated, right? What, me? Weird. So everything is implicitly verified. So there's this dmvarity thing that some of you might, oh it reminds me that my talk has begun, that's nice. So there's dmvarity that some of you might have heard of. It's a nice functionality that basically allows the system to validate every read access to the hard drive and guarantees cryptographically that what is being read is actually the version that whatever the vendor put together. This stuff will give implicitly a similar behavior, right? Because we check everything against the index and the index contains the kind of cryptographically strong hash values of all the data blocks, all the chunks. We get the same behavior there, right? We get the complete guarantee you won't be able to play games with us and provide us with wrong data and we wouldn't notice. It's also relatively CDN friendly, like content delivery network friendly, because you know it roughly our chunks are always the same size, right? And you can pick while when you use CA sync what the average chunk size shall be. So since CDNs generally, like you pay for the number of objects requested or something like that, so you can actually pick like how much you want to pay to CDN. Use larger chunks that basically means fewer objects get requested by clients if they want to download something but less similar patterns. We won't be able to deduplicate so much. So it's relatively CDN friendly. I mean other systems like for example OS tree as one they traditionally started out at least as something where every individual file would get the information would be put on the HTTP server. So if you look at Etsy or something where you have these tons of very small files at the host and whatever they're called they would all get this little object and you would have to pay CDN with millions and millions of get requests because every client requested that. Their way out of that problem was adding binary deltas. Binary deltas actually something very opposed to what I'm doing here because binary deltas between different versions always implies history, right? You need to have somebody who sits down and figures out what are the image versions that it's worse updating between so that he pre-calculates the diff and puts it on the server, right? So this is management work. With this stuff nothing of that sort is required, right? Like every image stands for its own and if data blocks are reused that's automatically detected because I don't care about history I don't care about anyone managing anything I just care about the chunks and they automatically out of themselves de-duplicate themselves. Any questions otherwise? So why all this? Yeah, when acquiring a new image we can actually take benefit of the fact that usually like if you do an operating system upgrade you already have one version, right? Like that's the definition of an upgrade. So we can actually go over the file system and do the same algorithm that I just explained and then we'll get a list of hashes that we already have that we can read on the version that we already have and then when we do an update we just copy it from the file system that we already have into the new version that we're about to create and only the chunks that we don't have yet we actually acquire from the internet. So yeah basically with everything that we have we get a pool of reusable chunks interesting thing about this that actually allows even updating efficiently or relatively efficiently between theoretically foreign images. Like for example you could actually Telsia Sync to use your Debian image as a base for installing the new version of your Fedora image, right? And the Sync would automatically recognize similarities and there are some. I mean it's not going to be as efficient if they actually share some common history but it will recognize what the similarities like time zone data and locale data which tends to change relatively solemnly. So which is kind of nice, right? Like because you don't need any actual historical relationship if there is one that translates to better efficiency but yeah you can actually throw any kind of treat on it and CIS Sync will recognize similarities and if they aren't then it doesn't hurt. It just makes a little bit slower initially because we have to index everything but other than that it doesn't cost you anything. Yeah so there's automatic robust reusing of what's down before right? Because everything is cryptographically verified even if you have like the old version was modified locally because somebody hacked it or whatever else. We wouldn't use it, right? Like we wouldn't use it because we read the stuff from disk, hash it up again and check it against what we expected to be and if it's not we just don't use it and use the data from the internet instead. You said at the beginning that you can choose the chunk size on average right? So I guess if you choose like the smallest size the chance of usability are pretty much higher. So what's the trade-off and how do you choose that size? That's a very good question. It really depends on your use case by the way the question was regarding chunk sizes and how do you choose the right chunk sizes for what you want to do and what the trade-offs are. Yeah I can't really give you the perfect answer for that because it really depends on what you're doing and for many use cases I don't have any answer at all but yeah as mentioned that I don't know for the backup case for example things will be very very different than for the image delivery case and for the image delivery case it really depends what you actually ship. Like for example some people ship squashFS, I actually have a slide about this later. SquashFS in theory is very much contradictory to this concept because squashFS removes redundancy anyway so I won't recognize any data within it and in theory if you have fully compressed data then every change in the beginning will explode into the rest of the image anyway. Now squashFS thankfully isn't like that because squashFS still needs to be a random access file system. So what they actually do is they compress a little and then they stop the compression, restart the compression for the next stuff and then add an index at the end. So because that is that way if you synchronize things properly with squashFS chunking like the block size that squashFS uses and the chunking size that squashFS uses you can actually even deliver squashFS relatively efficiently. But if you're asking me now what the best the right setting says I can't really tell you that because it depends on your use case and people have to crunch the numbers first to figure out what's right for them. Now this is actually something that the other talk on the other end of the venue here is doing like he actually put a lot of container images on CISync and tried to figure out when this actually starts making a lot of sense and when it doesn't do so much and he gave me quick overview about the results of this but yeah if you want to answer for the question you have to go to the other side again. In this case about this question can we have index for different chunk sizes in one place? Regarding can we have at the same place index files for different chunk sizes? So I mean you sure you can do everything right like CISync won't stop you but of course if you operate with different chunk sizes CISync will chunk at different places so actually I mean it's not that you could reuse chunks it's very unlikely that you can reuse chunks because we will chunk differently ultimately right but you can place them but honestly before you deploy CISync you should do your homework and figure out what the perfect chunk size for your stuff is. Ultimately I mean it's not that it's completely have to be set in stone right you can change it later like it won't hurt you technically it will only hurt you that yeah when you do fiddle around with a chunk size all the time over the progress of your project each time you do it the level of reuse for the chunks goes to zero usually but it's not that it's like it won't create technical problems just if you fiddle too much then the bandwidth savings that this is supposed to provide you will not be delivered. So in principle could you update for say live IoT devices with a new image and so what may be the gotchas on that? So the question was regarding updating live IoT images with this and what the gotchas are about doing this so this is definitely one of the use cases right like you saw the IoT on the thing and well I mean the double buffering thing like the A.B. partition stuff right this should be pretty well like it really depends what your constraints are do you actually care about runtime for this or do you not? Like if we try to like if you take benefit of the seeding stuff like seeding is how I call this that you look at the operating system version you already have and chop it up and use it as a pool of chunks that of course takes a lot of time like indexing all of that and you could cache the results of the indexing but if you actually have file system trees that change then the cache like we can't maintain this there's no sufficient API in Linux how we can detect changes on the block layer at least on the file system layer that's not too much of a problem but yeah if you want a one stop solution that already is well tested and people know exactly what the parameters are that you want to put in there then seeding is not for you but yeah this is stuff that's still relatively new I know that a lot of people have been doing this as I learned recently there's even re-implementation of the CAC client side at least in Go that nobody told me about until yesterday and so apparently there's some adoption but ultimately most of the code is less old than a year so I think I mean my answer is definitely it's absolutely the use case for this right that's what I care about what I want to build is like a self updating stuff where people are a little bit smarter than just DDing things around or tiring things around but it's not a ready made solution like it's not a product it's a building block that you have to make fit to whatever you want to have there was a talk yesterday on exactly that oh there was another one about this oh good that I know now who did that oh awesome yeah okay they're great people anyway I probably should watch the video about that and the other one 3CA sync talks at the same conference is awesome anyway if nobody has questions let's continue with the slides yeah this is something I really wanted to stress there's no revision control I already mentioned this right like this problem was where OS tree tried to solve by having binary deltas between the key versions that people wanted down upgrade with this is not necessary at all no revision control, revision control is a useful thing for developers I think but for deployment I think it's a weakness I think for example it's a weakness as a docker model for example because I have these layers which are two things on one side they are revision control for developers right so that they start from the devian thing and then they make their changes but on the other hand they also are their way how they want to reduce downloads right like because everybody already has a version they don't people don't need to download them I don't think you should intermix that ever and since this is about delivery primarily and not supposed to be another git like not supposed to be revision control the emphasis is really yeah there has to be no history and you don't have to manage anything and if you yeah it's all standalone individual thing and if you if two people happen to have the same data somewhere and share no history together the same chunks will be recognized anyway regardless yeah forget revision control and we find the similarities automatically there is yeah revision control is for developers it's not for deployment then yeah already mentioned that I'm not using tar I'm using ca-tar this little thing that I came up with it's strictly reproducible right there's only one valid serialization with ca-tar for directory tree this stuff is defined so that actually be tar 2.0 like all the warts of tar removed but then again I'm not pushing for that I don't really that's not the problem we're trying to solve and yeah that's random access it has a couple like the random access thing is awesome because it basically allows ca-sync to mount these index files remotely into the local file system via fuse and then in the background I can download the chunks as I need them as the client accesses them and because I have random access I can give you proper file system there that basically ends up on your local system incrementally as you use it so yeah the random access thing is something very much a shortcoming of tar there are a couple of other things by the way like I care a lot about metadata control so metadata control means like depending on your use case you need different metadata in your archives like for example if you do an container image you generally don't care about M times like modification times because M times are a bad thing for that thing because they are like contradict with reproducibility right like if you put together your image today with gcc and rpm or whatever else and generate the exact same bytes on disk they will still have different M times than if you do it the tomorrow right like because the modification times will then be the ones of tomorrow so if you do container or IT images you generally don't want M times because they mean changes that you're not interested in if you however do a backup of your home directory you very much care about M times they are actually a useful thing to figure out like on what date did you work on which document so in CITAR I actually do care a lot about that so that you can explicitly pick the metadata that is actually included in serialization and that's kind of for making a requirement also for the reproducibility right so that if you actually are in control whether to store M times whether to store user access modes whether user identities like chone and sync like that whether we store ACLs or extended attributes all the things only when you're in control you can actually make sense of the reproducibility there the metadata that we store is very comprehensive I don't know any tool that goes into that Magigetel because we store all the weird stuff that we have nowadays in Linux like these file attributes like the chapter stuff and I don't know quota project IDs and all the exotic weirdness that we have nowadays yeah I mean for the question at this point if you're mounting your series in parka is that read only or? That's read only like all of this is about reproducibility all about immutability so that every access is validated all the time through this index thing and that basically means everything is read only right so if you're looking for a general purpose file system this is not it this is an archive format this is a image delivery format and a cryptography secure one when you actually play around with CS think you'll see a couple of different files the primary one is CIDX that's the index file it is as mentioned just a list of hashes with the offsets or the lengths of the individual chunks there's some saying CIDX exactly same thing internally the difference is only semantically like one is that if you operate on the block level the other one if you operate on the file system level right CITAR already mentioned that is pretty much the same thing as TAR except that it has reproducibility, files and attributes, random access and these kind of things and then there's a dot CISTR which is a chunk stored directory so it's not a file it's a directory and that's where if you actually go in there you'll see a lot of little files all named after hashes that if you actually look into them you see that they're all ZSTD compressed and if you decompress them and use OpenSSL to carry out the hash so you'll figure out that yeah they're exactly the file name they're stored under so if you actually come into contact with this these are the four things that you will see a couple of more actually like this but these are the ones that actually matter so does that mean that when you do CISync with the space of your system is going to grow up? It does mean that when you sync because you are creating the CISTR it means that your files can grow because you have to generate all that hashes which contains the so the question is regarding if my local file system grows if I do use this so CISync can store stuff locally if you want to and of course you will have to pay for the local store but it can actually do the same thing remotely right now only through SSH to some other side and in that case we store a little bit of temporary data but that's not substantial data that's a little bit so the idea really is when you create an archive like this we send to the other side a list of chunks that we would like to store there and then the other side tells us oh I already have these chunks but these ones I still need and then we send them the ones that it still needs so it's relatively efficient there but then again so far it was optimized about making delivery cheap not about creating making creation cheap right like not about the archiving step but of the extracting step this is changing now as I'm looking into solving the backup thing more because in the backup thing more suddenly the archiving thing becomes like the big problem because it needs to be fast and things like that. They probably take up I don't know 10 megabytes at most or something. Okay so the question was regarding if we generate in the next file then the changes made on the directory and we generate another in that file do we take benefit of the fact that we already indexed it once the answer to that is yes since yesterday. So it's a big thing like if we actually care about the backup case right this is what we need to optimize for right like I want to go for high frequency backup so what I'm really hoping to deliver eventually is that we can do your home directory every five minutes or so you do backup and you don't have to pay for it massive amounts of time. Linux makes it really really hard because we don't know what files have changed there is no generally accepted API for doing that right Butterfus is something like that but it doesn't really work and who uses Butterfus anyway and the other ones don't have that at all so what we actually do is we do what Git does and what everybody else does as well we stop the whole tree and see what has actually changed we try to be a little smarter than most people though we use file system generation counters which is a little known feature that most file systems on Linux that we have nobody knows how precisely they actually really defined but the essence is that supposedly in every change you make to file they are increased in some way and so if they haven't changed then you can use that to know that they haven't changed right so since yesterday is when my colleague emerged my patch that took benefit of that we have this caching thing in place where basically yeah so for the first iteration we serialize the whole thing as I explained but then we store information that last time I looked at this file in this version this mtime inode and generation counter it hashed to this thing and by the way in the chunk that refers to this hash and also this and this and this and this files with this inode number mtime blah blah blah and then I verify that if that's still the case and if that is the case then I just use the hash and I can I don't have to actually read stuff off disk I don't actually have to hash it again I don't actually have to compress it again so yes we do take benefit of that now since yesterday when the patch was merged like bup yes so the question was if I looked at the Borg backup yes like I mean a couple of systems that are like this they all end up the same thing we have nothing in this area like ideally if Linux was like a really good operating system we had some better APIs for this like for example recursive mtime it's a thing that 15 years ago people already wanted this and still not there and then people want that for search engines people want this for backup solutions if it was there I would so love to use it because we don't have recursive mtime we have to descend in the entire tree start everything and sucks thankfully Linux has been optimized for that thing because that's what everybody does right so that's why get actually pretty fast if it wasn't then yeah people wouldn't be fans of get so much so the question was regarding like is how are the index files and the stores linked up they aren't the idea really is that the data can come from everywhere and you have to tell cacing when you invoke it where which stores itself shall be using it can use any number of stores the idea is even that later on like it can use local seeds that means like local versions that you already have it can use stores but ultimately I want to go to some point where like we have a multicast protocol that on the local broadcast domain of your network can actually create us for these these blocks as well so the idea is basically that if you have this big cloud thingy installation where everybody runs every node runs the same operating system that instead of every single node starting the new version of the operating system they pick something downloaded and then for everything they constantly ask on a multicast for other blocks and they would be perfectly safe even because it's all cryptography secure right like if somebody gives you bullshit data you just calculate the hash figure out it's not right and throw it away but the idea really is that the model like this is not only useful for cloud it's also for IoT devices right like if you have lots of things like that so yeah there is on purpose implicit connection between the chunk store and the index because I want people to enable to get the chunks from whatever they like yeah if you're building on that question and this idea of multicast then have you considered as the next step DHT and then eventually a bit toward clone essentially I mean like the question was regarding what's the next step after adding this multicast stuff if we do something like BitTorrent or DHT stuff well I mean it's not my focus right now is image delivery and backup and for backup I'm not even sure how you would use torrents like stuff there but sure I mean sure there's lots of things possible right but this is not finished yet not even with the stuff that I'm doing and then I have ideas about lots of things but not even the multicast thing is in any way more than a start somewhere do you think I notify to find files directly with the type change so the question was regarding I notify if we can use I notify to get the notifications about changes so I notify is an awful idea I know it's another one of those Linux file system APIs that suck it's first of all the synchronous and it throws away stuff if the event queue is crowded then it throws away and if you do you're supposed to start everything anyway right like so then it doesn't do offline changes right so it basically means like if you took the hard disk out and put in some other device and made a change there you will never I notify won't tell you about that of course and the biggest problem is it's not recursive right like this is supposed to be for home directories that have a couple of gigabytes of size or terabytes whatever else and deep directories and I notify does not work recursively right like people try and then they run out of I not handles but it's not designed for that it's just no it doesn't work and also I really don't want an online component because online component means like it sucks for for like embedded stuff and things like that right I want a component that I look at the stuff as it's now and do the best out of it and then I go away and then eventually call me again and I do the best thing and I don't have to stay around and watch whatever you do because that's evil anyway that's more questions where's my slide about this I had a slide about this oh this is a slide of course so there's this slide here that's how what you can type and then you see like you have this CINX so if you don't specify a store explicitly CINX smart enough to look for the store next to where this is so it will automatically make up the URL http example.com default.castr and look for the stores there so that you have this one thing and then if this just works if you do this then you get a directory somewhere and then you can go into it and we'll download everything then it's actually kind of nice even because it does this progressively but while you access it like it has a prefetch thing in there but while you access it has pulls those with a higher priority and things like that well the file names are the hashes so there is nothing so the question is regarding where does the directory tree information come when you do something like this basically you know like there are multiple layers here right like there's the index thing and the index thing I have a random access thing interface to that right like I can basically say give me byte 1 million from my stream and then I have a relatively efficient like it's over log n algorithm to figure out in which chunk it is and then I can download that chunk from the internet wherever I have and maybe I have it already I don't know and then within it because I have random access on the upper layer as well about in the tar layer as well I just need to like basically the way tar works there is that it's the file form is supposed to be composable meaning that the serialization of a directory tree is strictly the serialization of all the stuff within it concatenated plus some header and footer right so it's strictly composable the composability is a nice thing if we want to recognize stuff but this basically means that there are never pointers from up to inner and from inner to upper to outside if you see what I mean and the random access stuff is reached by having at the end of every directory we have a little section table which we use to find the right file so ultimately what happens there basically is that it's a little bit like a file system but a weird file system because I actually I don't not only want random access while reading I also want like a serialized access, efficient serialized access while writing and reading so it's like this hybrid of something that is random access but also is streamable because a streamable functionality in tar is actually kind of nice and I thought that would be nice to keep so it's something like a file system and then you have the upper layer on the lower level and the upper layer figures out where to look on the lower level and translates that to actual chunks that have to be requested through ATP I hope that answers your question does that random access means that you can just pull any part of an image in the building so the question was regarding whether random access means that I can download any part of any image randomly yes so the question is whether you can extract parts of the archives, random parts, random subtrees and yes you can I think I did not implement that here though like you can't like but it's not that it wasn't possible it's just that it was too lazy. There's also by the way this thing here if this is the same thing as the mounting but on the block layer so as you see this mounts a CAABX instead of a CAADX and then if you do this you basically get a device that is a block device like any other you can mount it you can look at it with whatever tool you like and as you access it it downloads stuff in the background and makes it available locally kind of cool actually you can recognize things by the way, we already mentioned that hardlinks are pretty cool like you can do that with your multiple trees we also do reflinks, how many minutes do you have? So it does reflinks, this is new file system concept like Butterfus had that for ages and now XFS is getting that too reflinks are basically way how you can have two files in the file system and share the same data on disk so that the copies that you have don't come at the full price of being copies and all of that in a copy and write fashion so when you write to one of these two files it gets automatically duplicated so that they don't interfere with each other which is massively different from hardlinks because in hardlinks both ways into the file are identical and if you change one then the other one changes too the hardlink thing is an optional thing because it has these effects basically means hardlink, if you do the hardlink stuff then you can never write to the trees that you just extracted because you will then also modify the other trees that you might have the reflinks thing is however fully transparent to applications because of this copy and write nature that it has it's actually really cool this thing, like the fact that I use Butterfus and I extract one of my images and then the other different version of my images it's basically the disk space usage is like I don't know, 1% more I pay for each image version there identically in every way. I don't know about any backup system that can deliver anything like this by the way but yeah, cool stuff. Any questions otherwise at this point? Yes, I have a large file it is also useful if you have a IOT device which has a thermal size of 20 kilobytes or 100 kilobytes, and a very slow connection to it in your opinion it would be suitable? Well, so the question was regarding whether this is suitable very constrained systems like where you have very little space and very little time. I don't know, this is not the world I live in. I generally, this is not optimized for utter minimalism. This relies on open SSL and these kind of things. I mean, it's not that we pull in millions of dependencies, but we do pull in open SSL at minimum and libACL and these kind of things. And the stuff it does, it calculates caches and compresses and these kind of things. It's probably, it's not optimized for the tiniest bit. That said, I'm pretty sure it's fine for anything like arm, like the regular arm, I made a device that you find. It should be fine for Raspberry Pi perfectly. But if you're talking about microcontrollers, no, forget that. So, yeah. What about backup case? Will you add encryption? Yeah, that's a big thing. So let me quickly, like I got like two minutes or something. Three minutes. Reproducibility matters a lot to me. So here, actually, because we can't serialize that stuff and because it is so perfectly reproducibility, there's actually these two commands, digest and entry. And if you run those on any directory, it will actually calculate a digest for you that identifies that version of the tree perfectly. So what this actually does, it CA-tars it up, throws away all the data, but calculates the charsome over it. So it's a very nice way how you can get a chars for some directory and to see if the directory managed in any way. So it's completely out of scope for the rest of things, but it's kind of nice to have. CA-syncMtree is similar to this. Mtree is a format that the FreeBSD people came up with. It's a manifest tree. It basically is a list of files and directories that should be there and where the content should have this hash and where the metadata should be this and this and this. And CA-syncMtree allows you to very efficiently generate the same thing from a CA-index or from a raw file system. So I don't know, it's kind of useful this stuff. It's kind of the fringes of what we do. It's a side effect that we can do this very easily. But it's interesting to mention still. CA-sync can do local operation like directed file system. It can download from FTP, HTTP, HTTPS, FTP, like the usual set in SFTP. It can upload currently only through SSH, but that's not because I didn't want to support that, but mostly because I didn't find the time to yet. The idea is that later on maybe we get back ends for S3 or whatever else so that you can do a local backup and put it on Amazon or whatever you like. So this is interesting. You would get shifting for those few people who use containers with username spaces. They want to go into detail there. One other thing that's actually kind of nice is when you operate in the block device layer, usually the file systems that you store in your block devices are way smaller than the block devices themselves. Like for example, you have SquashFS and it's compressed. But the partition you put it in, usually you have at least twice the size because you want to have some room for upgrades and things like that. This is annoying for a sync like this. Because depending on big SD card or whatever it is you have in your embedded device is, you might end up with completely different petitions. Because there might be different amounts of space behind that and the space might not be initialized or made. It might be who knows. Anyway, I think it's relatively smart. It actually can read the size from the file system. So it has a minimal positive for a couple of important file system headers and figures out the actual size of the file system so it can do stuff. So the last bit is about the future. And that's the encryption stuff. So over Christmas I actually sat down with my brother who's a crypto postdoc about figuring out how we do the cryptography. So he'll get a paper out of it and I'll get the crypto system that will hopefully convince people enough. But the idea, yes, there's going to be crypto and it's going to be strong crypto. And the idea is basically I want to go for this model that people use it for the home directory. They can store it on servers that they don't have to trust. And those servers don't know what they're storing and they have no way to figure it out. And the information is all available on the client side. And we will still duplicate at least between you but potentially also with others. Anyway, no time anymore, right? But one question? One question, yeah. One question? What about preserving saving or restoring some fancy file labels like a Selenix or whatever? Yeah, the question was regarding what about saving, restoring fancy file metadata like a Selenix level? As mentioned, metadata control is important. So if you look at this, there's actually, I have this one slice here, slide here. Metadata controls and like you have these dash dash with and dash dash without things. And on these arguments you list explicitly the metadata you want to store and the metadata you wouldn't want to store. So unless a ton lot of metadata, that is as a Linux label, so extended attribute. There's project quota, there's UADs, whatever you like. And then depending on your use case, you say which ones you want and which ones you don't want, right? And like for the home directory backup thing you would probably say I'm not interested in user identity because the stuff is owned by you anyway, but you do want empty times. For the IoT thing you say, oh I care about ownership file, ownership, but I do not care about the entries. So you speak specifically what you want and I think they have about like 40 or so different bits that you can pick. Anyway, I think that's my time. Thank you very much. If you have any questions, ask them very soon because I'm heading off to the airport and yeah, unfortunately you couldn't see the other talk which I would really have loved to see. Thank you very much. Thank you. Thank you.


Hello, thank you for stopping by to consider Location Intelligence for Business. LaCourse looks at the application of core geospatial thinking and geospatial technologies, which by the way have a long legacy in real estate retail and logistics. Now recent advances in geospatial intelligence methods and technologies now support a wide range of new applications in these and many other industry sectors. And let me just make a note here that when I speak about business, there's two types of businesses, businesses that use money to make more money, and businesses that use money to deliver social services. So this course uncovers and explores the key principles involved in geodemographics, psychographics, segmentation, site selection, market analysis, risk and crisis management logistics. And we delve into the essential steps and methods employed to solve these problems with available geospatial tools and data at the appropriate scale. And when you say at the appropriate scale, it could be within a store, within a community, within a county, within a state, within a nation, or even globally. So the course really provides a foundation for geospatial intelligence thinking and business settings and is a basis subsequent geospatial analysis education. You'll engage with concepts through a number of hands-on lab activities followed by group discussions and personal reflections. And you'll have an opportunity to apply these techniques and these methods throughout the term and crescendo with a term project, though that you work in a team, and the team and you will have an interest in, in fact, the project. You'll design that and craft that to your liking. Now you may ask, do I need a background in geography and geospatial information systems? Yes, it's helpful, but not necessary. We have a lot of non-geographers who enjoy the course and we will utilize various software applications that are relatively straightforward and easy to follow. The key here is to get the underpinnings of the geospatial technologies and principles. Look forward to seeing you in Location Intelligence for Business.