Thank you for the introduction and welcome to my workshop. So let me first ask you or first I would like to explain the purpose of this workshop. It was written that it is for beginners and by that I meant it's for beginners in Rust. Although I expect you to have some knowledge of programming and memory management and so on. So I'm sorry if you're new in programming completely. And so right now, do you have any knowledge of Rust or who of you know Rust at least a bit? Okay, that's like half of the people. So I will quickly introduce Rust, the language itself and then we will try some examples. Okay, so really quick introduction to the Rust programming language. So first of all, the pretty obvious question is why just another language? And since we don't have much time, I will quickly describe what is Rust about and why you would like to use it. So I think there is no single language to rule all the applications from IoT to web applications and scientific computations but I think Rust is appropriate language for many, many domains. So I think it started as a replacement for C++. So if you're familiar with C++, the syntax is pretty similar. Although it has some features that are usually found in functional languages like for example, if expression returns a value. So as opposed to C, you don't need any ternary operators or similar constructions because everything returns a value. And also we have pattern matching which is also more popular in functional languages. Probably the most significant feature of Rust is its memory management. There is no garbage collector, although it is not as manual as in C. So you don't have to allocate memory by hand and deallocate by hand. Although there are some rules you need to obey to acquire the memory and then release the memory. And these are called ownership. And it means that every value has some unique owner and the unique owner can borrow the values and it is responsible for freeing of them. But this as opposed to C and C++ is checked during the compilation time. So you will get a memory safety, let's say for free. Okay, the type system is a little bit different than in mainstream languages. It has static typing with type inference. That means you don't have to write the types but there are types known at the compilation time. So even though you don't write them there must be a known type. And you can get errors from the compiler that you need to specify which type it should use if it's not clear from the context. And yeah, of course there is support for genetic programming but it does not support object-oriented programming as we know it from Java, for example. If you want to get polymorphism you need to use traits which is something similar to type classes from Haskell if you know. Okay, so using all these features Rust is able to guarantee memory safety. So if you use only safe Rust you should get no double freeze, no use after freeze or out of bound access which are pretty common memory related errors when you're writing in C. And using the type system it also guarantee no data races in multi-trade code which is pretty nice. The marketing expression is fearless concurrency. And this is actually really nice because usually when we are writing multi-trade code it's hard to debug when it's broken. So using Rust static analysis it's I would say much more pleasant to write. And also using the, let's say, little bit more complicated type system of Rust. You can write libraries that are hard to misuse. So for example, when I was writing some code using OpenSSL I was pretty scared that I got the API wrong because I couldn't understand the documentation and there is just a void pointer to everything. So it's really, really easy to misuse and in Rust we use the complicated type system to only allow some specific usage of the API so that you cannot misuse it. Okay, so what is the language good for? So it started as a language for writing a browser but it's of course not usable only for this purpose. You will get the presentation afterwards, I guess, right? You should take it from me, right? So I include some links to interesting blog posts which I found online. For example, many people use Rust for speeding up their web services. So for example, I read some articles about log parsing. There was a Ruby service and after they had more and more customers they found out there is bottleneck in parsing so they wrote this part in Rust and it was much faster. You can also write some network services, even operating systems. Also pretty interesting domain is web assembly although I don't really know anything about it and finally IoT. If there is a compiler backend for your platform it should be possible to compile to embedded devices as well. Okay, and final advice. If you're just starting with Rust, don't give up. It tends to be difficult in the beginning. Sometime they call learning Rust fighting with Borowchecker. I call it discussing with Borowchecker because I think it's more positive. Okay, so these are the sources and you will get them afterwards. Okay, so I hope you have laptops. Okay, perfect. And I hope the internet connection will be available for all of you, although I cannot guarantee anything. Do you have any questions right now? So we can start by opening the main page of Rust language and the install tab. So this is the recommended installation method on Linux if you find it scary, I'm sorry. Alternative is using package manager. For example, if you have Fedora there is the latest stable version of Rust and you can install it using to install Rust and cargo, is it right Igor? But I should have it already. Oh yeah, that's DNS extension, use it. It's awesome. 1.32, preferably. If you have rel, then you probably have some older version. Okay, old Fedora is poor choice. Okay, do you have a Rust compiler and cargo? Slide? Yeah, sure. Well, if you download Rust compiler using DNF, for example, you will get the compiler and the package manager. But as far as I know, if you want to use, for example, VS Code and the new Rust language server, it won't work because it uses Rust app to download all the components. So yeah, it's a shame, but what can I do? 1.32, yeah, that's quite old. And okay, next thing which is new in the 2018 edition is official Rust language server. It's possible to use it with VS Code or probably Atom and of course Vim and Emacs. The official solution is VS Code because they don't have capacity to support all editors. So I have just the official VS Code extension and if you used Rust app to get the compiler and the package manager, it should be pretty easy to install IDE integration as well. Just open extensions in VS Code, type Rust. And this extension should automatically download Rust language server and the source code for necessary for the code analysis, et cetera. Do you have any troubles? If you have any issues? So yeah, of course, alternatively, you can also use IntelliJ, which has also pretty nice plugin. It's not based on the official Rust language server, but it's their own and I think it's really, really good. Okay, so let's try some projects. If you want to start a new project in Rust, you can use the package manager cargo and just create a new, let's say first command line app. Hit enter and that's it. It used to default to library because each Rust project has its associated type. It's either library or binary. It used to default into library, now it defaults to binary. So you don't have to type binary anymore. Okay, now let's write hello world and it's done. And it's done. Sorry, it's written by default. Hello world, getting there. Downloading, yeah. That's unfortunate, yeah. Okay, now if you want to run the project, just type cargo run and it will compile the project in debug mode and run it as simple as that. Okay, so as you can see, the main function doesn't have any return value and that's because return integer return values are specific for some platforms. So they use this, let's say void return type for main and if you want to specify a return value, you just need to use exit explicitly. But in the new version of Rust, you can actually use a result type, which is something new that wasn't available in the previous edition if you tried. And that's because in Rust, we don't have exceptions. So there are no throw keywords, no catch keywords and we only use these result types. A result type is a type that contains either or successful value or an error. And if you want to get the value, you need to unwrap the result explicitly. So you can use it instead of the exceptions, but we need some, yeah. It used to be more verbose than using exceptions because as you know, when you are using exceptions, you just throw in some inner function and then 10 functions away, you just catch it. So it's pretty convenient. In Rust, you cannot do this, but we have a new question mark operator. So let me, for example, write some application that will parse command-line arguments. That's pretty common, right? So we can include standard library environment module and we will create a variable and we will load the command-line arguments using arcs function that is available in the library. Now, as you can see, there is no type, but as I said, there is a type known, but we just don't have to write it. So let's try to compile the code and yeah, of course, it doesn't work because yeah, now it works. So I also need to include the error trade because that's the return type we will use when we start doing some operations that can fail. And since we are returning result from the function, we cannot return anything. We need to return either a success or an error. So at the end of the function, I just return empty success. That's the Sauron I. Okay, perfect. Now, there is a nice way to explore variable types. When you don't know what type the variable is, you can write something ridiculous like this and then ask the compiler, hey, what's the type? And it will tell you because he's nice. So it's some arcs type. And now we should open the standard library documentation. So let's just open Google to the Rust line. And this is the official documentation. I recommend you to open it. You will find really, really useful information there. So we can see what the arcs type is. And it says that it is an iterator over arguments, yielding a string for each argument. So now we can go back and let's explore what's inside of the arguments variable. Really nice feature of Rust is that you can use the for loop for any type that implements iterator trait. And that's the polymorphism I was talking about. So if your variable implements iterator, you can use for loop to iterate over it. And as the documentation said, it will yield a string for each argument. So those values will be string. And if you have the newest compiler, the 1.32, you can use this convenient debug macro. That's the latest, greatest addition. Okay, yeah, of course.  Okay, right now, there is only the name of the executable. So that's the only command line argument. But we can use cargo to actually provide something some command line arguments, for example like this. You will use the dash dash syntax, then space, and something that will be provided as a command line argument to the binary. So use the dash dash space syntax. Okay, and now we can see there is a new command line argument, c equals five. Okay, now, if we want to parse some arguments, we can, for example, check if the command line argument start with some prefix. So for example, when I want to write an application that takes dash c as an argument, I can use just if the argument starts with dash c. And that's it, just do nothing right now. And try to compile, it works, nice. Okay, so now we know that argument starts with dash c and we want to split the string with the equal sign and then take whatever is on the right side and parse it. So we can use, we can use a split and equal sign. Yeah, if you are coming from Python, there is a difference between single and double, no, quotes. So just be careful. And then we need to, this split function does not return an array, it returns some special split type and if we want to make it an array, we need to collect the result. This is pretty common in the standard library API because some structures are lazy, meaning that the result won't be evaluated unless you explicitly ask for it. So we can use collect to collect the result. And of course, we need to give it some name, now, what is, this is not going to work. I will show you the error and it says that the compiler cannot infer type for this variable. And that's because the collect function is pretty smart and you can actually choose what return type you want. So you have to explicitly state something. Okay, now you have, right now you have two options. Either you will use the syntax for regular types, meaning that you will write a colon after the name and then the type, or there is a special syntax in Rust, it's called a turbo fish which is much more funny and we write it like this, that's the turbo fish. And now into the turbo fish, you need to write what you want. So I say that I want a vector of something. Again, this is special syntax. You can sometimes use it if you need to specify only some parts of the type but not the whole type, you can use the underscore and you say basically, okay, infer this part of the type for me. So you don't have to specify the whole type. And let's see if this still works. Okay, it still works. So no problem. Now finally, we can read the number that's behind the equal sign. So let's parse the number and we'll say that it's parts. The first we are counting from zero and then parse. So right now we say take the first or well, in human terms the second argument and then parse it. Again, the parse function is generic over its return type. So you can choose what you want. So let's again use the or we will use the common syntax and let's try to build it. Okay, this doesn't work because of course parsing can fail, right? And as I said, Rust API should be hard to misuse. So you cannot just return result of parsing function into 32-bit unsigned integer because that's just not correct because it can fail, right? So you have to handle the result somehow. Yeah, you can see the type here. Now, usually in examples, you will see something like unwrap or in a lot of examples you will see something like unwrap. But that's just a convenient way to write code examples on GitHub and Stack Overflow. So please don't copy it into your production code because this will take the result and if the result is an error, it will panic the threat and just stop it. So don't just blindly copy paste, please. And instead, we will use finally the question mark. Okay, do you have the code? Any help? No? Yes, that's what I will explain right now. Let me just run the code. Oh, yeah, we can do something with let's say print line. Yes, and also what I haven't mentioned yet is that this exclamation mark means that this is a macro. It's not a function call. In Rust, we don't have variadic functions. So if you want to write something that takes variable number of arguments, you need to use macro because you don't have variadic functions as opposed to C. And let's just print the number. So this is the syntax for print macro. You write this and then you say what variable you want to print. And again, this variable needs to implement some trait and it needs to implement a display trait meaning that this value can somehow be turned into string, basically. But a lot of types in the standard library implements it already. So in the beginning you shouldn't hit problems with this. Yes, sorry. As I said, it tends to be a little bit difficult to get started with. That's pretty common when I'm trying to teach someone Rust. He says, or he or she says that it's difficult because you need to understand a lot of concepts because before you can even write some hello world, I don't know, network application. Now this is, okay, I will put it on top. This is what the question mark does. I provided a letter instead of a number, right? So that's an error. And the parse function failed. Now the question mark operator works in a way that if the return value is an error, it will immediately return from the function here. And if the result is success, it will just unwrap the successful value and assign it to the variable. So that's basically like saying if this failed, just forward the failure to the next function. And if it didn't fail, just use the value and continue. So this is like a convenient method for forwarding the failures in your code. So this is what we use instead of exceptions. And this code can fail also in at least one another way. Can you spot the place? Okay, yeah, exactly. Or you miss, yes, or you just don't write equal sign. For example, like this. Now it will fail. But, excuse me, it says that the threat main panicked at index out of bounds. So I said that you won't get any out of bounds errors, but I should probably say that you won't get any undefined behavior as a consequence of out of bound excess. So this is what Rust will do if you try to access an array out of bound, it will panic the threat. Right now we have only one threat, so the whole process fails and that's it. If we had multi-traded code, we could just catch the panic, write some note to the user and just spin up new threat. But this is also, I think, new addition in the 2018 edition. Okay, so it says, run with Rust backtrace, photo backtrace, this is pretty nice for debugging. We can try it and I'm using fish, so I will do it like this. And it's pretty huge, the backtrace. This is unfortunate, but there is nothing you can do about it, but probably summer in the middle, you can find the place in main function that failed. So it says that it failed on the main.rs file, line 12. So let's just open it and of course this is the line where we are trying to access the array and we are not checking if the array is long enough. But fortunately, okay, we can use, instead of this syntax, we can use a method that is safe and it will return a result or optional, yeah, it will return optional value from the vector. So the parts variable is of type vector. So let's see the standard documentation for vector. Again, open the standard library documentation and here on the left side, you can see a lot of methods that are available. For this structure, I must say it's so long that sometimes it's hard to find what you really want, but be sure that if you're looking for something, it's probably there. I'm looking for at, split at. Okay, so it's not at, it's get. And the get function, okay, get function returns an optional type. You can see the option over there. It's similar to the result, but in the result type, we saw that you can either return a successful value or an error. If you don't have any error to specify, but still the computation can fail, you can use optional value. It has only the successful value, but still you need to explicitly unwrap the value. For example, this method is obvious. If it fails, there was no value at number one. At index number one. So let's try it and we will write get one and question mark again. And this probably won't, yes. Now, I said that the question mark will return immediately from the function if there was an error. It works also for option, but right now we specified that the return type is heap allocated error. So right now we cannot return just none and we need to turn it into error type. So we'll go to the documentation for option, okay. I think I got lost in this example. Excuse me. Okay or function? Okay, yes, thank you. So this is the documentation for okay or function here. And what you can see is that it transformed the option into result. So that's what we want, right? Because we want to return a result if it failed. So, okay. We will just use okay or and let's just try to zero and see, no, we need to, okay. We probably should use some better error, some out of bound excess, but since I don't have time, let's just return some error. We can use parse error, okay. Sorry, I probably got lost in this one. No, right now we are not discussing with the borough checker. We are discussing with the type system. And yeah, I forgot the error type I wanted to use here. So, but we are running out of time. Do you have any questions? Let's get back to the original implementation. Do you have any questions so far? Yes? You create a new language and you try to get rid of, for example, C++, we create a new language to replace C++. And why do you make it so difficult to learn as much as C++? It's easier. Okay, this is a good question. I think you are looking for go. Yeah. Yeah. Okay, it makes sense. If, for example, you try to migrate from C to go, it goes a very easy language because it's very simple. It doesn't have all of this, yes. You can find all the languages. If you are familiar with Java and you learn go, you see what can I do with this language? There are a lot of things that I have in Java that it does not have in go. Yes, okay. Of course, this is a good question. And I think if you want a language that is easy to learn, you're good with go, but this language was supposed to be really safe. And if you want to guarantee safety at the compilation time, you need to make it this complicated because, for example, C is pretty easy to learn, right? You just write malloc and it will give you heap allocated memory space. Fine, it's pretty easy, but it's also very error prone. But you cannot use it for everything. I would say that you still have to go runtime and you cannot use it, for example, for embedded devices or writing bear operating systems. So yes, that's what people actually ask quite often if it's a good idea to compare go and rust. I think go has different goals. The goal of go was to make a simple language that can be used as a, let's say, again a replacement for a C, but in a different domain. So yeah, I'm sorry, we are out of time. But feel free to reach to me and ask more questions. Thank you. Thank you.


Hello, I'm Keith Mines, director for Latin America at the U.S. Institute of Peace, where we've been analyzing the effects of the corona pandemic on violent conflict around the world. In this short video, I'll answer three questions about what I think are some key dynamics of COVID-19 in Latin America with a focus on Venezuela. First, how is the pandemic affecting Latin America broadly? The COVID crisis has hit Latin America later than much of the world. This is still on the increase and enough countries are uniquely vulnerable that it is being referred to now as the pandemic's new global epicenter. The hemisphere is especially susceptible to the health challenges of COVID because of the prevalence of the informal sector as much as 55 percent in some countries, generally weak public health systems, and high levels of urbanization. To date, there's over 2.5 million cases and 120,000 deaths. Four countries in the hemisphere are in the global top 10 in fact, Brazil with the second highest number of deaths, and Peru from a modest population base is at six, with Chile and Mexico also hard hit, and the numbers are still increasing and may be under-reported. The crisis in Latin America will throw many people back into poverty, in some cases extreme poverty. Largely due to the loss of remittances and a steep drop in household consumption, the U.N. Economic Commission for Latin America and the Caribbean estimates a drop of 5.3 percent in GDP across the hemisphere in 2020, with 16 million people added to the 67 million already in extreme poverty. This will impact the conditions for conflict as well as migration. It will also increase food insecurity, which is already affecting 54 million Latin Americans. Like many regions, the hemisphere will take a very long time to recover and may not ever bounce back fully. As one international official said, the main task we have ahead of us is to keep the health crisis from turning into a food crisis. The potential for increased social conflict will be high, but the crisis could also provide some unique opportunities for solving conflicts. That's our second question. How will COVID-19 affect conflict in Venezuela? In Venezuela, COVID hit late due to the country's relative isolation, but it could yet hit hard with a largely collapsed health system and lack of sanitation. Some 91 percent of the country is already in poverty and one-third of Venezuelans are food insecure, figures which will increase rapidly as COVID combines with shortages of gas and the collapse of the country's agricultural sector. Added to this, the COVID crisis is causing a loss of livelihoods for hundreds of thousands of migrants who are resident in neighboring countries and may now return home. This will add additional tension in a country already under profound social and economic pressure. Because of the situation, many civil society leaders are calling for a truce between the country's competing governing bodies. Such a truce could build on a three-way agreement signed by the regime, the Guaido Interim Government, and the Pan-American Health Organization in April that allowed for increased cooperation on detecting and fighting COVID. The two sides need each other in any agreement. The Interim Government controls much of the country's assets and has a positive relationship with the international community, while the regime controls the security forces in Venezuela's infrastructure. This basic agreement, the first the opposition and government have signed in years, could open the door to expanded cooperation on health and COVID, which could then lead to broader cooperation on a range of other essential humanitarian issues. Some wondered if this cooperation could lead to a breakthrough on the political negotiating front as well, which holds the key to any long-term improvements in the health and well-being of Venezuelans. But many in civil society are concerned that this could amount to overreach that would jeopardize or delay any humanitarian cooperation. I definitely understand that perspective and can see that perhaps the political and humanitarian talks need to remain on two completely separate tracks. But the two sides urgently need to find the right formula to return to the table and do the hard but essential work on a political pact that will end the current impasse. This won't wait for an improvement in the humanitarian situation or for COVID to subside. All of this will require new creative and dynamic processes to tackle both the political conflict and the humanitarian crisis. The UN and other international players may be needed to provide a venue for these processes to play out. Beyond Venezuela, let's look at our final question. How should the region respond? In a broader sense, the COVID crisis has exposed weaknesses in the hemisphere's social economic systems that could now be addressed as part of a new governance model intended to stave off future conflict. Low levels of taxation and corruption have led to weak public health and education systems and perpetuated high levels of income inequality. This was impacting even many of the hemisphere's more prosperous societies before COVID. Perhaps this is the time to go bold and develop a model that blends high levels of social spending with productive and integrated economies. Venezuela is the country most in need of a new model to produce basic stability, would be in a unique position to develop such a blended system. Through all of this, the importance of an active role by civil society is clear and should be a part of the crafting of any solution. Meanwhile, basic democratic rights to protest, choose leaders and free and fair elections and maintain freedoms of expression and voice will need to be upheld in order to channel conflict and disruption in a peaceful direction. So thank you for watching and for following this series on social media with the hashtag COVID and conflict. Please check out our website, usip.org for more resources and look for another episode on Columbia student. Thank you.


Hey, welcome back. We are live in day two. Kind of towards the end of the day, one more segment after this, the CUBE, our flagship program. We go out to the events and expect to see them from the noise. I'm John Furrier, the founder of SiliconANGLE, joining my co-host Dave Vellante, co-founder of Wikibon.org. Dave, how are you holding up? You're doing great, John. We have Arjun Tropa, CEO of SmartShift Entrepreneur. Even following cloud, we were just talking before you came on about some of the things you've done. We're first welcome to theCUBE. Thank you for having me. It's theCUBE, we like to talk. We can just talk about anything. So let's talk about your entrepreneurial ventures. So you were the founder of a company that sold to our friends at GigaOM. Well, I founded a company which is a joint venture with GigaOM. And then we got acquired by what's called SmartShift now. And I appreciate the bump up in my title. I'm Chief Technology Officer. Okay, okay. But yeah, absolutely.  That's right, that's right. And I'm standing between us and drinks. So I'll try to keep this short. Okay, so tell us about SmartShift. So SmartShift was started with a simple mission. And our goal is to help organizations get to the cloud. So we have a lot of tools and technology we've built to help with customers' journey on that side. And once the customers get to the cloud, we provide 24 by seven managed services to keep them there. A lot of our IP is focused on really looking at the infrastructure and the source code organizations have and transforming them as required. So removing bottlenecks in the source code that they may have and identifying infrastructure, the challenges that they might face. But then helping them with all the automation and orchestration that's required to enable them to run in a secure or highly available or a scalable manner on AWS.  So what's it like working with those guys? What's your role with those guys and how do you guys pass the puck back and forth? Sure, no, we've been working closely with Amazon for several years now. And what we've seen off late is a lot of our customers are self-selecting Amazon as their preferred infrastructure as a service provider. We work closely with Amazon. We get a deep insight into some of the newer technologies that they're looking to launch. We work with their solutions architects to understand more on the optimal way for customers to run effectively on AWS. And along the way we have projects for 10 of the top 20 global financial institutions, for example, running on AWS and having to pass through the security gauntlet at all these organizations is challenging. So really understanding and working with Amazon to see that we are set up in the optimal way. So we work closely with them on that side and there's a lot of lead sharing that happens. So a lot of their customers who need assistance, we're in a position to help us upset of those to get on to AWS. And then once they get there, then there's the 24 by seven monitoring and management to stay there. And that's one of the things from an operation side that we provide those organizations. Arjun, where are you having success? Can you talk about the applications that you're able to move? And then let's talk about some of the harder to move applications. Yeah, absolutely. So let's start with the harder to move, right? So we have a large set of technologies that are focused on SAP. So we can really help organizations. You know, and Nike, for example, is one of our customers, Exxon Mobile, Shell, BP. All of these are customers that we have with SAP footprints. And where we've seen the activity on that side, if you may, is getting them ready to handle the deluge of big data. So as they're looking at HANA, for example, which is a big push from SAP's perspective, optimizing their existing applications to take advantage of that is challenging. So normally, organizations do this in a highly manual way. So they'll have an army of people who show up and then kind of manually go through their code and start setting it up. But our tools can do that. What would normally take a year, we can do in a month. So we're starting to see activity on that side, but those systems tend to be so mission critical that they're looking to keep them in-house. But yeah, so, sorry, just to stop you there. You're talking about HANA apps? SAP applications that they're looking to kind of get enabled to handle big data. And they're looking to move those to HANA and the cloud simultaneously? Absolutely, get HANA in there. The cloud is something that we're seeing starting to take on that side. So as we're looking at the more difficult applications. I'm trying to determine if you're talking about sort of more of a green field approach. No, these are existing applications that they have. That they're now looking to say, okay, these applications might not be in a position to handle the big data deluge that they're starting to see. Or they want to get the intelligence out of the applications in an optimal way, and that's getting to be challenging. So we're coming in and helping them and as we're doing that, the cloud journey is beginning for a lot of those customers. So they got maybe a traditional BI system. Absolutely. And they want to move that to a more agile platform. So that's really where you're having success at. We had some questions on the chat earlier, but then it was just no text to me by the crew and back. They want me to ask you about Oracle. Sure. I mean, it's a similar kind of deal, right? So what we found is some of the mission critical applications, we view it as a comet, if you may. Thank you. So what happens on that side is that the head of the comet is probably your hardcore ERP system that you may have. But then the debris or the tail of the comet, that's where all the adjunct systems live. So your dev test systems, your staging systems, your pre-prod, your evaluation systems, all of those typically are the tail of the comet. So those are the ones that are starting to move very quickly. Oracle systems, we have several customers, a lot of the banks, for example, that I mentioned. They're now comfortable working with Oracle on AWS. So we've got a lot of deployments, both Oracle Standard, Oracle RDS, on AWS, as well as Oracle Enterprise, where they're getting more comfortable. So these are production systems? Large production systems that are running? We're talking thousands of employees. Thousands of employees, you know? Thousands of users hitting these systems. Absolutely. So when you migrate to the cloud, what's the process? So these are packaged applications, but there's a lot of customization involved, right? Sure. Does the customer have to freeze the code before they move? You know, it depends. So with a lot of our customers that have existing systems that they've identified, right? So if they know, and they're, in our opinion, further along the cloud journey, where they understand that, okay, here are the set of systems that we are ready to move to AWS, right, or the cloud. So what we see with them is they've usually understood what it takes to disrupt those systems. And what we've tended to do is to minimize that disruption is we'll stand up parallel environments for those. Then we'll get the data to move. So it's a very phased approach, and they can then see what that environment will look like in production before they actually flip the switch. So nobody wants to do big bang. Nobody wants to, for obvious reasons, destabilize existing systems. So oftentimes, they're constantly using them. They might be enhancing them as they go. But with AWS, you have the agility, the ability to be agile. So that's what we help a lot of organizations also set up. So we will set something up in parallel, and if it doesn't work out, it doesn't meet the performance benchmark, so metrics, you can scrap that and go back to the drawing board and evaluate it again. So you'll essentially replicate the system on Amazon, or maybe fine tune it for Amazon, and then move the data over. Well, of course you do testing between the cutover, but you'll ensure that there's adequate performance, security, you know, all this, okay. That's exactly it. And the two kinds of really shifts that customers do, right? So one is a simple rehost.  It tends to be more of a financially driven play. So organizations are like, hey, I'm paying X number of dollars for hosting it here. When I move it, you know, there's all the added benefits of being in the cloud, but then there's an immediate savings to be had. The easier systems or the, you know, to your earlier question, those are the easier ones to move. The more difficult ones are the ones that need to be re-architected. And those are the ones to say that, okay, I'm not set up to horizontally scale, for example. Right, or I'm not set up for, in a highly available manner, what do I do? So we'll typically sit with the customer and then understand what that optimal architecture looks like. Then the next stage is typically automating and orchestrating a lot of that. So how do you make sure that it's one thing to stand up a system? But then it's another thing to make sure that it stays up and it's got the necessary automation. So if you need to make a copy of that system or that entire deployment for debugging purposes, you want to have a DevTest system that's a replica of production. You want to have something that you hand over to your sales guys for demos. A lot of that work starts to become possible. What are you finding with hybrid cloud? Are people doing hybrids? Are they sort of picking one or the other? Are they doing federated apps? Yeah, no, good question. So I think it depends on how we define hybrid. So we have a lot of customers that have existing systems on-premise that are not in a cloud environment. So for example, some of the banks that we've worked with had data and application and business logic still stuck in mainframes. So that's going to stay in the mainframe for the foreseeable future. But they have applications that are running or they want to get maybe the app here moved up into the cloud. So they can get some elasticity, they can get some of the processing work done there. So we see a lot more of that in a hybrid environment. So you'll have some components of your application running on AWS and then having tunnels that come down or direct connects coming down to talk to other on-premise systems. So that's typically what we're seeing. I tweeted out today, you're probably too young to remember, but back in the early 90s, there was a big trend called downsizing. Everybody was getting the applications off the mainframe. Essentially any application that could be moved off the mainframe was, unless the CIO was asleep at the wheel. And any application that couldn't be moved, wasn't moved, if they tried to move it, a lot of times they drive the company to the ground. So I feel like it's a modern day version of that. Just the big sucking sound is all those applications that don't need to be on-premise going right into the cloud. Is that a fair analogy? David, that is a fantastic analogy. So the DNA of our company comes from a company that used to do exactly that in the early 90s. It was called IQ. So a lot of the technology that we focus on essentially was moving stuff off of mainframes into state-of-the-art at that point, which is client server. And the client server became web technologies. The company ended up getting acquired by Razerfish for a billion and a half, right? Following Razerfish is refocusing on media, if you may. A lot of that IP was spun out and that's what basically formed the core of the IP of our company. And it's essentially looking at systems where you can go in and see how do I move this in a way that doesn't destabilize and it de-risks the overall project. So that's really where our DNA comes from. And I think the big difference is, I always use the term paving the cowpath. A lot of the downsizing was paving the cowpath, moving to microprocessor-based systems and client server. It feels like, in addition to the big sucking sound, you're getting a lot of incremental innovation in the cloud that you're seeing. And much, much more of a robust startup ecosystem. And that agility is just hard to get elsewhere. All right, June, thanks for coming on the queue. Really appreciate it. I want to get your final take on the show here. For the folks out there, put the bumper sticker on the car as it drives away from this year. What does it say? What does the AWS re-invent conference say this year? What's done the bumper sticker? It's even bigger and even better if that was even possible. And next year, I mean, at this scale, they have to figure out how to auto-scale conferences. Because we're definitely bursting at the seams. Bursting at the seams, awesome. Awesome stuff, great job. We're here live at theCUBE, rounding out day two. I'm John Furrier with Dave Vellante. We'll be right back with our wrap up of day two right after this short break. Thank you.


Welcome and thank you for joining us this evening for the Calhoun Street Public Information Meeting. This is the first of two identical presentations that will be given at 5.30 and at 6.30 p.m. each followed by Q&A. The agenda for the meeting will begin with a review of how to participate in the virtual meeting format. Then we'll click through an 8 to 10 minute slide presentation about the project, review some frequently asked questions, and then we'll take live calls, voicemails, and emails to try and answer any questions that come in. We do have a number of city staff from various departments here to have been answering questions. To participate, you can dial<PHONE_NUMBER> and when prompted enter the meeting code 8104. Those participating by phone will receive three options on how to participate. Star one will allow the participant to listen, star two will allow the participant to record a voicemail message with questions, which will be played during a live Q&A session, and star three will allow the participant to be placed in a queue so that they may ask their questions live when prompted. You can also join the virtual meeting on the web at publicinput.com slash calhoun-info or you can email us at transportationplanning.columbiasc.gov and emails will be monitored during the meeting. To quickly review the extent of the project, the new block facilities will cover 14 blocks on Calhoun from Wayne Street to Hardin Street. The project includes both shared lane markings, also called sharers, bike lanes, and a road diet. We will review the block by block plans in just a moment. To review the project background, this project began when Calhoun was identified for bike facilities as part of the Richmond County Penny referendum in 2012. In 2015, the block bike Columbia master plan identified the route as a major east-west connector for the north side of downtown, conducting the bull street development through wellness, the Vista Greenway, and the adjacent neighborhoods throughout. In June of 2018, the city and the county held a joint public meeting to provide information and obtain feedback from the community. In November of 2018, a second public meeting was held following door-to-door outreach on the Calhoun Street project. While resurfacing was not included in the penny funding, staff felt strong that this is an important step to ensure long-term success both aesthetically and functionally. So in 2019 and 2020, measures were taken to secure additional CPC funding for milling and resurfacing of the blocks that are in need of resurfacing, weighing to Greg, to ensure the highest quality in product and penny tax funding will cover the restriping. In March of 2020, a final public outreach meeting was scheduled and then canceled due to COVID-19. So today, we're picking up where we left off last spring as city council and administration wanted to ensure that folks have the current information and an opportunity to ask questions in advance of the project's installation. While the project stretches for 14 blocks, the road diet only affects three blocks, from some sort of pick-in. However, it's important that we review the benefits of a road diet for those who may not be familiar with the safety improvements. By switching from four lanes of traffic to two lanes in each direction with the center-turn lane, this reduces the possible points of conflict by half, as you can see in the diagram on the right. As well, the increased in lane width from 9 to 11 feet will reduce shy driving and sideswipe accidents by providing more room for motorists and cyclists alike. Now I'll click through a block-by-block of the proposed changes. Starting at the east end of the project, from Wayne to Gadsden, shared lane markings for share-os and share-the-road sign-ins will be added to both eastbound and westbound lanes. Similarly, from Gadsden to Lincoln, share-os and the share-the-road signage will be added to both eastbound and westbound lanes. And finally, from Lincoln to Park, again, the share-os and the shared lane, share-the-road signage will be added to both the eastbound and the westbound lanes. From Park to Assembly, bike lanes and signage will be added to both eastbound and westbound lanes, with signage indicating the beginning and end of the bike lanes respectively. One lane of traffic in each direction is maintained with a center-turn lane for left turning traffic. From Assembly to Main Street, bike lanes and signage are added to both eastbound and westbound lanes, and two lanes of traffic in each direction will be maintained. On-street parking is removed from the north side of the street to accommodate the restriping. Similarly, from Main to Center, bike lanes and signage are added to both the eastbound and westbound lanes, and two lanes of traffic in each direction will be maintained. On-street parking, again, is removed from the north side of the street to accommodate the restriping. From Sumter and Marion, this is one of the roadblock diets. Bike lanes and signage will be added to the eastbound and westbound lanes, and one lane of traffic in each direction will be maintained with a center-turn lane. There is space for potential on-street parking on the south side of the street. From Marion to Bull, this is another of the roadblock diets. Bike lanes and signage will be added to the eastbound and westbound lanes. One lane of traffic in each direction will be maintained with a center-turn lane. A few parking spaces are being removed from the north side of the street. However, space for potential on-street parking is available on the south side of the street. Then from Bull to Pickens, this is the third block where lanes are reduced. Bike lanes and signage will be added in each direction. Space for potential on-street parking is available on the south side of the block, and a right turn lane on the pickens in the eastbound lane will be marked on the pavement and also with yield to bikes signage. From Pickens to Henderson, bike lanes and signage will be added to both the eastbound and the westbound lanes. From Henderson to Barnwell, this is the first block of the bike lane for westbound traffic, and signage will indicate to begin the bike lane and also yield to pedestrians for the potential pedestrian traffic crossing Calhoun. On the eastbound lanes, bike lane ends and transitions to Sherrow's with signage to alert cyclists and motorists to share the road. The bike may use full lane and downhill cyclists ahead. From Barnwell to Gregg, Sherrow's and Sherrow's road signage will be added to both eastbound and westbound lanes. And finally, from Gregg to Hardin, Sherrow's and Sherrow's road signage will be added to both eastbound and westbound lanes. The anticipated schedule will be to bid the project for the end of this year and for construction to take place next spring. The construction timeline will be shared in advance when more details will come available. If you have questions, please make note of the public input options, which I will run through again. Then while we're getting people queued up and reviewing emails that may come in, we will review some frequently asked questions. To participate, you can dial<PHONE_NUMBER> and when prompted, enter the meeting code 8104. For those participating by phone, you'll receive three options on how to participate. Star 1 will allow you to listen to the meeting. Star 2 will allow you to record a voicemail message with questions, which will be played live during the meeting, question and answer session, and answered accordingly. Star 3 will allow the participant to be placed in a queue so they may ask their questions live during the Q&A session when prompted. You can also join the virtual meeting on the web at publicinput.com slash calhoun-info or you can email us at transportationplanning.columbiasc.gov. So now we'll just quickly go through some of the frequently asked questions. So, as we mentioned earlier in the presentation, Calhoun has been identified for bike facilities since 2012 when the Richland County Penny Referendum and was later reinforced when the Walk Bike Columbia plan designated the route as an east-west connector for the north side of downtown. In the years that followed, City Council and staff worked on a bicycle facility priority map to ensure that as much connectivity as possible is provided as funding becomes available. This priority project map also referred to as the spaghetti map includes Calhoun as a priority bicycle route. So why does the design shift from block to block? Many considerations must be taken into account when introducing new bike facilities to an existing roadway such as resurfacing, on-street parking, traffic volume, speed, and road grade. The resurfacing of Gregg DeHarden was done recently as part of a storm route project. The remaining 12 blocks from Wayne to Gregg will be resurfaced as part of the scope of this work and is funded by the County Transportation Committee. This will provide a high-quality surface with highly visible and durable thermoplastic lane markings. The transition from sharers to bike lanes considers existing road width, traffic volume, on-street parking demand, and grade change. For example, the most heavily trafficked blocks, assembly to Sumter, maintain four lanes of traffic in addition to the bike lanes to accommodate all means of travel. From Sumter to Pick-In, the volume drops, and that is where the road diet picks up for three blocks, but Pick-In's the road width narrows to 35 feet. This slide indicates the areas where the on-street parking is being removed and where potential new parking could be added. So what does construction look like? Construction will likely include milling the entire area to be resurfaced first and paving and restriping one side at a time, necking down traffic as required, but should not include a full road closure. It is expected that it will take several weeks, but less than 60 days. More information will become available after the project is bid and the contractor is selected. Who is involved? While this project has truly been collaborative, the city has worked closely with the Richland Penny team to develop the plans. As mentioned, the repaving is being funded by CPC and the striping by the penny tax program. Additionally, it is important to note that the public meetings in 2018 were very well attended and volunteer board members from the Bicycle Pedestrian Advisory Committee went door to door to try to reach as many folks as possible, face to face and encourage them to attend the meeting. Adjustments were made to the plans to address many of the comments received at those meetings, as well as through other forms of public feedback. Today, we have a number of city departments collaborating on the project from public works and engineering, police, parking services, public relations and planning. If there are still additional questions, we're going to start checking on our public input and see if we have any emails coming through. Shane, do we have anybody on the line? Lucinda, right now, I don't have anyone who has indicated they want to speak at this time. Okay, thanks. What about emails? Do we have any emails that have come through? This is Lee. I do not have any emails at this time. Okay. Well, I guess one thing we had also talked about doing was reviewing some of the comments and questions that have come over the last couple of weeks. So, Lee, do you want to start with us? Sure. So, one of the questions that we have talked through and at public meetings as well is what types of signage will help indicate the road change for both motorists and bicyclists alike? That's a great question. I think there's two things that are going to be done in the way of signage. The first one is in advance of the project construction, there will be signage in place to alert people that this is coming. And that'll be just to again increase the public awareness, provide information for people who want to find more out about the project at that time. And then once the project is constructed, there will be permanent signage that will indicate what the facilities are on the road. It'll be signage for motorists to whether it's a bike lane or a shared lane marking, they'll be signage on both sides of a block in both directions. And then when we have really specific situations, for example, the right turn lane on the pick-in for motorists will need to merge into the right lane that there will be signage to yield to bicyclists. And then the grade change specific situations like downhill bicyclists, bicyclists ahead, those types of things will be indicated with signage as well. Sure. And I guess another question that we've received in the past is dealing with bicycle friendly storm drains. So whether or not they would be installed as part of this project. That is also a great question. The storm grates were not part of the original step of the project. However, recognizing that that is an important part of making bicycle facilities as safe as possible, we are going to include those when the bid documents go out as an ad alternate, and we are hopeful that that might be able to be part of the project scope. Great. And in the entire meetings about other bike facilities, we've had some discussion a little bit about where a bike facility is provided, are you required, to ride in the bike facility, are you still able to use the sidewalk? So when bike facilities are provided on the road, and a cyclist is on the road, they are required to use that facility as they are considered vehicles, so they have to follow the traffic laws. However, there are instances where if somebody is, for example, coming up the hill on the eastbound, or excuse me, on the westbound, and they feel more comfortable on the sidewalk, as long as they're not in our downtown core, it is okay to ride a bicycle on the sidewalk. So that's another option for folks who might just not feel comfortable in certain parts of the road. Awesome. And for the purposes of this project, that would just be assembly to center, right? That's correct in terms of where you cannot ride, correct. And then I guess a final kind of question for folks, and this might be a little bit of a plug for ourselves, but you know, a lot of times when we're at a public meeting or we're holding a public meeting virtually, folks ask how they can stay engaged or get engaged in an earlier stage in the progress, or in the process for future planning efforts. So just some information about that would be helpful. Sure. So for this project, we are asking that if anybody has specific questions or comments they'd like to make about Calhoun Street, that they submit those by July 6 by emailing us at our transportation planning at columbiasc.gov. As well, we have social media outlets that people can check into, and there is a walk by Columbia listserv. So if people want to email the transportation planning email, they can get added to that listserv, which will include getting information as, you know, as current as possible whenever we send out updates. And we also encourage people always to check our website, the City of Columbia website, and also the Columbia Compass updates. So anything you want to add to that? Is our social media expert? I know. That's perfect. We love to stay in touch with y'all. So if you're watching, please, please sign. All right. Shane, do we have anybody at his call then? Hey, again, we, there's no one on the line who has indicated they wish to speak at this time. Okay. And to do that, they just need to hit star three, right? Yes, if they'd like to speak live, star three, we'll put them in a queue, and then they can ask their questions live. Work or rather, just leave a voicemail. They can certainly do that by pressing star two. I did get an email. I'm good. Matt Kennel, City Center Partnership. Right. Thanks for a very comprehensive presentation. The plan as presented is very solid and should work well for vehicles and bicyclists. Let's hope the schedule will be maintained and construction can start in the spring of next year. Thank you, Matt Kennel. Great. Well, thank you, Matt, for participating. Do you appreciate your comments? Absolutely. Well, does anybody on city staff have anything they'd like to add or comment on? And I guess what we'll probably do is maybe in a few minutes, if we don't hear from anybody, we'll just have our little old music until the next presentation. And just as a reminder, we're going to be giving the same presentation at six thirty, so people who might not have been able to make the five-party meeting and we'll do a similar Q&A afterwards. So there are still opportunities to see the presentation and to ask questions and to make comments. And if anybody just missed the first few minutes, you can just move the YouTube back and you should be able to catch those as well. Great point, thanks. Yeah, great job, guys. Thank you. I agree. Very well done, Lucinda and team. I think this is going to be a really nice project. I'm really excited about getting it off the ground and moving and good job presenting what we're doing and explaining it. Well done. Thanks. We're excited too. Hi. All right. I'll patch them through. Thanks, Shane. Hey, y'all. This is John Epting. I'm serving on Richland County's Transportation Penny Advisor Committee and I'm thrilled to see that this funding is being utilized and I think this is a great project. But I'm also a cyclist and I do use this Calhoun Street corridor pretty regularly to ride. And one problem my encounter often is that the crossings, especially at the major thoroughfares, assembly, main, bull, Calhoun can be, I'm sorry, not Calhoun, but rather Sumter. It could be a little tough at times just because I don't know if those intersections, the timers are super long or if they are triggered by traffic coming across those intersections. I was just curious if there's any modifications to traffic control that could be made to better facilitate cyclists that could be incorporated into this project? That's a great question and thanks for joining us. We can certainly ask that question of our topic, so I'm not aware of any signal changes that are planned at this point, but we can absolutely find that out for you. Lucinda, this is Robert. We'll actually look at the traffic timings. Project is done. We'll get Drew to go back and look at everything and make sure all the loops are connected and we do what we do to move all traffic efficiently. Perfect. Thank you. Awesome. Good y'all. I didn't have any other emails at this time. Just checking in. Okay, thanks. Shane, we got anybody else? No, not at this time. That's it for mail. Okay, thanks. Thank you for joining us this evening for the Calhoun Street Public Information Meeting. This is the second of two identical presentations. We gave one at 5.30 and this is the 6.30 meeting, which will be followed by question and answers. The agenda for the meeting will begin with a review of how to participate. Okay, apologies. I still have my YouTube open. All right. So the agenda for the meeting will begin with a review of how to participate in the virtual meeting format. Review some briefly asked questions and then we'll take live calls, voicemails, and emails and try to answer any questions that come in. We do have a number of city staff from various departments here to assist in answering questions. To participate, you can call in by dialing<PHONE_NUMBER> and when prompted, enter the meeting code 8104. Those participating by phone will receive three options on how to participate. Star one will allow the participant to listen. Star two will allow the participant to record a voicemail message with questions which will be played live during the Q&A session. And star three will allow the participant to be placed in a queue so they may ask their questions live when prompted. You can also join the virtual meeting on the web at publicinfo.com slash calhoun-info or you can email us at transportationplanning at columbiasc.gov. Emails will be monitored during the meeting. To quickly review the extent of the project, the new bike facilities will cover 14 blocks on Calhoun from Wayne Street to Hardin Street. The project includes both shared lane markings, also called sharers, bike lanes, and a road diet. We will review the block by block plans in a moment. This project began when Calhoun was identified for bike facilities as part of the Richland County Penny Referendum in 2012. In 2015, the walk might be a master plan identified the route as a major east-west connector for the north side of downtown. Connecting the Wall Street development, Drew Wellness, the Vista Greenway, and the adjacent neighborhoods throughout. In June of 2018, the city and the county held a joint public meeting to provide information and obtain feedback from the community. In November of 2018, a second public meeting was held following door-to-door outreach on the Calhoun Street project. While resurfacing was not included in the penny funding, staff felt strongly that this was an important step to ensure long-term success, both aesthetically and functionally. So in 2019 and 2020, measures were taken to secure additional CTC funding for milling and resurfacing of the blocks that are in need of resurfacing, which are Wayne to Greg, to ensure the highest quality end product, and penny tax funding will cover the restricting. In March of 2020, the final public outreach meeting was scheduled and then was canceled due to COVID-19. So today we're picking up where we left off last spring, a city council and administration wanted to ensure that folks have current information and an opportunity to ask questions in advance of the project's installation. While the project stretches for 14 blocks, the road diet actually only affects three blocks from some sort of pickings. However, it's important that we review the benefits of a road diet for those who may not be familiar with the safety improvements. By switching from four lanes of traffic to two lanes in each direction with a center-turn lane, it reduces the possible points of conflict by half, as you can see in the diagram on the right. As well, the increase in lane width from 9 to 11 feet will reduce shy driving and side-swipe accidents by providing more room for motorists and cyclists to like. Now I'll flip through a block by block of the proposed changes. Starting at the east end of the project, from Wayne to Gadsden, shared lane markings or sherros and share the road signage will be added to both eastbound and westbound lanes. Similarly, from Gadsden to Leakin, sherros and share lanes, share the road signage will be added to both eastbound and westbound lanes. And from Lincoln to Park, again, sherros and share the road signage will be added to both eastbound and westbound lanes. From Park to Assembly, bike lanes and signage will be added to both eastbound and westbound lanes, with signage indicating the beginning and the end of the bike lanes respectively. One lane of traffic in each direction is maintained with a center-turn lane for left turning traffic. On Assembly to Main, bike lanes and signage are added to both the eastbound and westbound lanes, and two lanes of traffic in each direction will be maintained. On Street parking is removed from the north side of the street to accommodate the restriping. Similarly, from Main to Center, bike lanes and signage are added to both eastbound and westbound lanes, and two lanes of traffic in each direction will be maintained. On Street parking is removed from the north side of the street to accommodate the restriping. From Sumter to Marion, this is one of the road diet blocks. Bike lanes and signage will be added to both eastbound and westbound lanes. One lane of traffic in each direction will be maintained with a center-turn lane. There is space for potential on Street parking available on the south side of the street. From Marion to Bull, this is another of the roadblock diets. Bike lanes and signage will be added to both eastbound and westbound lanes. One lane of traffic in each direction will be maintained with a center-turn lane. A few parking spaces are being removed from the north side of the street. However, space for potential on Street parking is available on the south side of the street. And from Boulder Pickens, this is the final block where the lanes are reduced. Bike lanes and signage will be added in each direction. Space for potential on Street parking is available on the south side of the block. And a right turn lane onto Pickens in the eastbound lane will be provided and marked on the pavement. Also, there will be yield to bike signage. So from Pickens to Henderson, bike lanes and signage will be added to both the eastbound and westbound lanes. From Henderson to Barnwell, this is the first block of bike lanes for westbound bicycles. And signage will indicate begin the bike lane and also yield to pedestrians, where folks might be crossing Calhoun at this location. Eastbound, the bike lane ends in transition to Cheros. There will be signage to alert cyclists and motorists to share the road that bikes may use for full lane and also downhill cyclists ahead. From Barnwell to Gregg, Cheros and Share the Road signage will be added to both eastbound and westbound lanes. And from Gregg to Hardin, Cheros and Share the Road signage will be added to both eastbound and westbound lanes. The anticipated schedule will be to bid the project towards the end of this year and for construction to take place next spring. The construction timeline will be shared in advance when more details become available. If you have questions, please make note of the public input options while I'll run through again. Then while we're getting people queued up and reviewing emails that may have come in, we will review some frequently asked questions. To participate in the meeting, dial<PHONE_NUMBER> and when prompted, enter the meeting code 8104. Those participating by phone will receive three options on how to participate. Star one will allow the participant to listen to the meeting. Star two will allow the participant to record a voicemail message with questions. And star three will allow the participant to be placed in a queue so that they may ask their questions live. You can also join the virtual meeting on the web at publicinput.com slash calhoon.com or you can email us at transportationplanning at columbiafz.gov and the emails will be monitored during the meeting. Now we'll go ahead and run through some of the frequently asked questions. So first of all, why CalHoon and why now? Well, as mentioned earlier in the presentation, CalHoon has been identified for bike facilities since 2012 when the Richland Penny referendum came out and was later reinforced when a lot of bike Columbia plan designated the route as an east-west connector for the north side of downtown. In the years that followed, city council and staff worked on a bicycle facility priority map to ensure that as much connectivity as possible is provided as funding becomes available. This priority project map also referred to as the spaghetti map includes CalHoon as the priority bicycle route. So why does the design shift from block to block? Many considerations must be taken into account when introducing new bike facilities to an existing roadway such as resurfacing, on-street parking, traffic volume, speed and road grade. The resurfacing of Greg DeHarden was done recently as part of a stormwater project. The remaining 12 blocks weighing to Greg will be resurfaced as part of the scope of work and funded by the county transportation committee. This will provide a high-quality surface with high-quality, visible and durable thermoplastic lane markings. The transition from shadows to bike lanes considers existing road width, traffic volume, on-street parking demand and grade. For example, the most heavily trafficked blocks, assembly to Sumter, maintain four-linked traffic in addition to the bike lanes to accommodate all means of travel. From Sumter to Pickin, the volume drops and that is where the road diet picks up for three blocks. Then it pickens the road width narrows to 35 feet. This slide indicates the areas where on-street parking is being removed and where potential new parking could be added. So what does construction look like? Construction will likely include milling the entire area to be resurfaced first and then paving and restriping one side at a time. Neck and down traffic is required, but should not include a full road closure. It is expected that it will take several weeks, but hopefully less than 50 days. More information will become available after the project is bid and when the contractor is selected. And finally, who is involved? The project has truly been a collaborative one. The city has worked closely with the Richland Penny team to develop the plans. As mentioned, the repaving is being funded by CTC and the Striping by the Penny Tax Program. Additionally, it is important to note that the public meetings in 2018 were very well attended and volunteer board members from the Bicycle Pedestrian Advisory Committee went door-to-door to try and reach as many folks as possible face-to-face and encourage them to attend the meetings. Adjustments were made to the plans to address many of the comments received at those meetings as well as through other forms of public feedback. Today, we have a number of city departments collaborating on the project from public works, engineering, police and parking services to public relations and planning. So if there are any additional questions, I guess we'll check in with Shane to see if we have anybody queued up on the line. Hi, Lucinda. It doesn't appear that there's anyone who wishes to speak at this time. Okay, thanks, Shane. Lee, did we get any email? I don't have any new emails, but if you'd like, we can go through some questions that have been asked at prior meetings or prior questions. Absolutely. Sure. So one of the questions we've received in the past is what type of signage might motorists and bicyclists expect to help them kind of adjust to this new configuration of Calhoun Street? That's a great question. So there'll be, I guess, two levels of signage that we can talk about. The first one is in advance of the project before anything is installed, there will be signage along the corridor to alert people that the project is about to happen and just try to give people a heads up about what to expect. When the permanent project is installed, the permanent signage will include a variety of different signage for motorists and bicyclists. There'll be share the road signage, wherever we have shared lane markings or sharers. There'll be bike lane signage, wherever we have bike lane. And then where we have special circumstances, for example, when traffic needs to merge into the right turn lane to turn right on the pick ends in the eastbound lane, there will be signs that say they need to yield to cyclists. And we'll also have yield to pedestrian signage, where we expect for there to be high pedestrian traffic and things like that. In advance of the hill, we'll have a sign that says need grade ahead for cyclists. So there will be specific signage to acknowledge particular circumstances. Awesome. Another question we've received in the past with this project and others is about the inclusion of bicycle friendly storm drain grates, where they interact with bike lanes. Great. The new grates are not part of the original scope of the project. However, to acknowledge this question and to recognize that that is an ideal thing to replace as part of a bike facility project, it will be included in the bid as an alternate. If the funding is available in the project scope, we will certainly get hopefully get that installed. Awesome. Should we check in and see, Shane, do you have any other callers? No. No, Lee, at this point, there's no one who wishes to speak. And they wish to speak, they press star three, is that correct? That's correct. So I guess another question that we've talked about in the past is actually in a question that was asked at our earlier meeting was how might we be looking at the traffic signals in the road corridor with the addition of bike facilities? Yeah, that was a great question that came in. And our public works director tells us that he and the traffic engineer will be looking at the signalization as the project is installed and sort of look at any adjustments that need to be made to make sure that the traffic is meeting efficiently for all users. So that will be looked at. Perfect. And then just kind of a final self plug, I guess, is how can people stay engaged based with this project and other transportation planning projects? What's the best way for folks to stay in the loop? Great. Thank you. So for this particular project, we are asking that people have any additional thoughts or comments or questions that they could please email the transportation planning at colombiasd.gov by July 6th. That's a couple of weeks from today, just any additional thoughts you might have. And we'll certainly try to address those individually. In addition to that, please do stay engaged with through the city's website, through our social media outlets. And then also, if anybody's interested on getting on the WalkBike Columbia listserv, they can just email us at the transportation planning email and be added to that. And that way they'll get updates whenever they come out about any kind of transportation or bike head projects that are coming. Perfect. Thank you. I guess we'll check in again with Shane and see if anybody has called in. Hi, Lucinda. There's no one who has called in since the last time he checked in. So we're good right now. All right, great. Thanks. And it does not look like I have any further emails at this time. Of course, if we receive emails after the meeting, those will certainly be added to the comments and we'll be able to respond to those as well. Great. Well, I guess we'll just sort of hang out for a few more minutes and see if any calls come through or emails and probably try to wrap up in the next five to 10 minutes if we don't hear from anybody. Well, I guess we don't have a barrage of calls or emails right now. So we'll just, I mean, Shane, I'll check in with you one more time. But if we don't have anybody, I think we'll just kind of reiterate how to get in touch with us from here on out and probably close out the public meeting. No more callers, Shane? No, no more callers. Okay, excellent. Well, thanks everybody for being here and we're really excited about this project and do get in touch with us if you have any other comments or questions about this project. Thanks, Lucinda. Thank you, guys.


Miss communication are bad eyes and I think those are two things that we can correct moving forward and you know ultimately eliminate those Whenever we can Yeah, they got a few guys like you said receiver wise that are big that are physical and they play play physical and play up to that Statter So I think it's just up to us really to just be physical back really and just play ball I don't think there is a Necessarily a element of you know, I guess how physical it is But as far as just being being physical being ready to go in when your numbers call I think we just got to make plays and when they're there and try to get the ball back to our offense They got a quarterback that's Exceptional he throws the ball really well a bunch of talented guys at the ball as far as running backs tight into receivers go So it's gonna be our job to limit or eliminate them and limit them to no big plays and try to get the ball back to our guys I know it's only week two very early in the season But if you look statistically over time, it's not real favorable for teams who start Is there a little extra urgency in here that someday you got to get it done at home? I think there's urgency every day. We show up. I'm not really a big I guess statistics or whatever you kind of go. I play ball So I think that's just really what I focus on is just showing up and playing ball when I can I don't really look at too much statistics when it comes to anything else other than just who I'm lining up against and playing it like that Yeah, I think I think I started in the right direction in week one still not Satisfied until the whole world know about our key How important is it that you guys up front continue that this week against their office very important? I think it's the most important thing on defense just to Rattle him just to get a lot of bodies around and just to hit him Because we know he can make any throw around the around the football field So we know we got to get to him Shane talked outside pretty good effort, but five plays for 160 yards in the passing game. You got to correct that How important is that particularly against an offense is explosive? Definitely. I mean they got a lot of weapons over there. I mean a lot of it So it's big this week to stay locked in on the details It's all about details once if we stay locked in on the detail Yeah, of course, they're gonna they're gonna make theirs because they get paid to but we'll keep it at a minimum You played in these I stayed in a few times, but this will be the first regular season Yeah, you run out of that tunnel for starting lineups and all that sort of thing How much you're looking forward to that? I'm looking forward to it I was just we did we had a little meditation this morning and that was one of the things that came to my mind Just see how the fans Take how what the fans do when they hear my name come out there stating just don't want to spend just to see You know there were some details that we needed to hone in on to be there for Ryan and Like we all said, and it wasn't just on Ryan It was on all of us we could have played our part better And you know we just gonna leave that in the past and move on Yeah, I just say I'm just keep practicing and doing exactly what they told me and you know, I'll be back to I need to be We all do you know we all just need to play our part know our role on this football team and just keep you in better Tim Kelly just stress the importance of first and second downs just converting on that like What do you look at in terms of what you can do better in that situation? We all just need to be better on candy ball. No pre snap penalties and Just really just going out there and playing our bread of football not doing too much not overdoing anything You feel like you guys are closer to having a pretty good day as opposed to the day that it was on Sunday That's not that far off. You know, I would just say, you know Things happen, you know, we had a lot of penalties You know, we can't take those back and just keep getting better Is there an urgency about this game just home opener and trying to get that first win and go into I would just say We treat every game like that. I'm just gonna practice it and go out there and play


Hello, and this series that we're starting off now is on playing with binary files And I thought a good way to start off is by creating some binary files So I'm on Debian Linux here, and we're going to Compile some stuff both for Linux and for Windows Right here on my Debian machine. So I have this folder made and you can see I've got two C programs in it One is just a basic Shell output and the other one is a very very basic GUI dialogue for Windows Both are just hello worlds and then we also have a folder that if I list out you can see as an icon file in it Which we'll be using towards the end of this tutorial. So first off. Let's just cat out our Main dot C here and you can see it's very basic. We got our main function and we got our hello world returning zero Okay, so let's compile that I'm going to use GCC Which if you don't already have installed you can install with aptitude or apt-get or whatever package manager you prefer I'm gonna say main dot C. I'm gonna say the output is main. It's compiled We got no errors on the output there. So we're gonna say dot slash main and it we get hello world Now let's go ahead and do the same thing but for Windows and we're going to use Ming 32 Ming W 32 And the name of the file may change Depending on what operating system you're running But if I say aptitude and I just search or apt-get if that's what you use and I search for a package I just say mean W You can see you get a bunch of packages and you just want to make sure you have the one installed that you want You can do 64 bit or 32 bit. I'm on a 64 bit Linux system, but I'm gonna be compiling for win 32 I'm gonna be testing this out on a XP 32 bit machine and a virtual machine But all depending on what your goal is 32 bit is good because it's 64 bit is backwards compatible. So what we do now is once we have that installed and again, this may change slightly this command I'll say I I 586 dash Ming W 32 MS VC and if we hit tab a few times here, you can see there's a bunch of different ones here. I'm gonna use GCC and again, this may change depending on your distribution. It might be I 686 but once you have it installed you should be able to find it using aptitude or apt-get But one now we're gonna use that we're gonna say main dot cease we're using the same C file because It's gonna work on both operating systems without any changes and we're gonna say dash O and because it's a Windows Xcube over now on to dot exe So we've created that we list it and it's right there. Of course, we can't run it on here Natively anyway, so let's go to XP over here. I have a web server set up on my main machine there So I can say one nine two One six eight and we'll go to where I have that save. So there it is I'm going to download that Save it Open that folder and of course if I double click on this and click run you're not gonna see very much We have no pause or anything so it open and close real fast. So actually let's do this and we will run cmd and we'll go to my documents downloads Durout the directory. Sorry. This isn't any bigger But you can see we have in there main dot exe when I hit it. Hello world. So our executable worked there So let's go back over here and actually no, I'll do that later on I'm thinking about adding something to the tutorial I don't have already planned. So let's do the same thing but with our GUI for Windows So let's go ahead and cat out main If we used to see our code here very very simple We're using the Windows header file, which I don't necessarily recommend because now you're using something that's only going to work natively on Windows and there are other options out there But for the sake of the tutorial keeping things simple without having to install any other libraries We're going to use it and we're going to do a message box that says hello world with an okay button and returns zero So basically same as our last command But we're going to tell the new File which is main GUI and we'll call the output When hello sure that works and we will hit enter And so we've created that we can list that out you can see it right there a little more information on them So that's it right there.  You don't change anything in the code to get rid of that you just give the Compiler different arguments, so we're writing the same argument as before We're going to just add dash M Windows telling it that this is a Windows not a DOS or you know shell or console program for Windows Doing that same thing so without changing the code just adding dash M windows coming back over here Redownloading it Which Firefox will append to it a one there now you can run that click run And as you can see we got our pop-up here dialog box without the console window So great, but you also notice that these programs all have the very basic generic icon because we haven't issued it an icon so we're gonna come in here and We're going to look as it get as it said earlier under my RES it's just a folder. I made you could have it in the same folder, but I put my resource files under a different folder I have an icon let's go ahead and Display that out so you can see what it looks like icon there you go I made it 64 by 64. It's just an image. I got off Google and it's just a tux on a hard drive or something so We're going to use that so what we have to do is we have to use the compiler to make that into an object That we're going to get to then embed into our exe. So we need what we will call a Resource file. So we're gonna say main dot RC. Oh, sorry Let's use Vim a text editor whatever text editor you prefer main RC and then here. We're just going to type in a line We're going to say ID space icon and we're going to say where the Resources so it's in my resource folder since we'll be compiling from this current folder the name of it and that is pretty much it There's other things you can do with the resource files, but we're just doing an icon That's all you have to do to create that file now We're going to use the compiler and that file to create the actual object. So we'll say I5 86 and this time instead of GCC. We're going to say win dress So so wind resource dash oh and We're going to I'll put it in that same folder the icon is in but we'll call it icon dot oh Because it's an object file. We're creating you can also do this to embed images for other uses in your xk wheels But we're not going to go into that today, but we're creating the object and we're going to use what we put into our resource File here. So no errors on the output there now if I list my resource folder Not only do we have the icon itself, which we can now delete Yeah, I don't know why you would do that save for future use, but you also have our objects So now we can run our same compile command that we ran earlier We're going to add in here to use this resource file and again, we're going to have our No windows on this one. So I'll hit enter no errors and by the way, I keep overriding the same file You do want to take that into account that GCC and other compilers don't tend to warn you if you're going to overwrite a file So save this and it's going to create a new one and look we have an icon with tux on it and We can click that run it same thing no console, but we got a little pop-up here and control L to clear the screen So I just want to say also that let's say you do have a console or shell program That you're compiling and it's gonna be running a lot of things maybe going through lots of files and stuff like that And you don't necessarily want the shell window to show up You can do the same thing of dash M Windows on a non GUI program and that way you won't see that console or terminal window pop open Although if you do do a system call it may open up a new window that you went will then see But all depending on how you write the program But just be aware if you wanted a program to run in the background with no GUI you can use the dash M Windows Argument for the compiler So that's a quick look at Compiling cross compiling adding icons I know somebody will probably ask the question of how do you embed icons and executable for Linux? And the simple answer is you don't because is it's not a good way to do things For lots of reasons, but I do thank you for watching in the next tutorial We're going to get into picking apart these binaries We just created as well as other binary files and then the week after that I think we'll be diving into picking apart binary files that are Network package packages that you captured while sniffing either using wire sharp shark or TCP dump or ether cap So I hope that you're going to enjoy this series. I hope you look forward to them and Hope to see you next week Have a great day. Oh and also as always, please visit films by Chris comm that's Chris the decay Should be a link in the description as well as a link to all the notes for this tutorial Thank you for watching and have a great day As we're talking before we started this interview he's going to touch on this lightly in this interview But in the future he's probably going to go into more detail and more technical aspect of it in future talks Sure, so, um, you know what we did at this company is we used a versioning software called If you enjoy my tutorials and would like to see more Please think about contributing to my patreon account at patreon.com forward slash metal x 1000