for the South African Broadcasting Corporation as its economics editor. I often say that we carry one of the most noble and compelling mandates on the continent to educate, to entertain, to inform, and to play a role in democracy and in development. We will be televising this session live as the SABC, as Africa's largest broadcaster to 50 different African countries. Welcome. I will now introduce our guests and my esteemed panel, your Excellency President Nanga Goy of Zimbabwe. Welcome to our country.  You're former minister of justice, former minister of defense, former minister of rural and housing and social amenities. You're also former minister of finance. You are well equipped to speak to this topic. We are also joined by one of Africa's most influential women. You come from Cairo. You're in the Cape now. You arrived at a time when we are mourning the death of a woman in this country, hence the demonstrations outside the World Economic Forum venue. Her name is Zinene Mkhwekyan. We honour her today. Your background is in electrical engineering and you have worked for the United Nations, the African Development Bank, and so on and so forth. Thank you for joining us. All the way from Europe, Danielle Stoffel Del Prez is a representative of the Swiss government and is State Secretary for International Finance. We will be discussing PPPs. Thanks for joining us. Jeffrey White, CEO of Agile, a very fashionable name at the moment, came and flew in from the Middle East. Thanks for joining us. Madame Wong Ai is from Singapore. She comes from a region whose development path we are all envious of and could share many lessons that we would do well to take heed of. Welcome. Your Excellency, we come from a region, you and I, of uneven development and many infrastructure backlogs. What do you think the big mega projects can do to help us improve employment levels, more even development, most importantly, how can we begin to collaborate? Well, we have to look at each country's background, the history of each country, contributes to where we are in terms of the level of development, in terms of the acquisition of technology in our respective economies. But at the end of the day, history is the past. We now have to look into the future and to see what must we do for ourselves to improve the lives of our people into the future. In my view, speaking about Southern Africa, Sadiq in particular, all the member states of Sadiq have different histories and the size of our economies are different. But it is necessary that we integrate, we talk to each other, we have conversation about how we move forward. It is necessary that I should mention at this stage that the current crop of leadership in Southern Africa, Sadiq in particular, is now different from the founding fathers of Sadiq. The liberation leaders. Yes, because their task at the time they were seized with the task to liberate our region, that every single country in our region should be independent. So there was a political struggle to gain independence, freedom and dignity of our people. But our current crop of leadership have a different task to achieve. It is now economic rather than political. Yes, political because we must deepen our democracy. That is political. But it is necessary that we now grow and modernize our economies. We must be able, as we develop individually, make our economies talk to each other, have a conversation to each other. Now you are talking about major projects in our respective countries. What comes to mind immediately is the major projects that are applicable to the region. Things like energy. We have a deficit of energy in the entire Sadiq area. So we must look at how we must collectively resolve the issue of energy in Southern Africa or in Sadiq in particular. That is number one, so that as we move forward, as we modernize energy or electricity is critical to achieve that objective. Then secondly, the issue of infrastructure. Some infrastructure is domestic. That is national. Some infrastructure is regional. If you look at roads, we must have roads that speak to each other. We must have roads that are developed, a standard that is acceptable to the entire region in our area. Let us look at our railway infrastructure. Our railway infrastructure was developed separately during the colonial period. But now we must make sure our railway system and networks must speak to each other. We must modernize, we must have a vision as to what we must have in future in relation to our railway system in our respective countries. I think something like of the 15 or 16 countries of Sadiq, I think 12 of them also are land logged. They have no access to the sea. But we must not then bury our heads in the sand and say we are land logged. We should say initially we believe we must say we are land linked. And how do we get land linked? We must develop systems to take us to the sea. But down the line as we cooperate with countries which the seas like Mozambique, South Africa and Namibia, we become also sea linked because we have now developed infrastructure that can look after our goods and services in and out. But to do so, we must have a system where those countries who are land logged. The cost of their services in and out, goods and services, we must find a way of lessening that burden so that on average our economy should be beddened by the reason that we are land logged. We must be able to cooperate either by road, by rail or by air. It is critically important that we do so. So I've talked about energy which is a difficulty in our area. We also now must look at food security. It is critical that in developing countries like Africa, the primary thing we must secure is that as a region we must be food secure. Yes, we don't have the same endowments in regard to agriculture in the region. But I believe that if we modernize and mechanize our agriculture and have a focus as to where we want to reach in relation to making our region food adequate, then we must cooperate in mechanizing our agriculture, in modernizing our agriculture, and having each member state doing the best depending on the advantages they have in terms of agriculture, wildlife or livestock. That is another area. Then the next thing that follows is that we are also endowed with minerals. But not every member state of Saudi has the same number of minerals in the ground. But we should say that in the past, when our founding fathers were concerned about liberation and freedom, political freedom and democracy, we continued to exploit our resources and send them out and processed without benefiting our own materials, our own minerals. But now, under the current current leadership, we agreed that it is necessary that we look at having technology brought into the region to beneficiate our minerals together. At the end of the day, in the past, even the minerals, we had no capacity to be effective in the global market. It is also necessary now that as we develop, as Africa joins the global market, we also in our region must make sure we don't limit ourselves to the level of production, primary production. We must move forward to agro processing and the beneficiation of our minerals in the country and then participate directly into global markets. This is what I believe we should do in our region. So our task with the current leadership is that we must continuously interrogate what we must do. In my view, we bring in the type of education that must now be in our region. In the past, we were taken to school 50 years ago, 60 years ago, in order to be able to be clerks or nurses. But we are not given education to be innovative for our own needs to address the challenges which we face and by ourselves develop technologies to attend to the particular challenges which we face as a region. So again, we are now talking to our institutions of learning to change the curriculum so that they address and speak to the type of product we must produce in our institutions in order to develop ourselves. Yes, it is necessary. We cannot even the wheel, but it is necessary that as we look for technology from outside, we must have it adapted to our own conditions and also improve on it to adapt to our own conditions. I believe I talked too much. No, Mr. President, you don't talk too much. Madam Commissioner, the AU has a number of mega projects. Have these translated into increases in GDP in the various areas? What has been the impact of these projects? Thank you very much and thank you for having me on this panel. But let me start on maybe talk about what is happening on the continent and how do we perceive these mega projects. Our aim at the African Union is to create one continent that is peaceful, prosperous, and competing at the global level, as Mr. President just said. To do that, and maybe I will focus on infrastructure because this is what I know best or at least I am trying to know. Now, infrastructure, why it is important? The African Union has launched, as you know, for instance, the African Free Trade Area. And it went into effectiveness last July. We are talking about a huge continent made of 55 countries. The population is 1.3 billion people increasing. And this is a young and energetic and in need of employment. India has almost the same size in terms of population, but it is one country. Now, we are talking about 55 fragmented economies. The size of our economies is small and cannot absorb all this potential of young people and cannot create this large number of employment that is needed. Some studies say, and hear me well, that Africa needs million jobs per month, million jobs per month. This is why mega projects are important. We need to make sure that whatever we are going to do, we need this huge space and that is why we created the African Free Trade Area. We need to trade among each other, but trade in what? Trade in the roots of services. Therefore, we need to industrialize, transform and so on and so forth. Now, the African Union has created or has worked with the regional economic communities in selecting a number of regional and transcontinental projects in the fields of energy, of transport, of ICT and when I say transport, that is road, railways, air and maritime. I wanted to highlight that since we are talking about trade, the cost of transport within the composition of our the cost of export on the continent 70%. So transport accounts for 70% of the cost of export in Africa. It's 20% elsewhere. And every 1% increase in transport and telecommunication infrastructure on the continent translates into 3% increase in exports. That's why it's important we work on our infrastructure, especially that infrastructure that we were left off with mainly goes from Africa to the former colonials, but not between African countries. So that's why our program focusing on linking and physically linking the continent together and integrating it. Exactly. And taking it, taking it further. We finished a 10-year program and by which, you know, thousands of kilometers have been extended. And you're talking about the Cape to Cairo and not only by road, but also fiber optics. And it's actually done by a Southern African company that is, you know, working on the Cape to Cairo linkage. I mean, ICT linkage. So back to the question. We will see the impact in terms of GDP and we are already seeing, you know, and improved GDP on the continent. Many of our economies we have at least. Actually, even in West Africa, we have five or six countries now that account among the fastest growing economies in the world by all accounts. And despite all the challenges we're having on the continent, as a continent, we're still having positive growth rates. And this has been sustained for almost 20 years now. And resilience, not only the growth rate, but the resilience despite the global shocks that the continent has been witnessing. We have overcome these shocks and we still continue to have these positive GDPs. However, the challenge is the large number of jobs that are needed on the continent. And the cost of infrastructure is big. It's huge. We're talking about the financial needs between 100 and 130 billion by some estimates. And we can only provide a third maximum half of that as governments with all the competing demands the governments our governments are having. And in addition to all of this, we are also facing a huge challenge of climate. And many of our infrastructure gets wiped away at the next storm. And we've seen this happening, especially in this part of the world. I mean, Southern Africa and the shocks due to climate are happening in a much more vicious way and more frequently than before. And Africa, which is the less guilty when it comes to climate change, is paying the heaviest price. Madam Stoffel Delpret, Deloitte estimates that over the next 10 years, the Africa infrastructure backlog will need to be funded by the tune of about 93 billion per annum. Talk to us about funding. Thank you very much. Yes, indeed. I come from a landlocked country as well. We know a thing or two about needing infrastructure to have access to markets and to have a growth perspective. But I also come from a country where we currently live with negative interest rates. If you as a company take out money from a bank, they pay you to take their money. On the other hand, if you as an individual want to save your money and bring it to the bank, you have to pay the bank to take their money. So the huge amounts, you just cited that are needed in infrastructure, not just on this continent, but globally to also achieve the development goals that we have all set for ourselves. We need to find a solution, not just to the financing, but we also need to find a solution to having the huge amounts of money that are available to bring them to the projects that need that financing. And we as a financial market, that is one of the largest in the world, and Switzerland is known for having the largest cross-border wealth management sector within its borders. We are very interested in exactly addressing the interface between the money that is there and the need that is so apparent all over the world. And we try to do this in, I would say at least in two paths that overlap. One is we want to look at the interface and bring our expertise to the table in helping assess risks, credit risks, debt sustainability for example. Our huge insurance industry has a great power to play in that role. We are also looking at questions of transparency and of course integrity of financial markets. They all need to play a role and they all need to be brought together by the partners in a bankable project. And we are very much interested in finding maybe prototypes and working also with regional development banks in finding exactly the right recipe of all the needs as also Mr. President addressed them to have money flow from where it is to where it is needed also to the benefit of those who then invest. And I would say the second aspect that we're looking at is the huge chances and the opportunities that are opened especially in the West already by the new digital technologies. Switzerland has a regulatory framework that already addresses the challenges of the blockchain technology and we see how market infrastructure, financial market infrastructure, trading platforms, investment opportunities, advising of customers with regards to investments is already done on platforms, on systems that are easy to handle, that are very accessible, that offer a great degree of transparency and stability and security and we would already want to bring that dimension also into the mix of helping such projects come to fruition. Listening to you, one gets the sense of an exciting future for infrastructure because traditionally on our continent infrastructure spending has been funded off the balance sheet of our states and this is set to change now that you, now that there are new technologies and new opportunities for cooperation across continents and that's one of the beauties of this panel is that it's a multi-continental exercise. Jeff White, what is your contribution to this? So I think as a private sector investor and agility is one of the world's largest logistics companies operating globally and from an Africa perspective I think we are hugely bullish on the African opportunity. A lot of our traditional markets we're seeing are slowing down or stagnating we think Africa is the place to be investing and putting real capital into providing infrastructure solutions. Now as a private company we can't do full infrastructure packages and sort everything so we're investing in what we see is fundamentally infrastructure aligned with the growth opportunity so we're building across the continent a network of international standard warehouse parks. Now on the face of it that doesn't seem particularly exciting but the reality is the capability the warehousing and buildings that are fundamental building blocks to economic growth and prosperity so we use our warehouses we invest we put the capital in we buy 500,000 square meters that's about 100 football pitches to put it into perspective on the edge of all the major cities in Africa we build the infrastructure and we invest in it so it creates a platform that enables trade and we see it and I think it aligns with everything everybody said we see it as a way that manufacturers are able to have at ease of doing business and manufacture locally to meet demand it's a logistics platform that will support regional trade and the growth with the Africa continental free trade agreement the growth of a market that's 1.3 billion 2 billion people by the time it's actually up and operational we think that e-commerce is going to be huge in Africa so although building warehousing doesn't seem hugely important the reality is it enables SMEs to grow and develop and SME can come to us and we've got examples in our current portfolio where they couldn't raise the money to build premises to expand their operations and meet international standards for us they can come in under our SME program sign a lease pay a deposit and get the keys and move in Monday likewise when I look at our 65,000 global customers that we do integrated logistics for they all want to go to Africa they all understand the opportunity they just find it really difficult to execute so by building an infrastructure capability a warehouse park and it's landscaped and it's got consistent power it's safe and it's secure it enables companies to say great let's go into the Africa marketplace and it makes the ease of doing business more efficient and much simpler and faster if I look at Ghana as an example one of our large blue chip customers they had an original plan to go into Ghana that they thought would cost them five million dollars investment to find a site build a factory set it up start operating and they thought it would be five million dollars and three years before they sold any product because we'd already built and invested in infrastructure they were able to come into one of our warehouses set up their manufacturing plant so their cost of going into the Africa market moved from five million dollars to one million dollars for exactly the same business plan and instead of selling products in three years time they were able to start selling products in three months so that's a real enabler and going back to your point that's that's a platform that can create jobs can create jobs for local companies can create jobs from multinationals coming into the the continent and I think although we're doing it in a very niche sector which is in relation to warehousing the opportunity is as infrastructure gets better you can trade regionally you can manufacture and move goods instead of just selling in in Abidjan in Cote d'Ivoire you're able to sell across the whole of West Africa and that's what's going to really stimulate the economic growth well thanks for that very granular view from the ground warm you come from a country that moved from being a third world country to a first world country the dizzying speed and your infrastructure is breathtaking and enviable what lessons would you would you like to share thank you very much it's a pleasure and a privilege to be part of this panel and thank you for your kind words I think it's easier for a country like Singapore which is small to get from point A to point B in in 54 years we just turned 54 last month a little bit about myself and and the organization I represent I'm from Baker McKenzie I'm the Asia Pacific chair we are in a global law firm and we believe in following our clients and I have to say Africa has become extremely interesting you're seeing interest not just from the Europeans the Middle East but increasingly from many countries in the Asia Pacific region much has been said about Chinese investments there have been Korean ones the Japanese have been here for a long time and and India and Indonesia as well so initially as with all countries you build you start on infrastructure first and that is the development finance funded initially and then multilaterally through other countries in the region if you can paint a story or you know convince with a story that regional integration and connectivity benefits all in the end you will get a multilateral inter-regional effort and I think Singapore has piggybacked on that through an organization called ASEAN which is the Association of Southeast Asian Nations to have allowed the voice on the global stage to get the the funding and the attention that we needed but infrastructure is just the beginning and it's very interesting to hear from His Excellency and from Jeffrey and and from Mina as well the commissioner about you know infrastructure being just the foundation stone right because you're not really just looking at infrastructure per se it's everything else that that can build upon what infrastructure enables things like trade not just exports but intra-regional imports and and trade as well foreign direct investment education banking and finance technology transfers so so I see I see you know Africa is being at the beginning of a very exciting story and perhaps what I'd like to hear from this panel and maybe even the audience is much has been said about multilateral governmental and institutional effort but there has been a lot of private sector investment into Africa as well from all over the world and they're all competing with each other and the the FDI is growing by double digits across the continent so you know be interesting to see apart from this infrastructure what what the African Union and other countries are doing to get together to coordinate and enable their private sector investment because I think in the end that is going to be the engine of growth I think they'll have to answer whether the African private sector is growing and is it growing as fast as it it should but mr president we need to tell a harmonious story and we need to work on social cohesion events in South Africa recently don't bode well for regional cooperation what can we do to enhance social cohesion and unity in our region as Jan was able to tell one story how can we my own belief is that as we aspire to modernize and remove our people from poverty level to middle income levels we must address certain issues that are necessary to lift the lower strata for societies like in the area of housing the area of clean water the area of sanitation these are basic and are local I would believe that the five regions of our continent in our desire to modernize and so on we should not forget that it is necessary that we don't leave anybody behind by making sure we address those issues that are domestic that are at national level but of course in the long run they will relate to the entire region when you have clean water you will not want your neighbor to be behind you would need to say your neighbor to make sure they address that issue they focus on making sure the majority of our people have access to clean water they have access to housing Mr President if your brother Serorama Posa my president were to ask you how to deal with xenophobia in the interests of economic cooperation what would you say sir the issue is a question of understanding a question of accepting each other and that comes from how our current governments relate to the people our political parties we must preach unity we must preach love we must preach that we are one people we are brothers and sisters not only in one single country but in the region we must talk about integration so that the mentality of this is mine and it ends there must be removed we must move away from the past concept of communities being separate currently we are integrated you have South Africans marrying in Mozambique Mozambique and marrying in Zimbabwe Zimbabwe is marrying Botswana people from Botswana marrying Namibia Zambia and so on we are getting integrated so all that is necessary those things that are happening are a result of failure to bring people to a level where they respect each other and that can only be done when people ever hope when people can see that they can progress when there is a roadmap for progress a roadmap for moving from the lowest you can see that okay two years ago I was at this level now I am that level but if persons remain without hope feeling depressed it is easy for these things to happen so it is my view that we should continuously have a conversation with our people giving them hope for moving forward and implementing such projects such programs in society which lifts the hopes of our people to go forward I love it love is about growth as well thank you Madam Commissioner is Africa's private sector growing and is it as buoyant and ready for the challenges of cooperating with the governments of this continent and other private sectors in the challenge of addressing our infrastructure backlogs yes but not enough you will go across the continent all our countries without exception are conducting some form of reform in order to improve the investment line without exception but a lot still needs to be done and as I always say I mean that I just mentioned the number of 130 billion dollars needed for infrastructure alone and of course that's beyond any government to carry so unless all stakeholders are partnering with the governments we will not be able to address the challenge the private sector increasingly in our countries is perceived as a viable partner but as I said it's not enough we need to continue to improve in terms of ease of business creating economies of scale to provide you know an attractive an attractive project you know for investment continue to improve our regulatory frameworks not only at the national but also at the regional continental level since we are talking about about projects that very often you would be across border and that's a role that the African Union is doing so harmonizing the regulatory frameworks and the policies and the strategies is an essential part of what we do but there is also I mean all is not negative we have african initiatives such as Africa 50 which is by definition a private sector initiative or an initiative here to attract the private sector the african private sector to invest in Africa we want our brothers and sisters owners of businesses in Africa not to put their money in Switzerland with all due respect but to put them and to invest them in the continent so we are looking also at attracting and securing the investments of our brothers and sisters Africans to continue working on the continent and that said we are also keen in attracting the foreign investment in order to I mean the private sector the non-african private sector in this is also an opportunity for a technology transfer for improving skills for creating you know new ideas and it's a it's a dynamic so we need to to continue working on it's at this point that we need to open up to the floor but before we do let's hear from you I would just want you to echo the the quest for openness I live in a country where more than a quarter of its population is foreign and capital markets need to be open growth is definitely due to the the quantity or the the relative volume of openness be it capital be it human resources being other factors that need are needed for production and the it is difficult it is not easy it puts every society in a in a very demanding position we see that in Europe as well and I would only like to echo the strong call for openness in all these respects shall we have a broader discussion please sir thank you very much Ishan the ruler of the Washington Post thank you again for this panel his excellency the president of Zimbabwe spoke of the need to preach regional love and unity to move beyond the politics of the past but I would ask you sir what love and unity have you showed for recent protests of opposition in your own country what can you tell us about your country's progress from the politics of the past two years after a very significant transition and and hopefully towards a more progressive and inclusive democracy yes thank you very much for that question from the day I came to office my mantra was that we must be united we want a united Zimbabwe where everybody's accepted we have preached the peace and unity in Zimbabwe we've opened up for the last 20 years or so Zimbabwe was isolated it was a pariah state that we have opened we have said we are going to engage and re-engage engage with those countries that they don't engage with Zimbabwe before re-engage with the Zimbabwe with those countries that they disengaged with the Zimbabwe for the first time my brother if you uh your memory can help you the last general election where the Zimbabwe was the first general election that we held where I opened global space for global media to witness our election and it was very peaceful we were surprised when of course uh at the end of voting on the second day that there was the uh the violent demonstrations that have happened we are against that and I believe that as we go forward for instance during the campaign period I propose that all the 55 political parties participating in our general election should sign commitment to peaceful elections and we did so and it happened but not everybody will catch up with good things some remain behind but we will do our base my brother that we should continue to preach peace and ask everybody that only when we are stable and we're working together in unity can we prosper and it will be respected by the international community if we show that we're democratic we give democratic space to everybody in terms of constitution we have one of the constitutions I think in our region which is very very democratic and we we respect it however the rule of law must be obeyed the rule of law must take a route in our country not everybody observes that overnight but as we go on I have no doubt that as we move on we shall continue to improve and deepen our democracy hand on the side is that hand still up news just in terms of interregional progress how are you aligning with nipad african union how's the coordination working who is the director I think to the commissioner the nipad is is part of the african union so the african union is the commission the african union commission is the body the political body and in charge of policies and strategies and our executing arm is is nipad which is now turned into auda or african african development agency so you're we are one and as such we develop together and the next meeting is going to be in november by the way we developed together this continental transcontinental regional infrastructure project as I said that has transport energy ICT and tourism by the way and we did agreement over these and this has been a bottom up approach so every region every community region economic community southeast north they come up with with the list of projects the priority projects so and they we come together in november we trust only date all these lists and we agree on the on the priority for the the priority projects for the next 10 years and we take this in january to the heads of states summit to endorse it and we we we go for it in terms of resources mobilization and working to that but that's only the physical part of it remember the soft infrastructure is still a very big important element which is the harmonization part which is how to work together the improvement of the regulatory framework and so on and so forth and I still insist on the improvement of the investment climate at the end of the day be public money or private money you want to make sure that it's well spent and that it has you know the returns we we aspire would anybody else like to make use of the one or two minutes remaining for this discussion yes sir um thank you for this opportunity my name is willford moanza i'm part of the global shapers community and my question is directed to miss stoffel delpratt and the african youth are considered a critical stakeholder in these conversations our statistics say that about 75 percent of the population in africa are youth below the age of 35 so this would mean that this would be an integral part where young people should be uh play should play an active role so which areas or maybe how can young people be involved more in this conversation specifically in what you said in bridging the gap between linking the capital excess capital that is looking for places to be invested together with the areas where they can be invested in how can youth be more involved in what advice can you give to them thank you very much for this question um i think i'm i already touched upon a part of the answer i'm going to give you um it's your generation that are the tech savvy you are the ones who have to carry the continent into the next revolution the next the digital revolution and uh you are our counterparts if we talk about blockchain technology and how we could use it for international money transfers for remittances for creating a stable coin or helping to create a stable coin that may help in stabilizing the system so um while having discussions here also in cape town it occurred to me and we discussed infrastructure while you mentioned the side of it all um i did mention that when we talk about mega mega projects they're great providers of jobs and they help create jobs for youth but i do not wish to to for this to be understood that this is the only way youth is going to be involved in in any project mega project or otherwise remember our youth are also providing us through the tech solutions that were just mentioned with innovative ways of doing business of doing these projects and we have across the continent a wonderful number of initiatives that were initiated thought of by youth that provided us with ways of doing things that were not imaginable before think of the energy to pay as you go for instance uh since think of a mobile money which about financial inclusion across the continent this has been i mean ideas that yes you're right people of of my generation did not think off because we continue to think in in a much more conventional manner but you are very much involved you're doing a lot already and this should not by any mean be uh uh overlooked i'm thinking of the south african invention please call me by a young man called gosana makate mr president your excellency thank you very much shukran sia bonga and as we say in this part of the world and gosca


I called this more projectile problems. This is, I mean, I could argue, you should be able to do all these, these are weird ones, but you're going to find I'm going to start out with the same approach. If it's at an angle components, I'm going to go vertical and horizontal, I'm going to list what I know and then see where that takes me. But first, I want to just jog our memory. What if the projectile is launched horizontally? If the projectile was launched horizontally, what's my initial vertical velocity if we launch horizontally? Zero. One of the most common mistakes with horizontal projectiles is kids put, because there's only one velocity and it's all sideways, it's not a component, they put that in for initial vertical as well. Actually, no, it's easier. It's zero. For a split second, it hasn't started falling yet. All right. Here's a classic question from the provincial exam, as a matter of fact. A projectile is launched from a cliff as shown, check. It lands on the ground 5.2 seconds later. Oh, this time they gave me T. That's going to make some things an awful lot easier, but I bet you that means there's going to be a curve ball later on. A says, find the height of the cliff, B says, find the range, and D says, find the final velocity just before impact. Sean, are we being launched at an angle here?  I'm going to letter C and rhyme with components. I'm going to find VX and VY initial. There's VX, there's VY initial. I think cosine of 30 is going to be VX over 20, and sine of 30 is going to be VY initial over 20. That's VX and VY initial. I think VY ends up being 10. By the way, I'm not showing my cross-multiply step. I want to test it. It's cross-multiply, right?  I think I said something like, VY, sine, that's really, in my homework, I might skip straight to that. Joel, on a quiz or a test, I'll do the trig and do it right just to make sure I don't make a dumb mistake, but I want to get better than I need to be. What do you get for VY initial? It should be, VY should be 10 even, I think, yes? Okay? VX should be 17-point-something, 17.3. Did I ask you to find VX as an answer? In other words, does it say in the question, find VX, say no. Then give it to me to four sig figs. Give me an extra 17-point, what, what? 17.3, what's after the two? Okay, I like that, that's better. Carry a few extra digits because I'm going to be using this, okay? And now, I'm going to do my usual horizontal, vertical, line down the middle. Soon as I write horizontal, I know that horizontal acceleration is zero. Soon as I write vertical, I know that vertical acceleration is negative 9.8. Soon as I also know VY initial is 10, and I also know that VX is 17.32. What else do I know? Ah! This time, they've actually given me T, which is going to be the same in both columns. What was T? I've scrolled down, it was 5-point-something, 5.2, okay. How many things do I know in the horizontal column? Three, I can go to work. How many do I know in the vertical column? Also three, I can go to work, in fact, I can find anything else you want me to. What does part A want me to find? What's the first thing it wants me to find? Height? Is that vertical or horizontal? Okay, I'm looking for an equation that has A, V, I, T, and D in it. Yeah, as a matter of fact, D is by itself already. It's our good old V, I, T plus a half A, T squared. D equals V, I, T plus one half A, T squared, okay. Part A, D, Y equals 10 times 5.2 plus 0.5, negative 9.8, 5.2 squared. Now by the way, this is going to give me the displacement, and since I ended up below from where I started from, I'm kind of expecting a negative answer, I hope. I think I'll do it, do we? Where would you get? Negative 80.5, is there anyone else? Negative 80.5, units, meters. I would accept that technically, if I'm really, really fussy, technically heights a scalar, we don't say how high is the cliff, negative 80.5 meters. I guess technically I should just say that, but if you called it negative, Kale, I'm not taking marks off, I don't mind the vector. Okay, there's A. What does B want us to find? Part B, okay. So over here, all right, DX equals question mark, and I'll ask myself, is there an equation that has A, V, T, and D in it? What's that, Matt? You're saying the same one, but with Xs instead of a horizontal? Except what's the acceleration? Oh, I think what you're really saying, Matt, is this. DX is VXT, which is going to be 17.32 times 5.2, no 1.5 AT squared, because it's horizontal. What's the range? 90. meters, it's part C asking me to find. V final, just before impact. What does V final look like? Well, if I'm imagining the projectile following this path here, I think V final looks something like that. And I'm going to argue that it's made up of a horizontal and a vertical. Is that okay, Connor? By the way, why did I put a final on there, but I didn't bother putting a final on there? Yeah, VX doesn't change. I mean, you can, it's not wrong. Just VX final is VX initial, is VX middle, is VX whenever. So I'm lazy, it's an extra letter. In fact, I can fill in VX. It's 17.32. What about VY final? Now, Emily, if this was ground to ground, VY final would be really easy, because it would be negative 10. Is this ground to ground? Did we launch off a cliff? Or do we just go from the ground to the ground? I think you said a cliff. Okay, so we need to find VY final. So over here, I'm going to think vertical again. And I'm going to say, AY is negative 9.8. V initial is 10. V final equals, I don't know, oh, but I know the time elapsed was 5.2 seconds. Can I find V final from that stuff? Can I find V final from that? Which one? Oh, I got the V by itself already. That's nice, doesn't happen very often. V final equals V initial plus AT. It's going to be 10 plus negative 9.8 times 5.2. What do I get for the final vertical velocity just before impact? 10 plus negative 9.8 times 5.2. Do you guys get negative 40.96? Okay, negative 40.96. So that means over here, I'm going to put 40.96. Why didn't you put the negative, Mr. Dewick? I did, I don't see a negative, Mr. Dewick. There is a negative in that drawing. How does the negative appear in that drawing? It's going down, I've got it in there as a vector though. So thankfully, this is the lovely right angle. How can I find V final, the actual velocity, Pythagoras? And I think as a component, sorry, as a theta, they're going to want this one here, because that's where it's originating from. Let's see. V final equals 17.32. Squared plus 40.96 squared, square root. I get 44.5 meters per second at, well, tangent of the angle is going to be opposite over adjacent. So second function tangent of opposite over adjacent. And I get 67 degrees below the horizontal. 67 degrees below the horizontal. What'd be wrong is with negative 44.5? See, I would argue negative usually means straight down. I probably wouldn't take marks off, but a negative never popped up. The negative is implied with the 67 degrees below the horizontal. Is that a question, Tara, or a stretch? You can make it. Sure, okay. Two more and we're done. Maybe one more, I can't remember. So there's an example of a little twist they can throw at you. Up until now, almost always you've been flying T. Here they told you the time, but the curve ball was, they said part C, which is reason difficult. Find the final velocity. You have to add components together. You have to clue in that it's a three. Vector sum? Number three, a projectile is launched from the ground with an initial velocity of 88 meters per second at an angle of 70 degrees with the horizontal. What's the velocity, magnitude, and direction of the projectile after 4.6 seconds? Do we have an angle here? Sean, you know what I'm gonna do first? It's a word that begins letter C. Okay, let's find VX and DY initial. I'll dull, draw a little picture. 88, where this angle here is 70 degrees. Here's VX, here's DY initial. DY is gonna be sine 88, sine 70. VX is gonna be 88, cos 70. Delusia M, are you okay with that? You good? It's adjacent, hypotenuse and opposite. Do the trick. Trying to cut corners and give you a bit more time to work on the homework. 88, sine 70, 82.69, 88, cos 70, 30.10. Now they want me to find the velocity after 4.6 seconds. Mitchell, and back. Hey, your shots improved. How can I find the velocity? Well, velocity is either gonna look like this, except I gotta be a bit more careful this time, Jacob. It could be on its way down. I don't know, after 4.6 seconds, has it gone halfway through its projectile or not? I don't know. So I'm gonna, first of all, list everything, find parts that I need to, and then I'm gonna draw my vector sum. But right now, I think, don't write this down, I think it's either like that or it's like that. I don't know which one. You know what's gonna tell me when I calculate BY?  And I'm gonna say the horizontal acceleration is zero. The vertical acceleration is negative 9.8. I'm gonna say that VX is 30.10, and VY initial is 82.69. Oh, and I know one more thing. They gave me the time of flight. Not the time of flight for it to hit the ground, but they said, look, we don't care when it hits the ground, we wanna know what's going on after 4.6 seconds. I think what I'd like to find now is VY final. I'd like to know, vertically, is it on its way up or on its way down? How can I tell, Rhett, if I find the VY final, how can I tell if it's on its way up or on its way down? Positive or negative? Good. Oh, what equation can I use to find VY final? Oh, good gosh, you're saying it's this? Straight plug and chug. It's gonna be 82.69 plus negative 9.8 times 4.6. Once you've written that down, put your pencils down and look up, and I'll show you a shortcut so that you can, at least in your head, ahead of time, know whether you're on your way up or on your way down. The number negative 9.8, what nice number to do math with is that really close to. See, what I would have done is I would have gone negative 10 times the time. You know what negative 10 times 4.6 is? Negative 4.6 is 82 minus 4.6. It's gonna be positive or negative. It's still on its way up. In fact, it's gonna be on its way down sometime around time equals eight seconds because 10 times eight is 80. That's when I might actually end up with a negative answer there. See how I did that? You don't have to, but hey, we're nerds, let's why not, right? What is VY final? Sorry? 37.61 and positive on its way up. Okay, now I can draw my picture. It seems to me the resultant velocity after 4.2 seconds is gonna look like this. And it's going to be made up of a horizontal and a vertical component. And the horizontal component is gonna be 30.10. And the vertical component is going to be, oh, 37.61, yes? Good, on your own right now, find V magnitude and direction. Do the Pythagoras, do the tree. That's what I got. Could be wrong. Opposite over adjacent, shift 10. Gonna take it in right. Opposite over adjacent, shift. I think I'm right. Am I right? No, yes? Yeah. On your test, you can expect some kind of a question or ask you to find a velocity by adding two vectors together, either the impact velocity just forward to the ground or the velocity after a certain number of seconds. It's gonna be above the horizontal if your vector looks like that. It's gonna be below the horizontal if your vector looks like that. And yeah, I guess Vy is the deciding factor. If Vy is positive, it's above the horizontal. If Vy is negative, it's below the horizontal. The last one. Oh. B asks, what's the velocity after 12 seconds? Now I do this, I find Vy, but instead of Vy at 4.6 seconds, you know how much time I put in? 12, I get a negative answer. I end up with a diagram that looked like that. I'm not gonna worry about it. I think you guys are getting the hang of it. Instead, I would like to move to number four. With what final velocity, magnitude and direction? Does the projectile hit the wall? This question, I like this question, I like this question. Emily, why would I say that? Did you hear me say it's gonna be on the test or are you just one of those good students that picks up on little hints that your teacher mentions? I never said it was gonna be on the test. You just picked up on that yourself? Oh, okay. Still three people here. Oh, oh yeah, huh. Someone will explain it to Jacob later. Jacob, what does this question want me to find? In fact, you know what? I can even draw it. I think as a picture, it's gonna look like that just by looking at the diagram they gave me. In fact, this is the same thing that we've just done in the previous question. We're gonna have to find Vx, which is gonna be unchanged. We're gonna have to find a Vy at a certain time, Vy final. Is there an angle here? Let's go components. Woohoo, woohoo, here we go. There's Vx, there's Vy initial. Vx ends up being 26 cos 37. Vy initial ends up being 26 sine 37, 26 cos 37, 26 sine 37, 15.65. So I already know part of this vector triangle up here. If that's my resultant that I hit the wall with, I already know Vx. Vx is 20.76. Katie, you know how I know that's Vx? Because Vx never changes. Right? What about Vy? Is it negative 15.65? No. I'm gonna have to find out how much time has elapsed. Did they give me time in this question? What did they give me in this question? A horizontal displacement. I'm gonna solve for time horizontally. And as soon as I mention that, now I'm gonna do my usual little chart approach. Horizontal, vertical, AX is zero, AY is negative 9.8, Vx is 20.76, Vy initial is 15.65, DX is 40, T equals question mark. What equation has A, V, D and T in it? I think D equals VIT plus a half AT squared. Oh, except woohoo! In fact, I think, and Matt, I think was the one that pointed this out earlier, T is just going to be the displacement divided by the velocity. It's gonna be 40 divided by 20.76. It's a little bit smaller than two. The time that's elapsed is 1.927 seconds. 1.927 seconds. Time that's elapsed is 1.927 seconds. How many different items do I have in the vertical column now? Three I can find whatever they want me to. In this case, we would very much like to, Nicole, find Vy final. By the way, I don't think you've even beyond yet today, well played, or haven't caught it. I'm beyond yawning, that's all right. Okay. Vy final equals, how can I find Vy final? Oh, V final equals V initial plus AT. It's gonna be 15.65 plus negative 9.8 times 1.927. What's the final y velocity? Should be negative, and it should be just, not a big negative, like negative two-ish or something. Negative, negative 3.235. Oh, am I hearing rumbling? Is that right or not? You got negative, and I heard what I heard. I got negative, and I used all the decimals. Two, three, two, I'd take both. If you used all the decimals, that's probably more accurate. I've rounded off here. That's why, by the way, we're still accurate to three sig figs, so that's one of the reasons they go with that. How's that help? Oh, first of all, what's the negative tell me? Going down, so the diagram is correct. This is going to be 3.235, 3.235. You can do it on this triangle. I've rounded a room, I'm gonna quickly redraw the triangle.  Don't forget your units. At, there's angle theta. How can I figure out angle theta on my calculator? Shift tan, shift tan of what? In this case, opposite adjacent. I think shift tan of 3.235 divided by 20.76. Careful, Mr. Duke. You get 8.9 degrees. Caitlyn, you might be a bit different, but close. At 8.9 degrees below, below the horizontal. There's the first unit. Mostly review, but in two dimensions. There is a little, a couple of comments, or just the one comment here. Feel free to read it. What's your homework? You've got two things to work on. The take home quiz, and remember the very beginning of this unit I handed you, the ultimate vector kinematics review, that'll be due the day of your test. When is the day of your test? A week, 30 days. So you can work on that too. Remember on that ultimate review, if you get stuck, I have answer keys online showing all my steps, as well as the answers are attached to the back. But those are just the correct letters or the correct numbers. The actual steps are online. You good?


I just want to, I just want to. Oh, it's live! Yay! Okay, it says broadcast on AIR's live. Welcome everyone to the latest, newest Boku on AIR. Today, our special guests are Irene, Rose, and Mike Panini. Hello. Hello. So, guys, what are we talking about today? Bananas, for sure. Yeah. Because they're pretty ready. And D3Chart. Yeah. So, D3Chart is a library that we released a couple weeks ago that sits on top of the JavaScript library D3JS, which is a library for creating visualizations in the browser. Yeah. And when we wrote D3Chart, it was because we've been writing a lot of charts in D3 and we found that we were either duplicating content or copy and pasting things and we're big fans of the sharing patterns that the D3 community established with things like blocks. But we really wanted to think of a way to integrate some other patterns into creating reusable charts and providing a framework that will allow people to do that more automatically. Yeah. So, yeah, blocks is pretty, blocks is really good and the creator of D3JS, Mike Bostock, has done a lot of work making, kind of developing a good ecosystem for his libraries where people can share their work and kind of surface it in a way that's much more tangible than just writing a letter chart. So, there's, when we mentioned blocks, we're talking about the service that he's created where you take your code that's in a, what's called a GitHub gist or their code snippets on GitHub and they usually comprise graphs of some sort or charts or graphs or visualizations really of any kind and generally that service, that GitHub gist services there just to share code and so with blocks, you can feed it in the URL of an arbitrary gist and it will generate a page. So, instead of looking at the code for a chart, you're looking at the actual chart on the browser. It's been incredibly useful for D3 because there are just so many wonderful APIs that aren't always easy to understand and so through the use of these examples, I feel like D3JS managed to really grow the community that's been working with it. There were a couple of questions actually I think about the, about the library on Google. I'm just going to pull them up and ask, and I guess I'll take this opportunity too to let you guys know that if you have questions as you're watching, you can ask on either the Google Plus page or also in our IRC network channel, what is it, it's pre-node and we are hashtag Voku. So, if you have questions for me, you might pop them there I suppose. But one question came from Mike Wolfgang, you guys know Wolfgang. He is asking about how D3Chart can help maintain data integrity while respecting memory support. So, maybe I'll throw that out there for you guys. I think that's a really important question test right now and actually the next release of D3Chart, which I'm super excited about, tackles this problem. And maybe I'll let Mike talk about how, but I'll just kind of talk a little bit about the general problem of when you write a reusable chart, presumably you don't really want to rely on your data being, you know, in a certain format necessarily. So, if let's say you have a bar chart, you want to be able to visualize, you know, data when it's called, when the property is called value versus when it's called number or whatnot, right, you really don't want to have to change the underlying code of the chart to be able to make that change. And so, that's been kind of an issue that came up as soon as people started writing these charts, including ourselves with D3Chart of how it is to tackle that problem. And one awesome thing that came out of the solution that Mike worked on is the data integrity question. Sure, yeah. So, just backing up a little bit, the whole, I guess the whole mindset behind having D3Chart as a library is just to better facilitate people being able to separate out the definition of a visualization or specifically the chart and the use of that chart so that other people can reuse it. And so, we did a lot of work making it so that you can kind of extend the chart and repurpose it however you want and kind of mix and match different charts. But, yeah, almost immediately after we released it, this point was raised about, as Irene was saying, the shape of your data. And so, you can read through the issue on our, on the GitHub project page. So, if you go to the GitHub.com slash Miso project slash D3.chart, then you'll be able to go to the issues and you'll see that a few weeks ago, again, Tom opened an issue about this very problem. And so, we had this very long discussion where I posted way, way too long comments about like all my, well, all the different concerns we have among them like Wolfgang's recognizing is the integrity of the data. Because what happens is that if you want to support this, this problem, or this use case, where your, a chart should be in, be able to vary independently of the kind of data you pass it. So, just like Irene was saying, just because I make my bar chart work on the value attribute, shouldn't be there, one has to change their data around so that it matches my expectations. There's a number of ways that you can support that. And depending on how you do it, you will be very CPU intensive, a very numbering intensive. And so, if you read through that issue, you can see kind of us hashing out the different solutions and the different approaches. So, what we've, what we decided on was using data attributes. And that, like Irene was saying, is coming out in version 0.2 soon, you know. But in ES5 or ECMAScript 5 supporting environments, we'll use getters. So, that basically it allows the chart consumer, the person that's actually displaying the chart to define the shape of their data. So, that doesn't matter however with the chart was defined and how, what its expectations are for the data. Is, when you consume the chart, you say, this is what my data is shaped like. And what we do is, we support basically at runtime making that translation, so that we don't have full copying of the data. We also don't modify the data in place. So, we maintain their integrity. Right. So, basically for every data point that comes through, we'll only take the attributes that the chart creator defined are necessary and allow you to basically then provide a mapping for us. And we're only going to give you the data point that has those required attributes. So, that if you have to modify them, put them through the three layout, attach new properties to them, you can go crazy and they will be modified. And that's really convenient because if you think about it, you might have multiple charts in D3. They're all based on the same data that might all have to go through a layout. So, for example, if you put them through a treat map layout, that puts X and Y values on your data points. But then you might put them through a whole different layout, right, like maybe a graph of some kind. And those also need to be set the same attribute. And so, it's kind of an added benefit that, you know, came out of this approach in that you can put the same data set in all these different reusable charts, and they won't modify that original data. And then just then to follow backs for older environments that aren't up to the latest standards or even like not really the latest anymore. But basically in IE8, we're working on supporting this without where you don't necessarily have these ES5 features like custom getters or custom accessors. And so in those cases, if you do want your charts to run IE8, then we do end up doing more of a copying operation because it's not really a clean review otherwise. But if you want to see that, I have an open pull request that I'm still adding stuff to that you can check out the kind of implementation that falls back in environments that don't support specifically object.define property. And we'd really love some feedback on this approach. It's part of why it hasn't been merged in yet. We're finishing it up, but also are trying it out and seeing how it fits because it is a pretty big change and we want to do it early so that chart creators can integrate that into their charts in the future. But it's also a pretty big change. And so we really love your feedback. So we love feedback on all our libraries and our code. So definitely get in touch with us if you have any thoughts. Guys, there were also a couple of questions that we could pull up about to go into the sidetrack conversation. But I guess to conclude the sidetrack conversation. Joseph had, let's see, I'll show you me. Hi, Joseph. I was curious to hear your thoughts on DC and JS and the potential to extend N2D3 charts to replicators in that library. No, they are not. You weren't immediately familiar with DC, JS, but dimensional charting library. How is DC charting to work with other tools out there? So I've seen DCJS and unfortunately, I haven't used it. So it's hard for me to speak exactly to its structure. But the general patterns in DC chart are such that it's really more of an organizational framework for the way that D3 already has you write your charts. It really just identifies certain patterns that are pretty common when you write straight up DC code and breaks it up into more local pieces that also then afford you things like extensibility or modularity and so on. And so as far as, you know, as far as we think of anything that you can do with D3, you can basically layer D3 chart on top and then use some of these other frameworks that I've played around with using D3 chart with 2JS, which is a new library that came out that has a certain primitive rendering functions that can proxy to both SVG and Canvas. So I've been kind of just trying some stuff out. But then it, you know, it works pretty great because D3 chart is really small. It doesn't end up adding so much, you know, that, you know, you can't sort of add kind of your own layer on top of it. But I don't know, what do you think, Mike? So it is 2JS? Does that work on top of D3? No, it's completely separate. But you've used D3 chart with 2JS? Yeah, I was just I was just amused with seeing if I could do some joint rendering. I mean, it's not ideal. It's still probably do it in D3. Because the things that I was doing is it's just so much easier to do SVG. But you can definitely. And I've seen people do interesting things with Canvas with D3. So I definitely want to try and do a Canvas based library chart with D3 chart. D3 chart chart. Yeah. Yeah. That's interesting. Yeah, I always I kind of thought that D3 chart was kind of heavily relying on D3. Oh, it still is. It has to be like you have to have D3 defined. So it fixes the D3 namespace as D3.chart. Yeah. And I'm not sure how I'd use it. I'd love D3 scales. I just every chart I've ever written now has to have a D3 scale, even if it's not a D3 chart, because they're so useful. So where's that? Yeah. Yeah. So for me, like most of the most of the valuing in D3 chart comes from its use explicitly D3 is we're trying to we just try to define API on top of D3 that kind of recognizes the common operations you do when you're making a chart and makes them more, I guess, repeatable. And so used on its own or with other libraries, I guess I mean, you can say that it's it brings something to the table. Yeah, I mean, it's still preferred to just use I mean, I don't have to use SVG, for example, it's just as easy to render things with the DOM, right? If you're building a tree map, for example, you're just painting a bunch of divs, you can absolutely position them and, you know, use the same XY values as style properties. And you have your tree map. That's an example of using a different render me still uses D3. So you could do that. Yeah, I mean, it does end up breaking the mold a little bit. And I do think that D3 chart is best suited when you're using it with straight up D3. But so for example, I'm, I'm working on a base from which I will then build my charts. So I have a D3 chart base, which is really just random things that I find, I, you know, kind of have patterns for and then basically, every time I build a new D3 chart, I can extend that base. Instead of, you know, copying and pasting it, for example, so I can see that becoming maybe a pattern for someone who wants to write something on top of D3 chart, like a collection of actual charts, right? Because D3 chart is not a chart collection library, or library charts, right? It's a framework for creating charts. Yeah. So there are no, there are no charts. There are no charts. I mean, people make charts, which is awesome. We list those on the site. If you go to me so project comm slash D3 dash chart slash charts, that HTML, you will see both the way for you to submit your chart, then also a listing of your chart. Could it be D3 dot chart? No, I couldn't. Yeah, just wasn't. It was looking for file called D3 that chart. Oh, yeah. So there's a dash in there. What do you use to certify? GitHub. Just the GH pages. It doesn't support dots in the file. I don't know. We should, we should investigate. We'll investigate. I mean, why don't we go right now? This is the perfect time. Yeah, guys, do you mind? Yeah, well, this bumble around GitHub pages for a while. When you get it, that looks good. Yeah, good job. Yeah. Yeah. So there are some. Yeah. So Josiah was asking if you guys were discussing the whole set of data watch cycle events, which I'm sure we can talk about this. It's kind of a secret. I'd rather not say it's very no, it's not that all of you. It's very personal. And I don't feel like only family and really close friends. But I talked about the life cycle events with it. Well, I guess we're all we're all family. Yeah, okay. We're the open web family. Okay. This is where we don't really hug. But now right now, because there are the nanocomps. Well, I like it there. Okay, fine. Whatever. I'm not going to tell you how to live. All right. D three dot char, right? Yes. Alright. Life cycle. Life cycle events. So what we recognize is that baseball, basically, we gave we gave this name life cycle best to a like common operation D three, whenever you're making visualizations. And that basically, you D three has this method called data. And this is the way by which you kind of bind your data to the nodes that you're generating. And again, because D three works over SVG and also overdone, we won't get more specific as to what kind of notes they are, they might be, you know, rex, they might be dense or whatever.  And then that generates a different kind of a different kind of selection. So if you're used to work with jQuery, your use, you might be used to the idea of generally selecting elements from the DOM. Or if you're just used to working with DOM APIs, it could be as easy as, you know, document dot, get elements by class name, or might be document dot query selector off, or it could be in jQuery, dollar sign, div. And all these are different ways of different on a context of making selections of things that are in the DOM.  And so that works a lot like these are the methods I mentioned. But then when you have them data bound, things start to get a little bit a little bit more complex. Because in that case, D three starts to recognize that there when you bind things to data, there are some elements that well, it needs to create some elements. If there's new data coming in.  And so it needs to create four will say, wrecked SVG wrecked elements for each one of those pieces of data. And then that it can do, you know, whatever you tell it to you to make them the right heights, they all represent the data. But then if you really do call dry, again, maybe what you want to do is instead of deleting all those things, and then doing four, or in whole new ones, or five new ones, you might want to just update the ones that are there, and maybe add a fifth one, if there's more data, and then maybe even remove the last one, if you've moved your data set. So basically, it's not just, it's not just for efficiency, although it is more efficient than tearing down the whole structure and rebuilding the end. But it's also so you have constant scenes that you can kind of animate things to change. Because if this if this slice of the bar chart represents the same data and that data is just shifted, then usually in your visualization, you want to see the same thing happen with the actual thing that's painted on the screen. And so when you make these selections with D3, it can be confusing because you'll have a selection that represents things that aren't actually there yet, because you have these entering nodes that, because you have new data in, but you haven't actually appended them to your container yet. And then you also have xing nodes, so you can make a different selection that describes all the elements that used to be bound to data no longer are bound. And then you also have these, then if it's neither one of those things, and they're considered updating. And so in those cases it's because the data isn't new, but it's changed or shifted positions. So working with D3 directly lets you do a lot of things with these different kind of selections, but it can be confusing to do that directly. And also it can lead to extensibility problems. Because it's not clear for other developers, when you set up your whole chain of like do this with the nodes that are just coming in and do this with the nodes that are updating, and do this other thing with the nodes that are leaving, all that ends up usually kind of sprawl out in one big function, and they're all chained together, and you're not sure where you're modifying. So what D3 chart attempts to do is to make those selections feel more like events. So even though they are just selections that generally happen once every time you draw, it kind of makes sense to think of them as events and we adopted the API from jQuery of binding to them like they're events. And so what this means is that you don't have to, as the producer of a chart, you don't have to worry about making these special selections for these of the elements that are entering, these are the ones that are updating, these are the ones that are exiting. Because we recognize the general structure, the repeated pattern through making a bunch of different kinds of charts, we were able to encapsulate that onto the library. So it does it for you, and instead it exposes these events, so that as a chart author, you're able to look into the events and say, okay, I have a chart, and whenever anyone calls draw and passes a data, this is the stuff that I want to happen and want to have happen for the new ones, and this is the stuff that I want to have happen for the updated ones, and this is the stuff that I want to have happening through the exiting ones. And this makes it a lot easier for people to write the charts because they don't have to repeat that kind of logic. It makes a lot easier for other people to read the charts, and also to modify them, because it's much clearer instead of, like I said, this long function that does all those things. You have more discrete functions that are targeted at doing those different behaviors for different parts of the events. And then finally, it makes it easier for people to extend the charts because they can say, well, okay, I have this chart that someone else has defined that says what should happen in a bar chart when something comes in. And I think that, in addition to how this bar chart works, when new data comes in, I also wanted to do something else. And so this is a way that people can do that kind of programmatically without having to download the source code and open up in the text editor and change around the code. They can just programmatically say use that chart, but also add this additional functionality. Yeah. So we have actually four basic events in D3 chart. We have the Enter, which is what happens to brand new data points that are coming in and new nodes are going to be created for. We have Update, which is what's going to happen to data points that have been updated. So there are already elements drawn for them. Then there's Exit, which is what's going to happen to data points that have left and the elements that now need to either leave or fade or however you want to react to them. Then we have a fourth one called Merge, which is not actually one that's an official D3 life cycle event, but we realize exists because what happens is first you basically execute whatever you want to do to the updating nodes. And then you do, and so you have that selection of elements. Those get updated and then you have things that you want to do to your brand new nodes, which is the entering nodes. And the moment you're done with those things, those basically become one. And now you can react to all of them in this merge event, which is pretty handy. So if you want to highlight updating versus new, then you want to do something to all of them together, which is basically everything on stage that has an Exit event. So that's a pretty useful one. And then you can also bind, the other thing that's neat is you can bind not just to those events, but you can actually bind to those events, the transitions of those events. So for example, if you have let's say a layer, we should talk about layers too. We'll do that in a bit. If you have let's say a bunch of rectangles and they represent your bar chart, and then on entering, you want to paint them green, well you can either define what should happen on an enter event, and just set the style fill to green, or you can actually bind to the enter colon transition, and you again do the exact same thing, you just say the style attribute to green, except it's actually going to animate. Because what we're passing in instead is actually the the transition call on that selection. So that's kind of neat because you it's really easy to animate some of those properties pretty quickly. Yeah, Tom had a couple of questions actually, and I guess I'll ask his second question first because it seems more relevant. He was curious if there was a built-in way. He asked the first question first. He did ask the first question first. I'm inverting this. You know better than Tom about this question. Listen, I'm not the emcee. I'll let you do your job, and I'll do mine. Yeah, sorry Tom. Thank you. It would be different if I won't check. Anyway, Tom would like to know if there's a built-in way to redraw a chart with the same data that was last passed to him. To redraw a chart with the same data that was last passed to him. So I don't think he's about a question. Was there like a proceeding question that might have given you a question? Oh, okay. So this is actually a common problem that we've thought about, and it actually comes up very frequently. If you want to make a chart that has, let's say, getters and setters that maybe modify its dimensions, for example. So let's say you've drawn a bar chart and you're making your site responsive in some form and you want to respond to a screen shrinking by shrinking your chart. What you want to do is then just have that chart redrawn that smaller space. And so a common pattern, and this isn't something that's built in, is that when you get your data, so the way that you even render anything is through this construct we call layers. And layers is just a way to aggregate elements that are logically connected and are going to be rendering themselves based on data. So in a bar chart, it may be rectangles, we may call them bars. In a pie chart, they may be pie slices, right?  You might have multiples of them, you might have one. But when you define one of those, you basically pass it three things. You pass it what's called a data bind. You define a function on a property called data bind. And that takes in, that function takes in the data. That's the only place really where in your chart you're going to get to interface with the data. And that's the data that comes in directly from when you call that draw on the chart that you instantiated as a user. And so a common pattern there is to basically save that data onto a property of the chart. So maybe, you know, chart that data equals data and whatnot. And then inside of some of those gathering centers that could maybe modify the dimensions and so on, you just call this that draw with whatever saved on the data. It's not something that we've built in by default because we're not sure yet that this is the common and expected behavior, especially since we're not providing by default some of those gathers and centers. But we're very curious to see what patterns people will come up with to solve that problem. Yeah. Yeah, because right now basically a chart as defined really doesn't hold any references to your data. It kind of just passes it through transparently. And once you're done drawing, it doesn't care anymore. So it's basically your data comes in to draw when you call it and then it goes out again. And so we've we've thought about supporting like a redraw method or something like that that explicitly didn't take a an argument that date argument and just reuse the last one. That's kind of a more of a leap than we want to take just now such an early stage where we're kind of getting into the space of kind of managing your data on 40. So for now, this is something that's you can do is just takes a little bit of extra work you like I've been saying is just save a reference in in your data by method. And then you can define your own redraw method if you want. It just that just calls from the last the last value of the data. Well, well, I'm talking to say that that's right exactly because this case. So whoo, whoo, go you mine readers slash question readers plus plus one to the banana on the right. Plus one. But the second question, which was actually his first question is whether it's possible to refer to the super implementation of a method within an overriding information. So it. Yes. But it's named Dunder super double underscore super. We're not sure if that's if that's how we want to support that just. So for now we're kind of we kind of just we have it because it is we're using slightly a modified version of Backbone.js, the MVC framework. We're using a modified version of its extent method. And that's essentially if you look at their extent, that's exactly how they track that. And while that one doesn't actually use the double underscore super property, it just kind of keeps it. For all reasons for coffee script support, just odd.  But for us, we actually do use it because specifically for initialize. So every chart that's defined the three dot chart may optionally define initialize function. And this is again kind of a back bone ism, which is basically basically like a constructor that's that that works in terms of our kind of inheritance pattern that again comes from back in JS. So if you define initialize, then that code will be run whatever you you whatever you create a new instance of whatever chart. But in addition, if your chart happens to extend some other chart, that chart's initialize method. And so forth up the chain. So if that chart happened to be extended from a different chart, now it will be called and they'll be called actually in reverse order. So the oldest or the highest or the great great grandfather charts initialize is going to be called first and then on down until you're initialize is called. And so that that that behavior exists specifically for initialize because initialize is such an important method for creating instances of charts. And it's also one of the only methods that that may be shared by all the charts. And so if you were to realistically extend it, you generally depend on the logic that your base chart has put in initialize. And so. So what we're talking about right now, though, is is is kind of surfacing that suit that super property so that you're able to do the same thing with any with any arbitrary method. And that allowing that tends to tends to couple charts and also, well, it can be it can be it can be things more difficult to reason about. So for the time being, if a chart if a chart you're using defines a method that you also want to use, then I would recommend just meaning in your method is something different. So you don't essentially shadow the implementation of the method you want to call. And so that way your extended chart will define both these methods. But like I'm saying, we really kind of feedback. So hearing about use cases for this like super functionality really. Yeah, and it's a lot more unclear with methods that are not initialized, whether the intention was to go off the chain or that the intention is to override, right, which is why you know things like super exist in other languages, which allow you explicitly to indicate that within your chart if you want to. And so, you know, we're really curious to see if it's going to work out, if it's going to work that way, if it's going to become necessary, since we are already supporting, you know, just by doing that initialize the chain effectively much more than you normally get by just using standard extending and JavaScript. So I want just to worry. Right. And yeah, and just doing it automatically is you don't have to worry about it yourself. It's done for you. Right. This would probably be a great time to remind folks that, like, if they're implementing your chart and running into issues or patterns, it should be like letting us know in the book who IRC channels because we check out all the people. We're always there. Always there. Never leave. It's really weird. Yeah. It's been here for a hundred and thirty two days. Where else should they go to Irene, like, if they want to document some stuff because. Sure. Well, we have a lot of documentation for D3 chart and it's constantly growing. So the Wiki is very detailed and we've been putting a lot of content into it. Also, the ISO project website has an entire section dedicated D3 chart. And every time that someone runs into it would be like a tricky thing or maybe a certain pattern they've established, I try to write like a little tutorial for it. They're not really, you know, tutorials in the sense of what we're going to build something together, but they are effectively concepts because we're trying to avoid the case where, you know, if here's an API and you don't really know how to use it, we're just kind of want to tell you exactly how. You can use some of those things. So if there's, you know, maybe something that's unclear, definitely let us know and we'll be right about it or if it's a bigger question, you know, we write a lot on the book who blog.  So we'd love to write, you know, more about it. So whenever people struggle with stuff, it gives us, you know, kind of impetus to keep going. So that's one. You can always ping us on Twitter, you know, we're pretty reachable that way. Yeah, you can call us. You can stalk us and show the house. Their phone numbers are 555. I would prefer no one stopped us. OK. That would be helpful for me.  And so if you go to github.com slash miso project slash d3.chart, you'll find the wiki there. And so that that wiki is also open, open to edits. So like most like any good wiki so that if you find a typo or something that's flamely, flamely long or maybe, you know, maybe you're just having a bad day and you just want to get some aggression out. You can edit and change things. We need more cats. Yeah, I don't know that our wiki has any cats. I don't know what the right number of cats are. Please don't put cats. Or, OK, you put one. Tasteful. Tasteful. One tasteful cat. One tasteful cat. Which one? It's not being so prescriptive. It might be two. But it needs to be tasteful. I don't care about numbers. They all have to be one photo, all the cats. All the tasteful. And of course, issues. I should also say that we love, like for us, issues aren't just, hey, we found a bug in G3 chart. For us, it's also a way to ask questions about how to do something and, you know, or if we want to ask for a feature or if something's confusing. Like that's really important payback for us because, you know, we've been so in it for so long. You know, we've been effectively trying to come up with the right answer for this problem for like close to a year, literally, since after MISA dataset was released, we started thinking about the problem and then eventually, you know, I had the privilege of having Mike join me and come up with amazing solutions to do it much better than what we're thinking about. So it's really exciting that it means that we've been thinking about this for a really long time. So fresh eyes are super useful. So I think we've been chatting for some time now. And there's like one question that's somewhat serious, but we'll see a softball. Do I need to take the banana costumes off? No. That's the second thing that we're going to have to address. And, you know, apparently there are some who don't appreciate the important role that the banana costumes really have played. Oh, do you know how to kick people from IRC? Yeah, let me just do the IRC. Tim, Brandon, you're done for money. Yeah. Love you, Tim. I want the softball question. Yeah. Do you want that one? Yeah. Oh, there.  I've made a couple of fun ones that had, you know, it's really easy to add zoom behavior to D3. And I recently had to do it with a couple of charts and realized that that code was like super similar. And so I'm separating that into a mix-in. And then there's also been some tool to, I also wrote a quick tool to thing that I want to try and make a mix-in, because that's super useful. Tool tips. So I always throw those on stuff. So I'll probably have that as a mix-in out pretty soon. It's probably... Yeah. I have no practical experience with D3 charts. Basically, I just I sit in my ivory tower and I think about new features that the user might want and then I code them up and I really have lost touch with that. And then I make them feel bad for a while. Then I come out with demand. That's true.   We have an awesome work. Like a...   I'll take it. But yeah, if you guys want any mix-ins that would be useful to you, let us know. Five bucks. Five bucks. No. No. That's what open source is. Give you five bucks. No, I'm kidding. Five bucks. Four or five dollar donations. We haven't talked about mix-ins explicitly. So I'll say really quickly that mix-ins are a separate kind of take-on code sharing. So we've talked about inheritance and how you can define one chart in terms of another chart. So you take your tree diagrams and you make your terrible tree diagram. It just basically takes the same tree diagram and it makes everything black and you can't read anything or something. And so that's basically you're defining one chart in your extension. So that's why we call it extensions. But then mix-ins are more of a composition of multiple charts. And so basically you can define a chart in terms of many different charts. And so what this is useful for is if you want to make a chart from components that aren't necessarily charts in and of themselves. So in D3Chart, D3Chart's API still makes a lot of sense for defining a quote-unquote chart that's really nothing more than say like labels. And then maybe it's really nothing more than boxes. Maybe that one's nothing more than axes and axes. And so you can use the mix-ins to say, okay I found like these really cool components that in themselves aren't really useful but that I want to combine in my own way and make it to a chart. And if you go to the Bogu blog you can see an example of this where I take these popular D3JS chart examples. One is of a bar chart and one is of a chord diagram. And I mix them together to make a chart that really has no meaning or practical use that kind of looks neat. But it's awesome. So that's on the Bogu blog at a post called Exploring Readability with D3.js. Yeah. And Mike's done this amazing post by actually continuously reworking the code in different commits. And so not only can you read this great post but you can also basically follow the code along as it progresses. It's like the best use of GitHub commits I've ever seen. And there's just, well this I mean it's pretty good. Yeah. Well it was, I got really good at rebasing. He is our rebasing expert. Well I forgot like there's a typo for commits back. Make all those commits again in the meantime. It's an impressive effort. I'm glad that it's somebody for that. Well guys I think we've been chatting for almost 45 minutes now so we should probably wrap it up. They were never here. Cricket, cricket. And questions. I just made them. She's just humoring us. I'm trying to make things up for you. When do we get to turn on the birthday cake? Now is the agreement. We do this and then we get on. This laptop is even on. Yeah. This is actually a mirror. We've just been looking at ourselves the whole time. I'll do that too. I was the pretender So, I guess for you to just let everybody know, we do these hangouts on air, you know, every four or six weeks or so, and it's just typically a series of Bo Cooper's talking about things they're passionate about. In a hot air balloon. You know, and sometimes in costume, which I think brings up our- It's just our work clothes. We don't have them rain in my eyes. It's the open web uniform. Yeah. So, you guys can always talk to us in the go-to IRC channel over there all the time as we mentioned earlier. Any questions about JavaScript related or banana related, we're happy to answer. But, I think there are a couple of questions in the Google thing that you can get to, but we'll try and answer those in the comments on the Google event page. But, thanks everyone for watching. Thank you guys. We love you all. Bye now. Bye. Bye. Bye now. Bye now. Bye now.


Do you want to learn how to follow up with clients? Well, we have eight tips for you today on the journey. All right, Sam, so you just had this amazing meeting with a potential client. Everything went really well. You talked about budget. You send them a follow-up email with some questions. Things are going well. And then you never hear from them. There are several different situations where it can seem like a client is pretty much ghosting you.  Or it could have been overdue invoice that you were expecting to get paid at a certain time. That does happen. Or it could be the holiday season. You know, many people are traveling for the holiday and they're just maybe in vacation mode. These could be some things that you could look at to, you know, think about if that person is actually ghosting you or is these other situations that are really happening. Yeah, and Sam, that's a good reminder that maybe you shouldn't just automatically take it personally. Take a step back. Think about why this person actually might not have responded yet. All right, so how long do you wait before following up? I'm assuming it's going to be different for each situation right now. Yeah, so at my role in GoDaddy, I actually work with a lot of clients on a one-on-one basis. And that means there's a lot of follow-up that goes into that. So typically if it's, you know, waiting for a call or a meeting to set up, I would give it about two or three days. There's a lot of times where clients say, oh, don't call me. I'll give you a call.  But if you're waiting for an actual proposal and you've submitted that proposal, I would say at least wait a week because they may have to be getting, you know, responses or input from other people as well. And a good note to keep in mind is the longer we wait to make a decision on something, the easier it is to just forget about it. So our suggestion is when you're interacting with your clients, set the proper expectations. If you're going to follow up, let them know when you will and set yourself a reminder so you don't forget. Absolutely. The more time that passes, the more we convince ourselves against something. So you want to stay fresh in their mind, but by setting that specific appointment time or whenever you're going to call them, say, hey, I'm going to follow up in one week on Thursday at 12 o'clock, then you know it's a good time for them. You're not calling at a bad time. You've set that expectation and then you're not bugging them. Oh, and I know in my role, we actually use some tools like Calendly where you can actually pop their email into that and it will send them automatically a reminder when that specific appointment is coming up.  Technology is great. All right now. So you've made the appointment and you don't really know how to follow up. We're now going to go on to the tips on what you can actually do. First and foremost, be pragmatic. So is it really too soon for you to be following up? And, you know, we know you're excited to get things rolling and moving along, but has it been a reasonable amount of time for them to actually respond and also keep in mind their industry? So let's say that they work in the restaurant industry calling at Friday at 5 p.m. Of course they're not going to answer. That makes sense. Exactly. So for the second tip, emphasize your needs. It's very important to let people know upfront what you actually need. So say for instance in your follow email, hey, I'm following up on that overdue invoice or following up on that proposal we just spoke about. You want to make sure that they know the necessity of them opening that up and getting back to you. Yeah, and that starts with even a very clear and direct subject line for your email. I know I get hundreds of emails a day. Sometimes you just need that really clear direction listed there on the forefront so that people know exactly what action they need to take. And that brings us to our next tip. Give a specific call to action. Be very direct in your message of exactly what steps they need to take and what that timeline looks like. And it's important to have that call to action clearly laid out in the body of your email. You've already put it in your subject line. It's good to follow that up with that call to action in the body as well. So continuing on with be specific, be specific. You want to make sure in your email that you're definitely telling them what you want to do. So when I'm following up with my clients, say I give them a document of their metrics, the performance that they've had to this point in our relationship. In that email, I'm going to actually include a link to my calendar and ask them to click on that and see what time works best for us both and put some time on my calendar. Because I like to tell my clients, hey, I value your time. So don't just waste it and try to call and I'm on the other line. This way, we know at a certain day, certain time, we're going to talk about this specific information that's in that email. So basically make it as easy as possible. Yes. All right. So for our fourth tip, keep it short and to the point. So Alex, I know you have some experience with this short. Yeah, of course.  But honestly, people don't have time in their day. If you include way too long of an email, they're just going to skim through it. They might have missed out on some important information that you were trying to include. Keep it short and simple. Be very direct, as we were saying. So for our fifth tip, have a neutral tone.  You want to make sure that your tone is just even and it's not presumptuous. No all caps in your email. Please no. No. Absolutely. I mean, it's very important to make sure that you're staying calm and collected and don't just assume the worst, right? Right. Give them the benefit of the doubt. Stay calm and collected because if not, then you might come off as super pushy or like arrogant and that could absolutely turn them the opposite direction. So for our sixth tip, make it about their best interest. What's in it for the client? Yeah, exactly. I know I've had clients talk to me about how important it is for them to, you know, get things taken care of as soon as possible. And then all of a sudden you don't hear from them. So making them kind of aware that this is really holding up their best interest and for us to be able to accomplish their goals, things have got to start moving. Right. And in my role, typically after they come from your department, they come to me and it's the certain pain point that they've had. Maybe they didn't have a consistent presence online. So they wanted to have brand consistency and they want to make sure that this is all working. So okay. And my email is like, Hey, remember, you wanted to make sure you can evaluate your investment and make sure that is bringing you a return. So you want to make sure we get this call done. Our next tip is be persistent but not annoying. So of course, if you're feeling super frustrated, take a step back, take a breather before you revisit this. But at the same time, you do still want to make sure you're being persistent because sometimes it's just not a good time for people. So having that consistent reminder can be good and can end up paying off by them finally getting back to you. For our last tip, remember, it's okay to follow up for other reasons. In my role, sometimes it's not even something that is set on the calendar. Say they just had a great sell in their store. I may just want to follow up and say, Hey, by the way, you know, how did everything go? Is there anything that we can, you know, talk about post for you? So these things are okay.  Yeah, it's important to be proactive. So you don't have to only follow up when you need something. You can just follow up to establish that really great customer service with them. So, you know, if it's after the holidays, you can send them an email and say, Hey, I hope the holidays were really great for you. Or let's say it's a special anniversary. So, Hey, you've been with us for a year. Just wanted to say thank you for your business, anything along those lines to make them feel special. So no matter what the situation is, just make sure you have a plan in place that you can follow with your clients and make it as smooth as possible. So now you know how to follow up with clients. Be sure to like this video and comment down below and subscribe to our channel and ring the bell so that you're notified when we have fresh content coming out. This is The Journey. See you next time.


So I filmed a short video at home on my iPhone for the organics by Red Bull Black Orange and this is what I came up with.