Good afternoon. Welcome to the Durham Planning Commission. The members of the Durham Planning Commission have been appointed by city council and the county board of commissioners as an advisory board to the elected officials. You should know that the elected officials have to final say so on any issue before us tonight. If you wish to speak on an agenda item, please go to the table to my left and sign up to speak. For those who are wishing to speak, please state your name and your address clearly when you come to the podium. Please speak clearly and enter the microphone. Each side wishing to speak in favor of an item and those wishing to speak in opposition to an item will have 10 minutes to present each side. Time will be divided amongst all persons wishing to speak. If you are here opposing the rezoning tonight, you should be aware of what's called a protest petition. A protest petition can be helpful to those who live in the rezoning area. Please consult the planning department staff for any details on a protest petition and they will be happy to help you. You should also keep in constant touch with the planning departments as to when your case will go before the elected officials for a final vote. Finally, all motions are stated in the affirmative. So if a motion fails or ties, the recommendation is for denial. Thank you. Can we have roll call? Commissioner Mitchell Allen. Commissioner Beechwood. Commissioner Board. Commissioner Davis. Commissioner Gibbs. Vice Chair Harris. President. Chair Jones. President. Commissioner Kimball. Commissioner Martin. President. Commissioner Padgett. Commissioner Smutsky. Here. Commissioner Whitley. Here. Commissioner Winers. Here. Thank you. We did receive an email from both Commissioner Beechwood and Gibbs requesting an excused absence, which I did grant. We don't need to take a motion. Vote on that, too. Do we have any adjustments to the agenda? Good evening, commissioners. Pat Young with the Planning Department. We do not have any adjustments to tonight's agenda, but I will certify for the record that all public hearing items before you tonight have been properly advertised in accordance with the provisions of law. And we do have affidavits to that effect on file with the Planning Department. Thank you. All right, thank you. Of the minutes. The move didn't properly second all those in favor. Let it be known by raising your right hand. Any opposed? Motion carries. So we move down to public hearing. We'll open up the public hearing for case A-120-009, plan amendment and zoning case Z-120-0020. Good afternoon, commissioners. I'm Hannah Jacobson with the Planning Department. And I'll be presenting a plan amendment case A-120-009 for the Dell Web Entry Monuments. The applicant is Horvath Associates, and they are proposing to amend approximately 2.67 acres of the future land use map from low density residential to institutional. As Ms. Wolf will describe in greater detail during the zoning map presentation, this change would allow the construction of entryway monuments into the Dell Web Carolina Arbor's residential project. This is a previously approved project in Eastern Durham County. You can see the outline of it dashed in red. However, the discussion tonight would impact three locations, two along Leesville Road and one along Andrews Chapel Road. These are aerial images showing the approximate boundaries of the proposed change. I believe they're a bit out of date as construction has already started and a number of these areas on the residential project. In their justification statement, the applicant points out that their proposed concept for the entry monuments does not fit very cleanly into the categories of the future land use map. The zoning map, the zoning district that they're proposing, O&I, is probably the best for the proposal. But in order to be compatible with the future land use map, it means that they need to either be designated as office or as institutional. And they chose institutional because, as they point out, there are already a number of institutional uses scattered around Durham and specifically in this area. There is a school and a number of places of worship. So staff has reviewed the proposal against the four criteria for plan amendments that's in the unified development ordinance. Staff agrees with the applicant that this is a pretty unusual request and it doesn't fit very cleanly into the framework of our plans and our policies. However, institutional uses are very broadly defined and so entry monuments could possibly fit within that category and be appropriate in this location given the size and magnitude of the Dell Web Project. As I mentioned before, the project is in Eastern Durham County and is an area that's been transitioning from rural to more suburban. And again, while these sites are not designated as institutional on the future land use map, there are a number of existing uses in that area. So staff finds that the proposal is compatible with existing future land use patterns. Staff also determined that the proposal does not create adverse impacts, either for traffic, environmental protection, or future demand for land uses. And finally that the site is of adequate shape and size to accommodate the proposed land uses. So it meets all of the criteria for plan amendments and staff is recommending approval. Good evening, Amy Wolfe with the Planning Department and I will present the zoning map change case to you, case Z120020 for Dell Web Entry Monuments. The applicant is Horvath Associates. It is within the city's jurisdiction and the request is from the present designation of plan development residential 3.00, excuse me, 3.700 to office institutional with a development plan. The total site area is 2.67 acres. That's divided into three individual geographies and the proposed uses for entry monument signage. The site is shown here as Ms. Jacobson mentioned. It's along Andrews Chapel Road. That's site entry number one. Site entry number two is the western location on Leesville Road and site entry three is the remaining site. Site entrance number three is within the FJB Watershed Protection Overlay Area, which is represented on this map by the blue line. This request does meet the standards for the office institutional district shown here. This case is also unique in that it is a combined development plan site plan. So what you see in your packet in the staff report in its entirety is a commitment with all the details shown. And it is a combination, what you're seeing is a combination of a wall and a freestanding monument sign. So those are the unified development ordinances standards that are applied in addition to the OI standard districts. So the first site entrance number one is at 804 Andrews Chapel Road shown here. It is the southern entry to the project. And again, conditions have changed on this site since this development plan was produced and it will be updated. You'll see on the right hand side is the site area and the left hand side of this slide shows where the proposed wall and sign will be. Site entrance one is 1.58 acres. Site entrance two at 5814 Leesville Road is 0.70 acres. And again, it represents the same conditions. You have your existing conditions on the right hand side. And on the left, it shows the wall with the sidewalks and all the requirements that meet our site plan standards. And entrance number three is the smallest of the three sites at 0.39 acres and also shows the wall and the proposed sidewalk. And all these are detailed in the staff report. Just a summary of the commitments because as I've mentioned, all of the elements you see on the plan are commitments. There are three entry monument signs as shown. There's no building or parking proposed at these sites. There's public right-of-way provided through each entrance and there's right-of-way dedication along Leesville Road and Andrews Chapel Road. The impervious surface is 1,705 square feet and the total site, which this project is part of the larger Dell website. The impervious surface is one of the components that is looked at through the entire project but it does satisfy the requirements for the impervious surface and it's recovered at 20%. And again, all the graphic commitments of this plan which was reviewed as a site plan with its own case number and review process are committed as shown. The site is not consistent with the future land use map. However, you've just heard the plan amendment request. Staff is supporting it. It does satisfy and meet the policies that are applicable to the site from our comprehensive plan and staff determines that should the plan and then it be approved, this request would be consistent with the comprehensive plan and other adopted policies and I do wanna point out that because it is a combined development plan site plan that the development review board did hear this review this application site plan on April 19th and they approved it by a vote of 9-0 and that recommendation will also move forward to the city council. Thank you. We have one person signed up to speak. Ron Horvath, 10 minutes. Thanks. Mr. Chairman, members of the Planning Commission, good evening. I'll try not to take all 10 minutes tonight. The staff report and the staff have, they've done an excellent job and you've heard it several times throughout both presentations. This is a unique situation. The UDO, the way it is set up with PDRs and residential development, it minimizes the size of signage that you're allowed within those residential districts to 32 square feet. Placing that size sign as far back from the right-of-way as we're proposing, you won't see it. Hence, we needed to get into a more commercial or institutional district that allowed us to do larger signs, as well as the walls. Walls inside a 50 feet of the public right-of-way are limited to a certain height and we feel this entry design that brings you into the Dellweb community makes a statement, makes a very broad statement, very positive one. Water features, landscaping, mounding and stone walls. It's not just a little entry, it's a massive, well-defined entrance in the Durham. And this is coming, the main one coming off Andrew's Chapel will be up from T.W. Alexander, coming out of Briar Creek in US 70. So I ask for your support for this and we'll be available for any questions. Thank you. Thank you.  All right, Mr. Smulski. Thank you, Mr. Chairman. This question is for staff, I guess, Amy. On the report, it says that it meets the minimum square footage, but yet one of the locations is only 16,000 square feet. So are we taking all three as one or? I think I'm referring to one of the slides in the presentation. Okay. Thanks for the question. The director did determine that this is one site for the OI district and it is part of the larger Dell Web community. So under the director's determination, it does satisfy the ordinance. And if I may add, there are property lines that go outside the zoning district and that's still part of the same lot. So we're able to accomplish it that way. Don't get me wrong. Okay, I'm looking out for the zoning ordinance. Yes, sir. But that goes along with my other question. I guess for staff, as more of a general thing, and I guess the developer could help me with this, is this going to be the start of a flood of requests to rezone things around Durham to get around the sign ordinance? I cannot answer that. I know this is a unique situation where, through discussions with the director and interpretation of the ordinance, that this was the tool used for this particular project. I can't speak to any future projects. I'm no big fan of sign ordinances, but as long as we have one, I don't like to see end runs going around it. So how is this project so unique that we don't start seeing this all over Durham? The time and expense involved in doing it this way, it's not gonna happen every day. This is gonna be, it's a unique situation. I do not see this happening on very many projects. If anything, it has brought to the planning staff's attention that there is, there needs to be something in the sign ordinance that fits certain categories of the larger developments for residential. That may be addressed later. And that was something that you had mentioned, right? Yeah. But again, that has to be brought back in a text amendment if that goes that way. Right now, I don't see very many projects spending the time and money doing this rezoning effort like we have. Those are all the questions I have at this time. Thank you, sir. Mr. Kimball. Test. There we go. Looking at the contour lines, especially entry three, it looks like we have a saddle that runs back off the road. That is kind of channeling water from actually the road back plus two on the side. And you have almost like a stream going down. Yeah. How are you going to mitigate that? That's the opposite. That's a berm. Okay, a berm. Rather than a valley draining, it's actually a berm directing the water back the other correction. Okay, so are you having a retention pond back there? It'll tie in with the drainage on the rest of the development. Okay. All this goes to some central ponds for treatment. We just haven't shown that additional treatment off site yet, but it is within the Dell Web community. Okay. Thank you. That was my major question. Dr. Winters. I just, I have looked at the pictures in the packet and it's a very attractive sign, but it's hard for me to tell what the scale of it is just because the print is so small and everything. Could you kind of just describe how big this sign is and how far it is back from the road? And are there some other signs similar to this in other places in the community? This is still fitting within the sign ordinance for commercial, which is the 80 square feet. And if you notice, we did put some human figures near the sign to give you some scale, not counting the sign phase, the background, like we're following the sign ordinance just under a commercial or office guideline. So it's 80 square feet. The top of the sign is about six feet high. Thank you. Is about six feet high. The letters vary from about two foot. There are dimensions at the bottom, like Carolina Arbor's on the one is 27 feet across. The height of the letters are four foot two. No, not even that, I'm sorry. Two foot eight. So they're two foot eight by and they're spaced out. Yeah. And is the walls about six feet tall? The walls actually are run, they vary six, eight and 10 feet tall. Yeah. The wall itself is limited to the eight and then you have the columns that go up above there at 10 feet. And how far back from the road is this? I mean, usually we don't have eight feet walls around residential areas. Of course, I know it's not all around. It's not, it's just the entryway. That's one of the reasons, that's the second part of why we're bringing this to council is we would normally have to go through board of adjustment, but there is a mechanism by carrying the same plan through council on a zoning case they can approve that variation. And they are set anywhere from 25 to about 50 feet back, they vary. Is it gonna be lighted at night? There'll be up lights on them, yes. In fact, the walls and the landscaping around there will have up lights. Do we have anyone else? We get a motion. Been moved and property second, all those in favor? Let it be on my raising your right hand. Motion carries 11 to zero. All right, thank you. We'll move down to be best plan. Oh, yes, ma'am. Was that for the plan amendment or the zoning? Correct. All right, so can we get a motion for the zoning? All right, so the zoning been moved and property second, all those in favor? Show them by right hand. Any opposition? Thank you all. Okay, we'll move down to item B. That's plan amendment A-130-003 in zoning case Z-13-006. Need a bit of technical assistance. I apologize for the delay. Good evening, I'm Laura Woods and I will be presenting case A-13-003. Rustica Oaks subdivision. This is an application by Rustica Oaks, LLC to amend the land use on 1819 Rustica Drive from low density residential to low medium density residential. And the site is surrounded to the west, north and east by developing subdivision. It is also called Rustica Oaks by the same developer and to the south by a single family home and just to the south of that, Windmore at the Park subdivision. This is in the suburban tier and it comprises approximately 0.66 acres. According to the applicant, the proposed use is more compatible with the surrounding land use patterns in the current land use designation and the proposed use will allow for the property to be subdivided into two or more single family residential lots consistent with the lot sizes in the developing Rustica Oaks subdivision and Windmore Park at the subdivision, Windmore at the Park subdivision to the south. Here are the four plan amendment criteria we use to evaluate these applications. As you saw previously and staff agrees that the first of these criteria is met by the application, the proposed land use is consistent with adopted plans and policies, specifically policy 2.3.1B. The second criteria, staff also agrees, it meets this criteria that the proposed use is compatible with existing or future land use patterns. The lot sizes suggested by the application are consistent with the developing subdivision that, as I said, lies to the west, north and east of the site. It also meets the third criterion and it does not create substantial adverse impacts. As a matter of fact, the impacts are quite minimal. Given that it's quite small site, it meets the fourth criteria as well. It is of adequate shape and size to accommodate the proposed land use. Therefore, staff agrees in all cases that it meets the criteria for plan amendments and staff recommends approval. Thank you very much. Good evening again, Amy Wolf with the Planning Department and I will present the companion zoning case for the plan amendment you just heard. Case Z130006, Rustica Oaks Subdivision is an application by Rustica Oaks Development LLC. It is within the city's jurisdiction and the request is from the present zoning designation of residential rural to residential suburban eight. The site area is 0.659 acres and the proposed use is for single family residential. The site is at 1819 Rustica Drive. As Ms. Woods just mentioned, it's east of South Austin Avenue and west of Magnolia Tree Lane and it is within the suburban tier. There are no overlays applicable to this site. The request does meet the standards for the RS8 zoning district with a maximum density of five units an acre. I just wanna point out that it's possible that this site, which is 0.659 acres could be divided into three lots at the most. The request is not consistent with the future land use map. However, the plan amendment you just heard requests a consistent category of low medium density residential. The existing is low density residential. The request does meet the policies of all the other applicable policies of the comprehensive plan and staff determines that if the plan amendments approve this request would be consistent with the comprehensive plan and other adopted policies and ordinances. And that concludes the request. We have one person signed up to speak for. Good evening, I'm Michael Blunt with the Keystone Corporation. We're the developer of the Rustica Subdivision surrounding this piece of property. I wanted to, I'll be very brief, this parcel owner at the time in 06 when we originally began the planning for the subdivision wasn't interested in selling his property. And long after the process of being approved and beginning construction, he decided he did wanna sell and he wanted to move. And we worked out a deal to buy his parcel. We've since closed on this piece of property. He's been able to move to another place in South Durham and we are actually moving this house to another piece of property in North Durham for a city employee with the water management department for the city of Durham. The one clarification on the name of the subdivision is not necessarily Rustica Oaks. The intent would be to subdivide this parcel into three lots that would be very similar to those lots that have been subdivided around it to generally just blend in with the approved site plan that we had to go through in 2007. I think that's about it. We think it will make things look much more coherent with a better streetscape across Rustica Drive going through this neighborhood and give the subdivision more opportunity to succeed in sales and move through and be developed as planned. Thank you for your time and I'm here for any questions. Thank you. We'll close the public hearing and bring it back before the commission. Do we have any ones on up to speak? Mr. Kimball. Question, ma'am. On the, I see that we're moving across Rustica Drive on this and normally we look at roads being the boundaries of zoning and all the housing currently on Rustica Drive and down Magnolia Tree Lane is that all part of the Rustic development? Not to my knowledge. The development, I think Mr. Blunt was referring to is to the north of Rustica Drive on the same side of the street. So we can come back to the mic. The map that you're looking at now, all of the lots subdivided surrounding this parcel are a part of the Rustic Oak subdivision. The entire parcel that's labeled as PDR 4.00 is encompasses the entire property for the Rustic Oak subdivision. It's a total of 276 lots at build out. The ones that are shown now are just the lots that have been platted thus far. We'll continue to the north and to the east subdividing lots and phases per the approved site plan until it's build out per that site plan. So right now they're just lot marks? They're built, the majority of them, they're under construction currently. Okay, have you, why did you consider going to the higher density just for this piece when everything surrounding it is at the lower density? Everything surrounding it is actually at a higher density. I believe as a PDR 4.0 that allows for more units per acre. For dwelling units per acre. And this is four to eight, I believe. I know that the zoning only allows for three lots per this parcel. That's correct. And I'm not sure if there's a distinction here. The plan amendment is actually for a higher density. We have a table in our comprehensive plan that allows, that matches the zoning district to the land use categories. And in this case, RS eight, which the applicant was looking to get three lots, RS which could be achieved under the RS eight designation could only be, could not be accommodated with the existing plan amendment. And therefore you'll see the shift of the plan amendment which does, which matches the future land use designation to the south. But it's just a numbers wise matching what the proposed goal is versus what tools we have to use to achieve that is what you're seeing. Okay, thank you. Commissioner Smutski. Just out of curiosity, how would you divide this into three parcels? Well, I'm working on that now with the builders that would be building on those lots. I believe the zoning requires that I have one subdivided lot have 60 feet of frontage on Rustica Drive. And I'm kind of looking at Amy, hoping she can confirm this for me. But that all lots from the subdivided parcel would have to have some frontage. Meaning that I could likely get two lots blending in with the two on the corner there and then have one flag lot behind it. There'd be a larger lot to the rear backing up to the other lots. It's an odd geometry, but it works. Meaning a driveway from Rustica Drive accessing a lot behind those fronting Rustica Drive. Thank you. If I have no one else, can we get a motion for the plan amendment? Sorry. So it's been moved in property second for the, excuse me, second. Can we get a second? Second. All right, thank you. All those in favor, let it be known by raising your right hand. Any opposition? Motion carries 11 to zero. Can we get a motion on zoning case? All right, it's been moved in property second. All those in favor, let it be known by raising your right hand. Motion carries 11 to zero. Thank you. All right, thank you. Now to the planning department work program. Good afternoon, I'm Keith Luck with the Durham City County Planning Department. Pleased to present the Planning Department's fiscal year 2014 work program to you this evening. As you probably know, the interlocal agreement that establishes joint planning functions in Durham requires that the planning director create an annual work program and present it to the planning commission, to the city council, and to the board of county commissioners. And that's what's before you tonight. The work program is based on 35 full-time employees, which is the same for this proposed, for this coming year as we have presently. And our budget request to the city and county managers, we requested two additional positions to deal with increased workload. We have, we project a lot more, not a lot more, a moderate increase in our case load over the next fiscal year. But also we have several new tasks that we've been asked to do. And I'll mention those in just a few minutes. The managers have not made their budget recommendations to the elected officials yet. I believe that happens in the next two or three weeks. But we are kind of full up in terms of the work that we're doing. We have no capacity to take on any additional projects at this point. The work program items can be, the work program items can be characterized as one of three ways. The first is ongoing projects and processes that respond to development proposals. The development review folks in our department review any new development proposed for consistency with our plans, policies and ordinances. And you know some of these, they come before you, zoning map changes, but you also don't see a lot of those other site plans and subdivision plans, although you know that's going on in the background. There's a second type of work program items, ongoing projects and processes that respond to policies that our governing boards have set up. Like public information, we have several staff in our department who man our customer, excuse me staff, our customer service center and provide information to the public. Sometimes developers, but sometimes just the general public who need information about zoning or their property in Durham. We provide support for boards and commissions and we also engage in department management, all of those kinds of things. Those are all set kind of by the policy of the governing boards. We also have discretionary projects. These are the ones where we really can decide what projects we would like to work on in the coming year. They're not mandated, but we get to pick weaving the elected officials, get to pick where the planning department would spend its time. A couple of examples of the North research triangle park transit station, maybe a medical center, compact neighborhood and design district. Again, around the transit station, UDO text amendments that you folks see on a regular basis. We have these departmental objectives that sort of is how we organize our work program. And I'm gonna go into each one of these in just a little bit. I mentioned already the development plans that we see and this sort of generally whatever comes in the door we respond to. And again, here's a list of them. You may not see special use permits or certificates of appropriateness very often. And there's even another group of things that you probably don't see very often, variances, which go to the Board of Adjustment, street closings or street renaming that are council items, limited agricultural permits, chicken permit, outdoor seating permits, which are brand new things in the downtown and design districts, family care home and group home compliance. That's also a brand new item. We're looking more and more at building permits to ensure that the applications for building permits are consistent with the zoning rules. We have a group of staff engaged in zoning administration. That's enforcement. We have several enforcement officers who respond to complaints from the community, go out and investigate and if necessary issue a notice of violation. But they also have proactive enforcement where folks actually go out and take a look at signs or cars in the front yard, patrol the neighborhoods to try to spot those zoning enforcement issues that we need to follow up on. The zoning administration folks also deal with site compliance, making sure that each and every new construction project is built consistent with the approved and adopted site plan. We've found in the past, sometimes that doesn't happen, so our compliance people are out there looking at building placement, shrubs, parking, things like that. We mentioned comprehensive planning. We have long range plans that relate to the plans that you are amending or making recommendations about amending. We also have regional transit plans we're involved in. We get involved in text amendments. And again, you see those quite often, unified development ordinance text amendments. We deal with historic preservation plans. We've got a couple of neighborhoods that have requested local historic districts and we're working on those. We also get involved in trails and green waste planning to keep our long range plans up to date. We provide support for boards and commissions. The two governing boards that we work with, the Joint City County Planning Committee, that's those long initials there. Two quasi-judicial boards, that's the Historic Preservation Commission and the Board of Adjustment. They operate differently from advisory boards. We have four advisory boards that we work with, the Environmental Affairs Board, the Appearance Commission, the Durham Open Space and Trails Commission, and I think I'm forgetting the fourth one. Planning Commission, I'm sorry. Thank you. And three different regional boards that we deal with, the Triangle J Center of the Region Group, the Durham Chapel Hill Orange Work Group, and forgetting what the third one of those is too. We provide staff support for each of these, maintaining membership lists, setting up meetings, and minutes, all those kinds of things. And I mentioned earlier our public information function. We have a customer service center in the planning department. We maintain that website that people love so much because they don't have to talk to us. They can find information on the website. We do a lot of zoning verification. Businesses and banks oftentimes want some official word from the planning department, that in fact a parcel is zoned for the use that's either there or being proposed. We spit out a lot of the zoning enforcement, I'm sorry, zoning verification letters to people on a regular basis. So before I get to the staff recommendation, just wanna kinda reiterate a couple of pieces. One is that in the agenda materials that you have at the very end of part A, which is the long list of work program items, there's another list of the things that we're not gonna be able to get to because of SAF and resource issues. That's not to say we don't think they're important. We have some very specific ideas about how important those are. We just have a limited amount of staff to work on those kinds of items, especially the housing assessment and affordability plan. We have neighborhood protection overlay for the West Durham district that they've requested, potentially other compact neighborhood design districts along the regional transit line. So those are some of the things that we just aren't gonna be able to get to. So again, to reiterate, the planning department is working at sort of full tilt. We don't have any capacity to take on new items on this work program without A, additional resources, or B, removing some of the items that are on the proposed work program right now. So our recommendation to you is to receive this report and make a recommendation to the city council on board of county commissioners with revisions as you may see appropriate. Do we have any questions? Mr. Harris. I just have one question. How much overlap with other agencies within this county and city do you have? Or are there overlaps? Well, I'm not sure what you mean by overlap. We coordinate with- In other words, you inspect houses. Are the other agencies inspecting houses or, you know, in the inspections division, do you have overlap with other agencies doing the same job? I would say probably no. There are other, our zoning enforcement people enforce the zoning ordinance. There are other staff people in the neighborhood improvement services that enforce the housing code, the inspections department enforces the building code, similar things, but I don't believe there is any overlap in what we do in terms of other city or county agencies. Mr. Osamachi. Thank you. On the development review, who does that development review? Your team? Pat is the assistant director for development. He supervises two planning supervisors who supervise a group of staff. Scott is one of them involved in zoning and land use issues. Alicia Baylor-Taylor is our planning supervisor that manages a group of people that do site plan and subdivision review. And Scott also provides assistance to the Board of Adjustment that deals with variances or major and minor special use permits. Did this have anything to do with the development review board? Yes, very much. What happened to the development review board? The development review board is, well. Maybe Pat can help me explain the nature of the development review board related to the de-discretionizing effort that's going on. Sure, Pat Young with the planning department. The short answer to your question is that the city voted for a series of text amendments to the unified development ordinance that eliminated the development review board for applications submitted after June 1st of this year. The reason for that was this. The development review board really served one function, which was to allow administrative variations to ordinance standards. An example that I'll use is the location of bicycle parking that's required on commercial sites. The ordinance requires it be closer to the front door of a non-residential, a business, or an institution than any of the vehicular spaces. But the development review board had the discretion to look at the facts, the circumstances of a development site and at the applicant's request grant administrative variation to that location. There was a state law passed in 2009 that prohibited administrators, meaning unelected officials such as ourselves, from making those decisions without a quasi-judicial process, which is with the Board of Adjustment and Historic Preservation Commission used fact-finding process that is based on evidence and criteria. So that's probably a longer answer than you may have wanted, but that's what happened to the development review board. When I was preparing this item for your agenda, I was anticipating that both city and county would act on that set of unified development ordinances, which would remove from our work program the unified development, I'm sorry, the development review board in the interim the county has opted not to adopt that yet. They're considering some other options. And so it's not in what's in front of you, although what we bring to the city and county governing boards will have the development review board for county only. All right, great, thank you. Dr. Winters. Do you expect the future high priority projects to be on the agenda for FY15? I would certainly hope so. That would require us completing some other items that are on this work program, so we have staff time to do it and I anticipate that'll happen, yes. They may be multi-year projects that we will be able to begin in the next fiscal year and continue perhaps after that, but yes, I would very much hope that those items can get included as soon as we finish up some of our present items. Commissioner Campbell. Thank you. In looking at this, just like with any other business, there are certain projects that are tiered projects, in other words silo type projects, and then there's other type projects that are horizontal and roll through just about everything, such as the UDO text changes, that's a horizontal look. You have to look at the entire thing in order to really evaluate where you're going, future planning map, same thing, versus site plans, which is pretty siloed in what they're doing. I guess my question is why isn't housing affordability an assessment a horizontal looking project rather than a siloed project, especially when it comes down to regional transit planning, new area strategic infrastructure plan, your compact neighborhoods? Why isn't that part of the process rather than making it something so singly siloed? In the past, our work program has included, as you say, one of those siloed items, it was to amend the unified development ordinance related to the affordable housing density bonus. As some of our staff, including Pat, have begun to look at that, they realized that the density bonus itself hasn't been used much because it doesn't really provide a real incentive for developers to come in and build affordable housing. So while we have an item in our work program under the text amendments, to take a quick look at that and see if we can make some fairly short term, quick changes to the unified development ordinance that might stimulate affordable housing production, we do recognize that item in the next set of priorities shows a housing assessment and affordability plan. We recognize that the Department of Economic Development, Economic and Workforce Development needs to be involved in a larger effort to identify an affordable housing strategy, community development department, neighborhood improvement services, planning, and probably several other departments too. So we have kind of recognized that that project in particular would span across quite a few different departments. The planning department's role when that project gets started would be probably just kind of coordinating a lot of other staff efforts among other city and county departments. But couldn't we start the ball rolling through UDI, text change, where I see this going is that around where our tax money is now being collected for transportation and light rail, development going along those corridors that leave people who would best benefit from light transit not to be able to participate in it. And unless we get ahead of this curve or ahead of this issue, it's going to be something that 10 years from now, 15 years from now, we're gonna be at the same place we are today. And that is not helping the citizens of Durham that need the most of public transportation to be able to work. Everything we're hearing from the Triangle Transit Authority and our own neighborhood improvement services has suggested that we need to be starting on these things now to preserve presently affordable housing or preserve opportunities for future affordable housing. And it can't start too soon, definitely. Then why is it in a proposed, instead of rolling it into some existing and spreading it out, instead of we're not gonna work on unless we get approved of staffing positions? Well, somebody's got to set the priorities to say that some items in this work program, if we're going to take on that larger role, the city manager needs to make some decisions, city and county managers need to make some decisions about the work program items that the planning department's proposing relative to other departments, essentially to take things off of here or provide additional resources. I'm understanding what you're saying. I would love to be able to have the resources to jump in and start that more comprehensive, affordable housing strategy. Or just putting it on the part of the plate of when you're doing a tax change. Well, let's, and this takes it to the Joint City County Planning Committee to be able to start to direct some of this from our elected officials for sure. But I know affordable housing is something that this county is in desperate need of. I'm off my high horse. Thank you. Any other questions, comments for the work program? All right, thank you. And we definitely want to thank the planning staff for their hard work for what they did last year and the future projects. I think certainly as the Durham County and city continue to grow, we will definitely need more people in the planning department to help move along some of these projects and make the entire process more efficient. And certainly to avoid the overlap that we spoke of earlier. But I think certainly after the previous work session we had last month, affordable housing is a complex issue. And I actually did some independent research on some of the things that we talked about and see and I looked at what other cities are doing. And it's certainly not a one department show. The characteristics of Durham is going to certainly take more than the planning department to figure out the affordable housing dilemma we have here in the city of Durham. And we'll move on. We want to thank you. Policy input and engagement. You have a question? Somebody has a question? I'm sorry. Reverend Wood, you had a question? This item is on your agenda. I'm sorry, Keith Luck with the planning department. Yes, sir. This item is on your agenda as a followup to your retreat that you held last month. We talked about several strategies that we might be able to employ to get you folks more involved in long range planning efforts. I think one of the things that we recommended was perhaps a quarterly report on long range planning projects to give you some idea of what's going on and what kind of progress we're making. I think you weighed in and said perhaps a report at the beginning of each of those long range planning projects to help you understand the scope of the project, the timing, the staff involved, things like that. And I think we left it where I asked you to think about it and see if you had any different opinions or different directions to proceed. If you don't and if you wish us to follow up, I think that would be relatively easy for us to do to give you an initial report about projects that we're starting and then a quarterly report to touch base on all of the long range planning projects in our work program. Correct. And I think we don't have any objection. That's probably the way it probably should go. One statement, sir. Yeah, I have been following the Ruger Mountain Village or the Village of Ruger Mountain and it's been very interesting to follow that and just the report at the beginning and then the diverse milestones through there is very interesting. And that will be all we would need in order to keep us at the speed about what's going on. But that's been a very interesting project and I appreciate being brought up. Thank you. Reverend Wheeler, you had a question? Yes, it was not so much what's in there is what's not in there. Durham is a growing city and we do need to do something about housing, but we also need to do something about parking. And there's no development plan for that. We're talking about building loops and loops. I mean, loops downtown, we're talking about the different changes. I know the East End is gonna have an East End connector but it's gonna bring more people into the city. And right now we have available space and I was expecting while I was reading the work planning is to figure out, are we thinking about how we're gonna use available space for like projects like Park and Ride that would enhance, you know, but it wasn't there. So, y'all guys thinking about that? And if you are, where did I find it? Several places. The comprehensive plan that Durham approved in 2005, I'm telling you something you already know, I'm sure, is organized around new neighborhoods surrounding regional transit stations along a transit line that would run, actually it's evolved between two lines, one from Raleigh to Durham and another light rail line from Durham to Chapel Hill. And much of that goes through the heart of the city. We have a couple of projects in here that speak specifically to how public infrastructure at those transit stations would operate. 3.1.2 is called the Station Area Strategic Infrastructure Project. Hannah, who was here a few minutes ago as the project lead on that. That's trying to look at each of the transit stations and trying to determine what kinds of infrastructure improvements are we gonna need to make it easy for people to get to and from the transit station from the surrounding neighborhoods on the day that the trains start to run. That's the first step. The second step is how are we going to support the additional infrastructure needs around the transit stations in terms of sewer and water and parking. That's sort of the larger set of public infrastructure items around the transit station. So those, like I said, those definitely run through the heart of Durham and the transit line does and those stations along with the transit line begin to serve the needs of those inner city neighborhoods. Not all of them of course because not everything is associated with a transit station. But that's one example of how it doesn't say exactly what you described but it begins to provide some benefit to those populations. I was, right now we have two major problems. Central, North Carolina Central and downtown. Wait a minute. And then you have the West End, Broad Street, Ninth Street. You know, we already know we have those problems.  But downtown we have all these warehouses which is quickly running into at least their plans for residential housing, which I'm not that excited about because I want to see a commercial. If we're gonna expand commercially, it makes sense to go that way from downtown. But even if that happens, where will parking take place? And who's thinking about planning out where that should happen? And so we would know don't trade on it. Well, of course, you know, at least in the downtown area, the parking has been viewed as a public amenity. The city and county are invested in parking garages to essentially let us have a strategy where new development does not require new parking. Oftentimes that development wants to have it, the market demands that that new development be associated with parking in a lot of other places outside of the downtown area. It's not a public amenity so that any new developer has to provide the parking for that particular development project. Any other? Thank you, sir. So we'll move down to any announcements. Good evening, Pat Young again with the planning department. We, I mentioned briefly to the chair before the meeting, we do not have any items that are ready for you in June. So we're gonna cancel the June meeting, which would have normally been June 11th. Since we have no business, doesn't require a motion since there's no business. We will have at least two items in July. So we will be having the July meeting. So what that means is that this tonight is Commissioner Mitchell Allen and Commissioner Martin's last meeting. We would ask as we had last year, we also coincidentally canceled the June meeting last year to have you two if you're willing to come back at the beginning of the July meeting and we can honor you with a very well-deserved resolution and recognition. That's it. All right, thank you. And we wanted to definitely thank the staff again for putting together that retreat last month. It was great, very informative and hopefully it kind of brought greater context to what it is that we do up here for the public, for the city of Durham and Durham County residents, because I know each one of us has stopped on the street at various times. People having questions about what's going on here, there and everywhere, and even with stuff that don't have anything to do with planning, we still get asked. So I wanna thank each one of y'all individually. And certainly thank Commissioner Martin and Miss Mitchell Allen for your dedicated service to the Durham Planning Commission. And if we can, we can give them a round of applause since this is their last sitting meeting. Thank you. And of all hearts and minds of clear, we'll go ahead and dismiss the adjournment. Thank you.


So what I want to do is just open this up, brighten that up a little bit, add a little bit of movement, a little bit of height. When I look at hair or my clients, bone structure on their face, right here, right at the cheekbone, keep my fingers level there, right here on the cheekbone, this is kind of where I want that height to build up. So I want to open it up and I want to pull up some of that height there. That's what I love about a curtain fringe because it kind of does that for me. So it builds that volume and it's easy for my guests to recreate that when they go home and they have to do their hair themselves. So what I want to do is I want to follow this hairline up. I'm using a wide tooth comb at this point because I don't like to pull on the hair too much and I don't need a lot of tension when I cut dry hair. So I go up from this point, up to create the first line in this triangle section that I'm going to be creating in the hair. I'll twist that just lightly twist it and I'm going to slide a clip up underneath just to hold it out of the way. So we're following the hairline up through to this top point of the head, right where the head starts to curve from that fringe area. Got my two triangles. So it comes from this point here all the way down the hairline.  I'm going to take out the left-hand side section because we're going to do this cut in two sections. So what I'm doing is I'm pulling this hair not to the center bridge of the nose. I want to pull it past to the other eyebrow, to the edge of the other eyebrow. That's where I'm going to cut it. Let me break this down just a little bit. The guide is the edge of the eyebrow. A lot of times we take guides from other pieces of hair but for me to keep balance on the face I use the face as a guide on each side. So the edge of the eyebrow on both sides of the head is where I brought each section to. My fingers are going to be parallel to the wall. I'm holding the hair out and my fingers will be parallel to the wall and I'm over directing it over to the other eyebrow. What is that doing? That's creating over direction. What over direction does is it removes when you over direct you cut the hair here but it pulls hair from further away. So this hair that's sitting right here on the hairline is going to be the longest point. So what that's going to do is it's going to be shortest up here going to a longer point which will create that kind of open curtain fringe look. Right here in front of me and then I'll start cutting. Notice the over direction and when I let this go it's going to create. See that already? That kick. A little bit of layering in there so it makes it nice and light but it kicks open off of the face. I'm going to do the same thing with the other side. See how I'm bringing it over right above the eyebrow over here and go through and point cut. You can see that curtain fringe starts to open up. Now I can decide is it light enough? Does it still feel a little bit heavy? If it felt a little bit heavy I can always take into some of this fringe and just do a little bit deeper point cutting into it to soften it up. This is for definitely thick to medium perfect technique. Fine hair still good but it might be a little bit light a little more layered feeling. So what I would do is instead of keeping it parallel to the wall I'd go more parallel to the floor but bring that hair to the edge of the eyebrow still. Just it'll give you a little bit more density. The higher you lift the hair the more layered it gets the more weight is removed. The lower you hold the hair the more weight you build up.


We're talking about some of the futuristic things in agriculture. We're working with General Mills and Google with a robotic data collection system. And that system will go back and forth over these plots and take high definition imagery on a daily basis. And it basically just watches or views these plants as they grow throughout the season. As this data is collected, we can then put it into some artificial intelligence and some high speed big data systems that will be able to figure out some of the genetics and also the ability of these varieties to grow and produce the highest yields. So ultimately that's what we're looking at is to try and figure out through artificial intelligence how to develop our best varieties. In the future, farmers can also use some of this technology. And I think that's where Google is coming from is developing a robot that a farmer will be able to put into their field. And really your mind is as far as you can go with this system. So take for example weed control, rather than use a herbicide, maybe you'll use a laser. And you can zap a weed or an insect and take care of your issues that way. Or you may be able to just use a little squirt of herbicide on each individual weed species as this machine goes through the field. Other issues that a farmer could use, he could set that out there and not worry about it. That machine could go and fertilize and it could take care of all of your pest issues.


Continuing on with our checklists and this one is all about lighting. And so these are the top five things that I check with the lighting before I go live or start recording. So first of all are the lights on it may seem obvious because of these big bright lights in front of me. However, I do have some smaller practical lights behind that need to be switched on as well. And it's easy to miss if I'm just sitting down to make a quick ad hoc video. Also check your lighting positions. My studio is fairly static, but if you're moving around and changing frequently then you'll want to make sure that all the lights are correctly positioned for whatever it is you do. Obviously too much to go into lighting positions in this short video, but do check that. Next is color and temperature of the light. So I use a green screen and have different backgrounds and it's important to make sure that the lighting is matching the background. So I do need to make sure that as I change the background I'm changing the temperature and color of the light. Similarly, brightness. Make sure that that is matching the scene and your use case. And finally, do charge your batteries if indeed you are using them. Next up, cameras.


Welcome back. I'm Dan. And I'm Nathan. And we're just here hanging out doing some coding with some pandas. They're gonna help us learn about pandas data frame. We're gonna pull data from all the different cities and then store them in a pandas data frame for easier access. So on our last video we left off with a price list of the first 20 results from a Craigslist query for the San Francisco Bay Area for the iPhone 5s. And that's what's shown here on the screen. Instead of dealing with lists for each city, though, we're just gonna go ahead and plop all that data right into a data frame. And we're gonna show you how to do that step by step here. First thing you're gonna want to do is import the pandas library. And we're gonna import that as PD. We also need the NumPy library. And we'll just call that NP. So to start off with, we're gonna start with an empty pandas data frame. And so we're gonna do this by doing df as our variable name equals PD dot data frames. This is how we can create just a data frame in various different ways. What we're doing here, though, is we're gonna create basically a large empty one just so the memory is all allocated. And it'll help speed up the process down the road when we're adding row after row after row. Our columns are just going to be city and price. These are because that's all the data we care about right now. And then the next thing is the index, we're going to set the index. This is what gives it the size. And we're going to set it to a numpy dot arrange, which is just a list ranging from the first value to the last value, doing 20 times the length of city dictionary will give us a good estimate of how many we're doing since we're limiting each of the cities to 20 results. We're just going to do the number of cities times 20, which turns out to be quite a lot. Down below, you'll see the code from our last module for the San Francisco area. We just copied it down here just so we have easy access to copy and paste the parts that we need. Because what we're going to be doing is using a lot of what we previously used. So if you haven't checked it out, please go back and check that video out. It'll be quite helpful. So since we're going across the various cities, we're going to need a for loop to go across that that list of cities. For this, we're just doing for city and city dictionary. That'll just go one by one through all the different cities. Once we once it we pull up a city from that city, Dick, what we need to do is create a URL for that one city because each URL is going to be different. We need to make a request. And then with that response, we get back from that request. We need to make a beautiful soup. So I'll just say make soup. Then then from there, we're going to pull all the prices off of that given website, which we're just going to limit to 20 of them. But with each of those prices, from there, we're just going to drop the data right into the panda's data frame or DF. We're going to skip the list just because that's just an extra step at this point, rather than making a list out of it and then making that list into a data frame, we might as well just drop it into our data frame that we've already created. Alright, so let's do this. So we need to create a URL, like I said, for each city. So URL is going to be equal to the string HTTP colon plus the city, the city URL, dicked, oops, city, dicked at with the index of city. So for the given, the given loop that we're going through, we'll pull the correct URL for the given city out of that dictionary. And then as we did before, we're adding appending the search slash SSS. So that's just what we did down down here. So I'll go ahead and get rid of that since we don't need it anymore. Next, we'll be creating requests, or actually, more accurately, a response object from from the requests library dot get. And we're going to call that URL. We'll do headers equals to headers. And lastly, we will pass our parameters. And that search parameters we previously did defined before. So if you haven't seen that, please jump back to our previous video and check that out. And then just dropping that right into a beautiful soups, the good old r.content in the HTML parser should be very familiar to you guys now. All right. So now what we have to do is now that we got our information from our given website, we got to pull out our 20 different results. So we're going to do this by just like before, down at the bottom of the screen, you can see for I comma a in enumerates might as well just copy that. Yep. We're going to do a find all for all the a's with a class of I gallery. And then to simplify this a little bit, we're going to do price equals and just copy in what we did before. And as we said, we're only going to do 20 of them. So this is not the most efficiently, but it lets it be more adjustable. If we wanted to do down the road. And okay, so that's all the stuff we've done before. Now it's time to actually add to the data frame. So we're going to use the loc method of a data frame object. And what that does is it locates the the row or based on the index you pass it. So we're going to pass it new new index value that new index value, we're going to have to go up above our city loop and create a new index. We could use I but the problem with using I here is our numerator is going to be reset for every different city. So we want an index that's continually indexing a new value from the start of the first city to the end of the last city without being reset. So we'll feed that a list of the city and the price. You have to give it two different values since our columns for data frames or two different columns. And then we will augment our index value by one each loop. And this all actually replaces our price list dot append. So we don't need that anymore. But since we want our prices and integers, we do want to keep the integer price section and just restore that as price. Okay, there we go. And that's all there is to it. This kind of got messed up. I'll go ahead and stick that right here where it belongs. That's the step where we're actually pushing the data into that pandas data frame just for clarity. So I guess we can go ahead and run this up. And there we go. It's done. It's done running. We have a data frame now. One thing I should mention those we did have to change how we were getting a value out of that dictionary rather than having this city in quotes, we had to take the since it's a variable, we had to take quotes out. So just a little typo there. Be aware of that. Because cities definitely are variable, not a string. But now we have a data frame. And we could just start taking a peek at it. And you can see that it's got data in there, which is kind of cool. So data, we can do a df.head, but just because you're the top five values by default, just get info about about our data frame, you can see that we've got 8051 records. Pretty crazy. We could just do a df describe to sort of do some summary statistics on it. On our next video, we'll be playing around a little bit more with pandas to show you some of the things you can do with manipulating the data frame. So we look forward to seeing you. Be sure to hit subscribe. We'll see you then. Bye bye.


I'd like you to think about the nitrite ion, NO2-, I want you to work out what geometry it's based on, what is the name of its molecular shape once you've taken the lone pairs into account, I want you to write its VSEPR notation and I'd like you to describe the bond angle in this ion and enter the answers into the quiz.


one of the most valuable things you can do for yourself. Just go in when you're on a good WiFi connection, probably at home, you're relaxed, you're on the couch, you're watching a show or whatever, because it's gonna take a few minutes to slurp down all the data. And go download maps for any places you routinely travel. So certainly your home area, but if there's a city that you're in frequently, go and download that. And if you know you have any road trips coming up for certain, download the offline maps for those. That way, if you find yourself in a, you know, non-coverage area for your phone, you've got map data. If you start a route in coverage area and then travel through non-coverage area, usually the phone will have downloaded enough of the map to make it through that. But if you need to start a route in the middle of a non-coverage area and you haven't downloaded your maps, good luck. Yeah, you've already fallen off the edge. Yes, yeah, yeah, yeah, yeah, yeah. Yep, yeah, so they added that in iOS 17 for iPhone. So for sure, download those offline maps to your iPhone and do it now, like, you know, if you're, well, do it at home, do it before you realize you need it for obvious reasons. Yeah.


Yo, how's it going everyone? And so you can hear me back in the given up video. How do I just go that high pitch? I have no idea. But yes, everyone. It's been a while and today we're doing it. Today we're doing it. Mm-hmm. Mm-hmm. We're reacting to IU. Yes. I'm so here for this. I love her so much. And today we're gonna be reacting to Hold My Hand Live Clip from her 2019 IU Tour Concert. Love power. I'm actually excited for this. I'm actually really excited. I've been wanting to do IU Concert for so long, because I was waiting for this. Woo! I got her merchandise. I've been waiting just so I could just wear this in a video. I should have actually done the video as I was waiting. I'm sorry. But anyways, other than that, let's just get straight on into this. I can listen to you sing all day. Oh my God. Yeah, uh, hey. I don't know the lyrics, but I'm joining. Hey. Wow. I need to see her live. She's got such a beautiful voice. She really does. Yeah. Yeah. I participated. Oh my God. Oh my God. She's just singing so beautifully and effortlessly. Oh my cool talent. Oh my God. IU. I love you. IU. I love you. Wow. I need to see her live. I need to do more IU content. Oh my God. That was amazing. Oh my God. Alrighty. So what we're going to be doing is more IU content because, God damn, I miss her all so much. IU. I love you. IU. I love you. Okay. Okay. Okay. Okay. Comment down below, baby. Comment down below. IU videos you want me to react to. And I will, God damn, do it because I miss her all so much. I love her all so much. Oh my God. But for realsies, this. Oh my God. It was amazing. Ah. I'm here for it. I'm here for it. Okay. Yeah. I'm definitely, yeah. I'm sorry for the wait for my IU content because I was waiting for this. So you were waiting for this and then it was just like one big wait and now it's finally, it's happened. It's happened. But yeah. Other than that, that is all for this video, baby. If you enjoyed, show some support by leaving a like and comment down below how much you freaking love IU and also subscribe if you're new to the channel because there will be more IU content down below, baby. Wait.  And yeah. Other than that, I hope you all have a great day. Keep smiling. Be safe out there because I don't want you to get sick. Okay. And yeah. Other than that. Peace. Oh my God. What am I doing? Oh my God.


In this tutorial you will learn GDAL. GDAL is a translated library for raster and vector geospatial data formats. After this tutorial you will be able to retrieve information from GIS data, reproject GIS data, change raster properties, convert raster formats, convert vector formats, apply spatial queries on vectors, and convert comma separated value files. In the end you will also learn how to perform batch conversion. If you have QGIS installed you can run GDAL commands from the OSGO 4W shell. Let's first go to the folder where we have stored the tutorial data. It contains a shapefile with municipalities, a folder with land use data from a model, a CSV file with points of interest, a road network shapefile, and a digital elevation model from SRTM as a geotiff. Let's first explore the SRTM geotiff. So we use GDAL info and then we give the name of the TIFF file. And here we can see the information. It says that it's a geotiff. The size is 6001 by 6001, so it means rows and columns. The coordinate system is a geographic coordinate system. We can see it here, EPSG4326, always look at the last EPSG code that is mentioned. And the units here are in degree, so the coordinates are in latitude, longitude, pixel size, which is also in degrees, and the boundary coordinates also in degrees, and a no data value. Now let's in the same way explore the vector data. So we go to OGR info. Let's also see how to use OGR info. So go here to vector programs, OGR info. And I see that we can use the argument AL to list all features of all layers, so it gives us all the information that is there. If you want to summary, you can also use minus SO. Let's try those. If I do AL, and then we apply it to the rows shape file, the row network vector file, I get here all the data. That's of course too much to read. So I stop it with Ctrl C, and I use the more command to look at it carefully, page to page. And there I see how many features it has, had a lot of features. Space, I go to the next page. I also see that this one is EPSG4226, so geographic coordinate system that is too longitude and contains a lot of attributes. If I would have used the summary mode, so here you see that that is SO, it will only show very little information that is not very useful. Let's check the layer with the municipalities, and also use their AL. Also a lot of data in it, so use more. And there I see 418 features. The extent looks not like latitude longitude, and I can see here from the projection that it's the Dutch projection, Amersfoort, and I can see that it's also new, which is EPSG28992 with units in meters. And then there's all kinds of census data per municipality in this file. I get out of here with Ctrl C. So the idea is to re-project the data sets to the Dutch projection, so we can do further analysis with that. And if we want to convert the DEM, the raster file, we use GDALWARP, the raster programs, GDALWARP is for image re-projection and warping, and that's what we're going to do. We use GDALWARP, and I use the target projection with TSRS, and then EPSG, the target projection is the Dutch one, that's EPSG28992, Amersfoort.exe, and then give the input file and the output file name, let's call it dmrd.exe.tif, and run it, and here we see that it converts the file to the projection. And we can check the result in QGIS, so let's see. Here's the file, and I drag it to the map canvas, it asks me which conversion I want to use, I use the default one, and there it is, in the correct projection, I can check it with the quick map services plugin, and I can use OpenStreakMap, and we see that it matches the background, so that looks okay. Let's do the same for the vector data, that is done with OGR to OGR, convert simple features data between file formats, and here you see all the arguments, so OGR to OGR, and the target, TSRS is the same, EPSG28992, but here you need to give the output first and then the input, so it will be here, RodesReprojected.shp for shapefile, so it will recognize that and the input RodesShp, and when I do enter, it will do the reprojection, it's a big file, so it takes a while, you see that it gives a warning, that has to do with some characters in the attribute table, like accents that are giving some issues, but it doesn't affect the data, just the text in the attributes. You can solve that if you use languages with a lot of accents by using another encoding instead of UTF-8. Okay, there it is, we can also open it in QGIS, and there we see the Rodes dataset appearing, and indeed it's a very big file, and when I hover my mouse over it, it will say which projection it has, now I would like to convert also raster formats, and for conversions I use one of the raster programs, which is GDAL Translate, to convert raster data between different formats. So I'm going to convert the DEM from the GeoTiff format to the SAGA format, SAGA is a GIS, which is also having a GDAL supported format, and so I'm going to use GDAL Translate, it's with an underscore, and I specify the output format that I want with OF, and that is SAGA, you can find these formats also here on the side under raster drivers, and you need to use these short names, and here you find SAGA, and you can find a description about the format and how to use it. So our input is the DEM in the correct projection, the one we just made, and I'm just going to save it to dmrd.s. That is the extension of the SAGA format, and here it's done, you can again check it in QGIS, should be exactly the same as the other file, up there it is, it goes on top, so it covers our roads now, it looks okay, S.file in the Dutch projection. For some formats you need some more arguments, and the rest of the course we will also use PC Raster, PC Raster needs the specification of the data type, if it's Boolean, nominal, scalar, etc. So let's also convert the same data to PC Raster format to see the difference. So we use GDAL translate, and the output format is PC Raster, so let's see here's PC Raster, and we see here these different formats, and it uses a value scale, and it has a certain data type that we need to define. So our dm is floating point, so we use minus ot float32, with float64 that is for a lot of decimals, but here float32 would be okay, and we need to use the options for this format with MO, and because it's scalar in PC Raster we use VS scalar in quotes, and then the input file, we just use the TIFF, you can also use the S dot, and then we write it to dmrd.map, which is the PC Raster format, and there we go, and also PC Raster is a GDAL format which you can read in QGIS, and we need to choose the Raster one and simply drag it, we need to indicate the transformation, and there it is. So this is PC Raster, PC Raster doesn't have a projection, therefore we see the brackets here, we can set the projection in this way, there is, and we can also convert vector formats, therefore we use OGR to OGR, and that's what we're going to do here, and we're going to create a Google KML file that can be opened in Google Earth. So to specify the format we use minus F, and then we have KML as the format, if you want to see there the formats we go to Vector Drivers, and there you find KML, Keyhole Markup Language. So that's what we use, and then remember we first put the output file, let's call it gen.kml, and then the input file, that's the shape file, I press Enter, give some warnings, but it still works, and now I can open that file in Google Earth, simply double clicking it, and there it is, all the municipalities of the Netherlands in the KML format. Besides conversions we can also do spatial queries of vector data, and we want to create a map of one municipality, the municipality of Delft, so we're going to do the following analysis with GDAL, we're going to select the community of Delft from the community map and save it into a new shape file, and then we're going to intersect the community boundaries of Delft with the road map of the Netherlands, so we only have the roads in Delft. So we can use a spatial query to select the feature from the vector map, and we need to know which attribute is there for the names of the municipalities, so I'm going to use OGR info on the municipality map, and there's this feature GMNAM, which is the name of the municipality, so I can execute also OGR to OGR for doing the spatial queries. The format that I want to use as an output SV shape file, and then I'm going to do the query with WHERE, GMNAM equals, and then I want the municipality with the name Delft. Output will be Delft.shape, and the input is the municipality layer, and then I execute it, and there it is, and then let's open it in QGIS, here Delft, and it's over there. So that works, let's check, it has the correct projection, so that's all correct, we have the boundary, now the next step is that we want to get the roads out of it, and to do that we also use OGR to OGR, and let's check the result, there we have the roads in Delft, the next step is that we want to convert the comma separated files that we have here, so there's a CSV file, and we want to turn that also into a shape file, but also re-projected, so let's see what is in this file, and we see it has latitude, longitude coordinates and different objects, IDs, and it's separated with a comma. So we're going to make a file, a little XML file that is needed to tell GDAL what kind of information is in this file, and I call this locations.vrt, I have to be very precise, these three spaces, LGR, VRT, layer, name equals locations, that's the name of the layer, and then the layer has a source file, locations.csv, that's where the source data is, we specify the geometry type, which is a point file, and we use their WKB point, and it has a projection, we recognize the latitude-longitude coordinates, so we define the layer SRS, and that's EPSG4326, which is for latitude-longitude, and then we need to indicate where the coordinates are stored in the comma-separated values file, and there we use geometry field, encoding equals point from columns, so this indicates that the points are in the column coordinates, where the x-coordinates come from the long column, and the y-coordinate comes from the lot column, then we close this, and we close the layer, and we close the data source, and that's it, with Ctrl Z we save the file, right there, and then we can convert it with OGR to OGR, and we want to convert this to the dot projection, and let's convert the CSV to another CSV where we can read the coordinates, and let's call it locations-reprojected.csv, and as an input we give our VRT file, that's the XML file that we created, a virtual file, and we want that the coordinates are added to the CSV file that we create, so geometry-sxy. There we go, that's pretty fast, and then it should be somewhere here, locations-reprojected.csv, so let's have a look at it, and here we see that it has the x and y values added, it looks like there's a little bug because the coordinates look swapped, and there we have the latitude and longitude coordinates. We can also make a shapefile, so we do OGR, it's basically the same command, but then the output format should be s3-shapefile, and then let's call this locations.shp, and we don't need that, there we go, and then we can open it in QGIS, so I can drag the file to the canvas, the shapefile, and there I see these points of interest, I can also convert it to the Google KML format, as we did before, and then I can open it in Google Earth and visualize it. These are some points of interest in Delft, like also the building of IHG Delft Institute for Water Education and the church, different churches. The last thing that we're going to do is a batch conversion, so here we have a whole set of Idrisi files, these are a roster output from a model in Idrisi format, and I would like to convert all of them to GeoTiff, there will be a lot of work to do that one by one, so we're going to use the g.translate command, but then in batch, so I'm going to make another file, a batch file, I call it rst2tiff.dat, so it's a batch file, and there I'm going to make a loop for each file, that's what this means, in, and then the pattern that we are looking for, rst, so for each file which complies to the extension rst, do, then I want to see the file name, and if I use nf, in this way I can show the part that is before the extension, before the dot, so it will show that on the screen, and I want to do gdall.translate, input format GeoTiff, then as an input, the file name of the input, the Idrisi file, and as an output, I want the part before the dot, and then I add .tiff to it, and that makes the command, and then a bracket to close this loop, and then Ctrl Z to save the file, and then I can run it, rst2tiff, give some errors, but it worked, and we have here all the tiff files, the errors have to do with the projection, so we can visualize this also in QGIS, and here it is.


My name is Ujjala, I am representing the Women's College. So without wasting much time, let me start my painting video.


All right, so my name is JP Zivillich. Today we're going to be talking about CI-CD for data pipelines using Argo workflows. Cool. So a quick little agenda. I'm going to have to speed through this just so that we stay on time. But here's what we're going to talk about. Like, what is CI-CD for data pipelines? What it solves? And then we're going to do a quick demo. Cool. All right. So the goals for the talk is we're going to show a development setup for CI-CD for data pipelines using Argo workflows. We're going to understand how to test our workflow templates. And then lastly, we're going to set some strategies for versioning those workflow templates. So real quick about me, my name is JP Zivillich. I'm the CTO and founder of PipeKit and also amateur Harry Potter impersonator. Didn't land quite as good as I was expecting, but OK. At PipeKit, we are a control plane for Argo workflows, targeted at data teams. So if you're trying to manage several different clusters, like let's say a dev staging in a prod cluster, or you have different clusters for different teams, or you have different clusters for different customers, we help with that use case. Also, we do CI-CD for data pipelines out of the box as part of our SAS product. But within this talk, we're just going to be doing the open source. Cool. So without further ado, what is CI-CD for data pipelines? So could I get a quick show of hands? Who here is doing data pipelines or data processing? Cool. That is less hands than I was expecting to see. Can I get another show of hands? Who here is doing automated testing on parts of those pipelines before pushing to prod? Kind of. All right. That's what I thought. It's not the most common, even though a lot of people are doing data pipelines. Most of the time, we're kind of just pushing maybe to a staging environment, and then maybe to a prod environment and really hoping for the best. So really, we're taking our data transformations, just pushing them to the higher environments and fingers crossed. Ideally, we should be validating these transforms when we're making pull requests or pushing changes. Also, rollbacks are currently pretty difficult. It's hard to go from, hey, this is the version that's currently on my prod environment or my staging environment. We introduced a bug with this latest change.  So a lot of forward thinkers in the community are applying these CI CD concepts that we're seeing with traditional software engineering two data pipelines. So they're factoring out their transformations and other critical pieces into components. They're running tests on these components during pull requests and other events, and they're also versioning these components using semantic versioning. And this solves two big problems. One is money, and the other is time, or you can flip those depending on which you think is most important. But the money one is wasted cloud spend. Cloud spend is pretty intense. I know a lot of people have pretty high AWS, GCP, Azure budgets, and data pipelines can really rack up those budgets. They take everywhere from several minutes to over a month from some customers we've spoken to. Also, if you're running expensive GPUs, that's another thing. And then data scientist time. Let's say you push a change and there's a bug. You want to learn about that, or actually pushing that change to staging or prod within the dev lifecycle. Cool. So I'd assume that everyone knows what workflow templates and cluster workflow templates are here if you're using Argo workflows heavily. But really what they are is Argo workflows flu powder from Harry Potter. Argo workflows native reuse component. So let's say you have a part of a workflow and you want to refactor it into a piece that you can reuse over and over and over again. That's what you're going to use a workflow template for. Now, why would you want to do this? Really, you just don't want to be repeating yourself all the time. So one workflow template that we're going to use a little bit later is one that just clones down a Git repo. That's a common task that you're going to have to do with a lot of different workflows. So it makes sense to refactor that into a workflow template. Also, if you're using data or doing data transformations, that's another good candidate. So yeah, data transforms, setting up, tearing down of Kubernetes resources like DASC and Spark deployments. If you're interested in how to do that, stick around for my co-founder Kalen's talk coming up next.  So testing these components. Now, a workflow template is really kind of just a function. It has inputs and there are outputs. So we can test these inputs and outputs. And if we want to do that, we want to make sure that the workflow templates or these components are really just pure functions, meaning that for a given set of inputs, there is the same outputs. So anything that's non-deterministic or random, that's what's going to kick a problem. Or if there are side effects to this function. But this unlocks testing for us, which is great. Real quick, before I get into the demo, I want to talk about semantic versioning. I'm sure everyone's quick show of thumbs, everyone familiar with what semantic versioning is. Yes, love to see that. So they're great to have, but they're not available in vanilla Argo workflows. So Docker images can be semantically versioned. But workflow templates cannot be. Now we've seen two ways of implementing that with workflow templates and Argo workflows. The first, which is what we do internally and with our SaaS platform, is appending the version to the name with dashes, i.e. doing template dash 12, dash 3, dash 9. Or we've seen it done with labels and annotations. Shout out to our friends at Bloomberg. All right, so now we're going to go through a quick example of doing that CI step where we're going to push a change to a workflow template in a PR. And then we're going to use Argo events and Argo workflows to test that out. And we're going to do it fast. Here's a quick architecture diagram that I don't have too much time to talk about. But you can see that I'm taking a GitHub, in this case, poor quest event. The Argo events deployment is set up with an event source to read the webhook payload, load it onto the event bus, and then the sensor is going to spin up an Argo workflow. That is going to spin up a parent workflow. That is going to be cloning down the repo, applying the template or the workflow template, and then spinning up three assertion workflows to run that template. And I'll get into why we're doing it in the two-step workflow or the multiple workflow rather than just doing it in one big workflow in two slides. So Argo events, we're doing a one-time configuration of that event source to connect to the webhook. And then the sensor is the start player, the point guard in this setup, where we're taking that webhook and then we're mapping that to an Argo workflow. And we're also extracting some information from the payload. Cool. So the Argo workflow in that sensor is doing some really cool stuff. What it's going to do is it's going to clone down that workflow template. In this case, it's going to be a quick doubler, like a workflow template that doubles inputs. And then it's going to apply that workflow template to our cluster. And then once it has applied, it's going to spin up additional set of workflows so that it can run the workflow template that we have just applied several times with given inputs and outputs. And the reason that has to happen in the workflow of workflows pattern is because at compile time, Argo workflows checks a workflow to validate that each template that it calls is present. So if you're making modifications to your templates within the course of a workflow, you actually have to spin up other workflows for those modifications to take place. And I found that out when I was making this demo. And that was a fun thing to do. All right, so let's rock through this demo. I'm going to have to do it, I think, at two times speed. So hopefully that's not too bad. So what I'm going to do quickly is we're going to make a change to a pull request, just a quick read me update. We're going to push that commit. But this file or this pull request also contains a workflow template called doubler, which is taking an input and then multiplying that input times two. So if we have two, it's going to give us 4, 4, 8, 0, 0. And those are the test cases that we're going to be running on. But you see that we have that pull request. The commit just got updated. And within our Argo workflows instance, we have a workflow that was created using Argo events. Cool.  Refreshing. Cool. Now we have the workflow that is running. And we can see that the first step is checking out the GitHub PR. This is going to be cloning down the code and storing it within a volume. I'm going to have to keep this going extra fast. So then it's going to get the template and apply the template. From that template, it then spins up the three assertions that we've specified using with items that I'll show in just a minute. Cool. So those are going to run successfully. And I will pause that. So we should be good. On that part, we successfully ran some assertions. I know that was quick. Trying to be respectful of time. Lightning talk. Benet, benet, bam. So now what we're going to do is push a breaking change to that workflow template. So you're going to see me pop open Vim and modify that workflow template to instead of multiply by two, it's going to add two to every input. So I'll go into this doubler template and unfold it. And then we'll see where there's the multiply. I'll just switch that to an add. This is going to be simulating a breaking change to a data transformation. Then we're going to push this guy again one more time. And I got to keep it going fast. I don't know why it keeps going to slow speed. Anyway, so we've pushed it. It's cloning the PR. It's applying the template. And then it's spinning up the other cases. Cool. And we can see that these are running. And we should get a good output of two failures and one success. Whoops. Struggling with this video. So we can see that one of the cases passed, two plus two is four still, but the other one's failed. And then lastly, if I go to our setup here, we can see the test cases that we did this with, with items where we specified our inputs and our expected outputs. So we didn't have a chance to cover all the versioning and whatnot and show the example of that. But this is how you can specify a set of inputs, outputs, and validate all of your workflow templates using just ARGO events and ARGO workflows. Again, that's all the time that I got. My name's JP Zivillich. If you all want to chat a little bit further about this or about some of the stuff we do, come holler. Thank you so much.


Well, I'm joined today by Helen Sherpman. She's from the European Commission and she was here to discuss Empowering women to innovate through technology one of the many thematic dialogues going along at Wiesis 2015 today. Miss Sherpman. Hello Hello. Thank you for taking the time to talk to us. Now It's a pretty fascinating field very broad one. So we'll be we'll narrow it down a little bit But what were the issues that came before the meeting today? What were you talking about? We were talking about different gaps for women to access technology careers and skills in different ways We were talking for example about the gaps in in access skills for for technology career paths content to elaborate content and create content in digital and also to access Leadership opportunities and entrepreneurship paths for women and You also had something to offer to that conversation. What is the European Commission doing along those lines? All right We do different things. Of course, we have a broad Technology agenda as such but within that we try to fit very very much the women agenda and one of them is to to Encourage girls and women to go on a on a career path for technology such as so so learning more about how to code. This is one of the the initiatives we had last year 2014 there was we had a EU code week that engaged very much young people and also old people in learning coding and especially girls and women and Over 125,000 participants. We're in there and we're going to follow up that this year 2015 with it with a whole week as well and there's actually linked to to Africa here because just before the EU code week We will have a African code week, which will very much focus on on engaging girls into coding skills and such career paths It's obviously filled with lots of promise lots of challenges and lots to talk about Were you able to in the time that you had together come up with any kind of plan or call for action? Yes, I we had been requested to think about this of course and and we do we do have Action also that we started just recently Because another area that is important that not only that we we create more people That can fill the the the skills gap that is actually there for these technology But also that we encourage the women that are in the field already that have taken on leadership roles that have founded companies startups and Help them to to lift themselves up get get more access to funding Partnerships and so on so we want to encourage these women as well for that We have created a network with the help of European Union funding so we call it we hub women's Entrepreneur the web entrepreneurs network where for the moment is 25 nodes across Europe of of Locations where women will will network together and do exactly this finding partnership getting access to funding and that will expand to 250 nodes over the next two years Well, it sounds like a great program and we thank you for your time today, miss. Thank you very much