Naumisha. Kwa na kwa, kwa kwa.ju wa na ni bundu, Kwa na kwa kwa.  Unu kisia mkama. Taka makaya, Nisha. Kwa na kwa mkama. Unu kisia, Nisha. We'll go ahead. No way, no way. Rastili, eto tureranda pui fevera zabde chakwe mati. Imene, mani enika, tuwara miste kuat dibaizu kuwe mati. Insta bia kuat zi, mambe ku'randi do kuat yoh. Aba rastita sponsor protesti. Aba hantu kuat dibemme, diba pf. Moshi mo kuat zi, defi na fumuat turairi, na nomba tafira skirishwa. Made tuwa paditan, tameni.  Bare rangisho wamba. Ustafinsho fuware fundi aba na kukura. Eh? Aba ntawa shakwe toru piya. Bara shite niyoto, kabara shite wa gyo fringi wabo. Tatu shire na sosial piyoko ispo bini. Mani mati funishu kuwara pshu. Wanto nii buwariya. Tiyo nomba kuat yohu tiyo beri kuwa katekka. Uko mati ilo yohu na tuweni kuweni skiri. Tiyo foku mati shira yohu. Shishikirishwa. Pati mati uberi kuwa. Tena waz, putinia waz nishis. Eh, chara uchawa mecha zambia. Thank you so much. Thank you Wanoa for that. Can I just respond to that? You want to respond? Yeah, look and thank you. Be brief because I need to take some more calls. And thank you to what he has said. And again I want to emphasize that ine shishikirimu kuwara na pati wa pf panu. The president has no business with the pf. The president has every business with you, the zambian people. Umoba no. And I hear you when you say that in 2023 if you fly over president, wala hide, firi fwa eka fichitisha ni. Fifikirishwa. And I want to confirm to you, Wanoa, that the president has already delivered on some of the biggest commitments that he made. And I want you to confirm, but no. Mishimara po dya mkostituensishi. Should be Mandevo. Mandevo. I want you to confirm, but no, that Mandevo constituency has received 25.7 million kuwacha constituents development fund money. Money that you never used to get. Icho chila uchiwa eka teka wala hile no fifikirisha na wa shitisha ni, na wa fikirisha. Uko eka mudiwa wanoa. Aba na wale wa kuma skulu. Iya alutu. Uko abo rukudi pida kuna ngu ka kuwacha ngu kangue. Icho chila uchiwa eka teka wala hile no fikirisha na wa shitisha ni, na wa fikirisha. Uko eka mudiwa wanoa. Kuwaliwa wa nasi. Kuwaliwa wa doktor. Kuwaliwa wa kafundisha. Icho chila uchiwa eka teka wala hile na wa kafundisha na wa nasi na wa doktor na wene. Na wengisha ni shito. Chila uchiwa wala hile. Baka teka wala hile chila ukuwati. Kliniki idions. Ifu rea kuwata matenituing. Ifu rea kuwata mother's shelter and fudu power mesh. Nenda na wa baka teka Shari fuma. Wanoa imu nua witness. Tzondemu lomba. Muma na kapi. Nemtungu rushi. Isha mkostituens mumu enu. Nenda na wa shari fuma. Bombere nchapa mo. Mushinik shoko eba ti. Ama kliniki onze. Muni matenituing. Pani mother's shelter. Na mene shepuari. Na ma market. Ubusadita mudi. Pantwin dana wa shari fuma. Na loko government equalization funds na yo. Na yo onze. Bari fikirisha waka teka. Ifu ndela nda fishinga. Yes, I agree with you. There's still a bit of work that needs to be done. Gafi na nachi no mbe roda. Ubu wa fia. Boa cost of living. It's not an issue that is going to go away overnight. No. Yo. Nakaria yo. This is a problem that was building itself up. For 10 years. Baka tekere mwa wa sari de. Mwa wa pere 5 years. Mwa abu mba mwa kawno. Imie shii ne atema fo. Nene shiku fie. Iku midi mo 10 na shibidi. 12 days. Natua pere inshita wawonbe. The president can only succeed and you only succeed when he has the support of people like yourself. But no, because the president does not exist for himself. He exists for people like you. And please continue giving us feedback on those critical issues that are affecting you and the people in the communities where you are. The president has made it very clear. The nikring issues we have had in the supply of medicines. We have explained why there has been challenges. Because we need to cross check and double check and reorganize and reorder the structure of procurement of medicines. So that we optimize value for men and for you, the Zambian people, making sure that medicines were procured at the right price. So it is for you. And the president have said. Uno moeak? There should be no issues such as what we have seen, delays in the delivery of medicines, delays in the delivery of thumbing inputs. The President has given you his word. Now let us work together. Great. Let me take some more calls. Good morning. Good morning. Your name and where you're calling us from and please go ahead immediately. My question to Antoni Wada is, Antoni Wada, good morning. What is your name and where you are from? Amaka Daziba, St. Tom Kokoliko Fremu Kuchingola. Na Fremu Perindikele Baletiya. Tava reike dewa politi fubam Kokoliko Behu. Amaka Daziba, St. Tom Kokoliko Fremu. Na Fremu Perindikele Baletiya. What is your take? Cost of living and don't know what, and don't know what, but the actual percentage is roughly 305,800. The more the Caliba equity amazes. Caliba is the produce of 1,081. Most of them are only 307,000. Mesa Shinga, not what the surplus of the frequency. We should make sure we know about TEC, Private Company. They spent 40 amalans, there are things. But if we don't want to have any problems with them, Kutuna jila uzzawad yellow strewa what Auss ahh KuchuhGOla, Uh, kuchuh empahlate wo bip игры Technica, komitew wangunõ Kuchingona khuchuh empahla wo bip resisiоко focus umi webs הזio qualifying uh... Kuch iştege in putihala Ok six kakaizu nga hibu k�fti overu kukuruwa nani kukuruwa nani kukuruwa kwa nani kukuruwa kivali kunikia nani kaki na kakuraمة kua kukuruwa kivali kamaia kakuraima kik bali kushuninia kukuruwa kimi kakuraima kakuraima Thank you very much Oswald. Thank you very much Oswald. Ero ni shirepano. Nishi landzela tifu ni sefiri febu eno. Misha fond dandere. Ndandere nati baka teka maabasa direnoku baka 5 years. Aine. Imi ya kaisano. Ili ero naba bumbumu akawumu. Imi esi ine atema fo. Nenshiku ikumi naiviri atema 12 days. Ndandere ine atema 12 days. Imi nimoba wombere. Ero ndandere naiviri atema 12 days. Imi naiviri atema 12 days. Imi nimoba wombere. Imi naiviri atema 12 days. Imi naiviri atema 12 days. Kwavecha ngeodo puli, Ndandere naiviri atema 10 years. Ndandere naiviri atema 10 years. Kwaverkana 11, 21. Kwaverkana 100%, Ndandere naiviri atema. T facil iha yati. Imi nisha ngaiviri atema 12 days. Aia. Ndandere naiviri atema 12 days. Investments are up by close to 60 per cent. Are up by close to 60 per cent. business is not umboku buwera but they have a 240,000 they have an income so slowly but progressively the president is working through these challenges hefaba alanda poba wa uswa whipping the millimeter We knew we knew this school which was


And now for your U.S. Army Europe spotlight. Sharing the soldier's story is important. Soldiers from 173rd Airborne Brigade told their stories about Operation Atlantic Resolve, a U.S. Army Europe mission to demonstrate U.S. commitment to regional security. It was a great opportunity for me to present to the public what my fellow paratroopers do on a daily basis. My hope is for soldiers to become more aware of what the 173rd does and a better understanding of the logistics world. These stories were submitted for the Army Europe Eisenhower writing competition, which selects the best military writers telling stories from a soldier's perspective. So I hope my writing inspires other soldiers and leaders to really tell the story of the American soldier. And for my craft it was fire support, something I'm passionate about, but every war fighting function has a part to play and I'd like to hear every part of that story. U.S. Army Europe Commanding General, Lieutenant General Ben Hodges personally awarded the winners first place going to First Lieutenant Miles Gabrielson. For more information on the Army in Europe, go to ur.army.mil.


to another episode of Journaling with Movement. In this episode, I really wanted to create something unique that displayed a diagonal movement, which I know we've done before, but a broken diagonal movement. And I really had, I think, some interesting ideas on how to do that. So the first thing I did was I took some rubber stamps that I had. These are of my own design from my Design Line stamp set number 15, but you can use any stamps that you have in your stash and print them out on plain white card stock. Here are the stamps right now called Hand and Heart. And print them out on plain white card stock and then trim them. I had these rings on painted paper from, I think they were from my friend Barbara Clark. I know the paper and I think it was already cut into rings, came in Happy Mail, but I don't remember from who. Anyway, I already have this page with some drywall tape glued on it and a little bit of stenciling. This was, I'm sorry, washi tape. This was a page that, like many of my page, that started with just random scraps landing on it and then I later decided, ooh, I know what I'm going to do. So I know I want to create a chain out of these rings that I was given and have hands on either end for my stamp set pulling on it. I have two colors of paint here, one from Dina Wakeley and the other one from DecoArt, if I'm not mistaken. And I'm going to use them to create some more movement and you will, if you will, or pattern in the background of the page.  I've sort of dry fitted the one hand on the page and I like where that's going. This is a piece of cardboard packaging and literally I am just painting the paint on the packaging and pressing it into the page. It leaves this interesting sort of ladder-like impression when you use it as something to stamp with, which I like. And so the ultimate message behind this page to me evokes building and growing and I thought the ladder-like design of this piece of scrap cardboard really lent itself to that message. So we're just printing it on. I usually do things in odd numbers. I think it's more interesting, so five times. Then the next thing I have is I'm mixing a brown and a white. This is a hockey puck and I'm using it to create some dots on the page and the dots are very white. So it's not leaving a dark enough impression for me, although I do like the impression it leaves. That one is a little bit better. I do go over some of them with a small brush and the dark paint just to make it stand out a bit more. I love that hockey puck though. It's a great thing just for putting a circle of dots on your page. But in this case, the dots weren't, some of them weren't quite dark enough, so I'm taking some of the paint and a small brush and just touching up a few of them a little bit. I'm not trying to be neat and perfect. This is the background. It doesn't have to be. I thought the dots and the circular shape of the dots, again, are reminiscent of the main focal point of the page, which is going to be the chain. So now we need to let that dry before we can move on. I'm going to cut the two smaller rings in half so that they can be fitted one inside the other easily. And we will get everything together, get this dried, and then we can glue it on and keep going. So now we're going to use a gel medium to, this is by DecoArt, Super Heavy Gel Matte. And I'm going to glue the large hand and the large ring down first. I've already glued the ring to the hand and I'm going to glue that down. And then at the bottom, I have another hand from that set that I stamped out. I'm just pushing it down into the gel medium with a scraper tool. So I'm figuring out where I want the rings. I want it to appear like two hands are pulling the chain apart. And it takes me a few minutes. I should say a couple seconds to figure out exactly what I want to do. And then I realize, okay, I have this other hand. Yeah, and I want to use that. Like that one's just tugging and pulling. So then once I figure that out, I get some more gel medium on the page. And I position that hand so it looks like it's grabbing the ring. And then I take the other ring and put it nest them inside each other. So they look like a chain. Then I get some more gel medium and get that in there and glue it down. And as I'm gluing it down, I open up that one ring so that it appears like it's broken. There you go. You can see me doing that now. Now this gel medium does take a while to dry when you use a medium like this on your pages for any reason, especially if it's glue. It works really well to glue down these thick heavy papers like the card stock, but it does take a while to dry. Before you do anything else like right on your page or do anything else, you do need to let it dry completely. You will mess up your pens if you don't. Just guess how I know that. Make sure everything's stuck down really well. Use an old gift card, a palette knife or a scraper tool to just make sure all your edges are down and that everything's got gel medium underneath it and it's going to dry really well. I do have plastic sheets in between the pages to protect it so I don't glue my whole book together, FYI. So now that everything's dry and you can see that I've trimmed the edges of the pages and the hand was sticking off over the page, I'm grabbing some of my Arteza fine line markers to do a little bit of doodling and add some interest to the page. And again, continue with the suggestion of circular shapes and chains. I'm trying to find a color that I like for the background and then I decide I need to zoom in so you guys can like, I don't know, see what I'm doing. So I am just adding some scribbly circles around the painted dots from the hockey puck with a light tan color. It's probably intended to be a flesh-colored marker but that's not what I'm using it for. Again, before you do this, please make sure that your page is completely dry and then I am going to come in with another color and do the same thing in the same place, not necessarily covering up the first marker but just to add more interest to darker color. And you can see that you have the round circular shapes from the chain, you've got the round circular dots, you've got the round circular dots in a formation because of the hockey puck, you're just repeating yourself but the main focal image is a broken diagonal line. So I want to do some doodling and I am looking for a marker that will do some scribbly journaling for me inside the chain and so I'm using this dark brown color. Nobody has to ever read it. It's cathartic, this is a cathartic process at least for me and just write about what it means to you. I'm adding a few more interesting little marks around the chain to bring attention to the broken chain and the hands. There we go. So now to add our final touch to the page which is our title for the page, I'm using office supply store lettering stencils to trace our title on the page with a ballpoint pen, a bic crystal pen. These stencils come in a set of four. I am using the largest one in the set and I am just eyeballing the letters. This is a nice way to get a nice clean, neat title on your page or word or whatever on your page. My journaling tends to be about words and feelings and journaling so I almost never do a page without a word on it, at least one word on it. So for me, these are fabulous stencils and they're not expensive at all. If you don't have an office supply store near you, you can get them on Amazon. I'll try to remember to put a link in the description below if I forget, somebody remind me. I'm outlining each letter and spelling out break the chain with the lettering stencils with the ballpoint pen. It takes a couple minutes and then I'll go in and fill it with a black pen. I use, as you notice, the largest stencil for break and the smaller one for, I think, the chain or for the and then go back to the bigger one for chain. I forgot that I did that until I'm watching this video and doing the voiceover. I use a variety of black pens to do this kind of work and also coloring in the letters. I find the big crystal pen is convenient. It writes over almost everything. It doesn't clog up often. Filling the letters in, you sometimes have better luck and get a nice darker color. There's a big crystal pen, but that's a broad nib, a broad tip and that's a really good one, but you could also use a black gel pen and honestly, I don't remember which pen I used. That was a little wet right there. I found a wet spot, so Nana was having trouble and it's the very last letter. So then I'm having trouble getting it to write or at least give me the suggestion of a shape. Figures that would be like the very last spot. I finally use a pencil. I'm grabbing just like everything that I can. I'm working in a moleskin 2017 daily diary journal thing. It's an expired one. The paper is on the thin side, so you don't want to get it too wet. You also don't want to rub too hard or scrub too hard. You will go right through to the back side. I finally decide that's enough marks. I can figure it out from there and I can get it from there. Yeah, and if I'm not mistaken, I use a paint pen because I decided that one spot is really wet and so the paint pen will probably do really well there, which it does. So fill all the letters in and use something nice and dark and black. I do finally decide that I don't care that it's going to show through to the back side. But I take a few minutes and I color all of the lettering in and then we have our completed page and boy isn't it good looking. I love the message. I love the composition. I love the way it turned out, but most of all I love the movement in the page and the message in the page. So broken diagonal movement and it has a really strong message. I love that. So think about what you can use in your stash to create some broken diagonal movement to convey a strong message. I know that you all can do this. I have all confidence and if you have any questions, comments or concerns, don't forget to leave them here in the comments on YouTube or you can always message me in my Facebook group a life of art and self expression information for that is in the video description. Above all, go out and have a great day, have a great week, make some interesting journal pages and do something nice for yourself because you deserve it and I'll see you later. Bye guys.


region and came up with a very streamlined and prioritized list of what the US was gonna focus on from 2014 to 2016. And you know at this point it's four key areas that really build off of the work that's happening in the region and it's done in an extensive partnership with our partners in Afghanistan, in Pakistan, Central Asia, with all the development community and the international community. The first is creating a regional energy market. You know it's striking to me because if we had had this conversation a year ago you would not have heard I think as much about the regional energy side as we're hearing today. And I think in part because momentum builds confidence and you're kind of picking up on that on the themes. But you know the three projects that we've been putting some time and effort on. First is CASA 1000, which is a World Bank-led project. The second is the two tap connections which is an Asian Development Bank-led project. And the third is TAPI. And on CASA you know there's, I have to really credit Pakistan's leadership in particular because one of the key lessons actually if there's any colleagues here from Harvard Business School or other business schools, I think CASA 1000 is a terrific Harvard Business School or another business school case study that is not yet to be written. So good assignment for some of you out there. But why did we have a breakthrough on CASA in the last year? It's because of political will and leadership from the four CASA countries. And from Pakistan in particular when it signed the necessary framework agreement in last September and took that and took it to the next step so that all four countries were aligned. In the past year, I've been privileged to have a chance to work with all these four countries. The amount of political leadership from the highest levels of government, in some cases the prime ministers, finance ministers, energy ministers, all the way on down to work with the World Bank, to work with the CASA secretariat, to work with the international community and donors to get this to the next level has been tremendous because they see it's a window of opportunity that we have today, we may not have tomorrow. And so the signing that happened, the agreement that was reached Friday night and the signing that took place Saturday morning at the World Bank between Afghanistan, Pakistan and the transit price, it was a really critical step forward. The next step now is to bring, to finalize the sell price, the commercial pricing agreement between the sellers, Tajikistan and Kyrgyzstan and Pakistan. And we're hopeful that that's only an agreement away sometime this fall as well. So that construction and procurement can begin on CASA. TUTAP is the other project which I think is also interesting not because it's a theoretical concept. Electricity trade is already happening in the region, right? There already is a regional energy market. Electricity flows currently from Turkmenistan, from Uzbekistan, from Tajikistan down into Afghanistan. Increasing that supply, increasing the stability of that supply and also looking at potential exporting to Pakistan is kind of the next step of this. So we're working with the Asian Development Bank with other donors to look at how we can further build on those lines. Turkmenistan, for instance, is building its line, building a brand new line. It's already under construction from Turkmenistan to the Afghan border. The next step, for instance, right now is to physically construct a line that will pick up from the Turkmen line that comes down to Polikomri to the substation that would then generate down to Kabul and throughout Afghanistan. So these are the kind of technical discussions that are actually taking place every week here in capitals all around the world to think about the next steps of how to sequentially move this. In some cases, it's a lot of money. In some cases, it's not about money, it's about political will and leadership. And it's also signaling that there's a confidence that this can happen despite uncertainty over at times on the security environment. Let me switch really quickly to the other three pillars because they've gotten less mentioned, but I think they're as important. The second is facilitating trade and transit. And here, the US role has very much been one of support for the regulatory architecture because we all know that you can build the physical infrastructure, you can build these multi-billion dollar investments, but unless you have the regulatory piece of this, the software of how trade works, very little is able to actually cross borders. And so here we're looking at the different types of successes we know that have to take place from other lessons learned from other parts of emerging economies and markets. A couple of things here that are really key, first is WTO accession. In order to trade, we want to encourage communities and countries all around the world to be part of a global trading community, a rules of the road of the international community. Tajikistan, Kyrgyzstan are already part of WTO. We have been working and are hopeful that Afghanistan will be able to join by the end of this year, early next year, and we've been working and supporting Kazakhstan's accession as well. But bringing more countries within this region into that framework is increasingly important. Tifa is another area where our colleagues at USTR have been working very hard over the last decade with countries in Central Asia, in Afghanistan, to think about the trade and investment frameworks that you would need in this region, both bilaterally and regionally, to support greater trade. Other mechanisms on a multilateral phase, which we've been looking at and supporting, joining the International Road Transport Union, joining tier, looking at the different kinds of regulations you need so that if you build the rail line, your cargo can actually seamlessly transit from country to country because you're all part of the same international rail architecture, international road architecture, so that your trucks can cross your border. I think NAFTA actually is a kind of an interesting parallel for a different way, which is in the 90s, we signed a very historic agreement on trade and transit within North America. It's only recently as of this month that Mexican trucks will be allowed to enter US space, which is a huge breakthrough in terms of these negotiations. But that is the kind of context in terms of what you actually need for physical trade to take place in terms of the regulatory piece. Another is the cross-border trade agreements, why he talked about NAFTA and CBTA. Now that these agreements have been signed, ratification, for instance, on the cross-border trade agreement with Kyrgyzstan, Afghanistan and Tajikistan, we are working with Bishkek and hoping that the parliament there can move on ratification on those fronts. The third pillar very quickly is customs and borders. Now, my unofficial bumper sticker for this would be open but secure borders because we all know that no country in this region is going to keep their borders open and want to trade unless they see the benefits from trade do not come at the expense of their own physical border security. And that's clear throughout this region and frankly throughout the world. And so we have a huge moment here within the international community working with countries on our own donor coordination and assistance to make sure that as our own programs are working whether that's the US programs, EU programs, UN programs, and many, many other countries around the world to look at how we actually seamlessly connect border security with trade facilitation. And that's easier said than done in many cases because we have in many cases different implementing partners, different donors. You may have different streams of money that are connecting on the Afghan side versus the Central Asian side or the Pakistan side. And so that's an area where I think we can use this window of opportunity in the next three years to really push for an open but secure border model. The World Customs Organization can have a huge enabling environment role here in helping all these countries in the region think about how to do both trade facilitation and border security. And the last thing I'll just say on people to people which is our fourth pillar. To me this is one of the most exciting pillars. It's already happening and in fact it fuels and gives us the energy for every other pillar what we're doing because at the end of the day this is about people. It's not about countries and it's not about institutions, it's about people. And what we've been able to do working through USAID and our other partners is really bring businesses together, bring markets and it's a lot of what Amdika talked about. We've been hosting trade fairs throughout the last couple of years in Almaty, in Islamabad, in Tashkent, in Mazar-e-Sharif where we bring together businesses from the region that have never had an opportunity to meet each other before and they do their homework ahead of time we're seeing in some cases eight to 10 million dollars of letters of intent and agreement signed during these moments. So that you do start seeing not maybe necessarily the large scale container traffic but the inter-regional potential that Bill talked about earlier which can have such an unlocking potential in many cases and showing that some of this stuff can work in creating different types of incentives. So let me just end by saying there is this is the hardest region in the world to work when it comes to unlocking greater inter-regional trade and I don't wanna kinda gloss over that in terms of the context of putting this out there. This is the least integrated region in the world, right? So Central Asia is slightly higher than South Asia but not by much. Central Asia trades at about 6% of inter-regional trade. South Asia is about 5% in some cases inter-regional investments are less than 1%. The barriers are incredibly high to unlock. The good news is that success can be huge in terms of what we're able to accomplish because the bar is so low in many cases. It's gonna be generational. This is not a program that's gonna succeed in three years or five years or 10 years. It is a long-term generational commitment to think about Asia in a different way. Not just Afghanistan but to think about the way Asia can trade in a different way because whether it's energy security, whether it's container traffic or trade, if you can think about a world in which Kazakhstan can trade energy down with India, that's a fundamentally different Asia, right? That means the conversation we're having 20 years or 25 years from now and how we think about Asia as a land mass is fundamentally transformed and different. So the work that has been going on is actually, I think, historic and transformative if we're able to reach some thresholds that are really important for critical tipping points and I think we'll get there in some of these cases but it does require, I think, a doubling down today of looking at where we can prioritize, where we can implement and also where we can generate the necessary political will from the governments and civil societies and businesses in the region to cross the finish line, thanks. Thank you. Not only for giving the US perspective but also for having an excellent summary of the main themes and for seamlessly going from NAFTA and Ukraine at the top level to the substation of Puli Humri and integrating all of that. Let's take, yeah, okay, question here and one at the back and I'll take these three questions. As I say, we'll try to go maybe for another, well, 10 minutes or so. Thank you very much. My question is, you know, like there are these big projects we mentioned before, TAPI, Casa 1000, for example, trade agreements and all those things. I think to sustain or to create trust within the region, you know, address geopolitical issues, one has to pilot some of these big projects, you know, like Start, for example, with Casa 1000, for example, increase import additional few megawatts of electricity from Central Asia to Kabul and, for example, just give a few hundred kilowatts to Peshawar, you know, like just to show it to people that it works, pilot it, you know, like when it comes to, for example, trade agreements, you know, like just extend the current Afghanistan-Pakistan trade agreement to Tajikistan, you know, like engage it, just to pilot it that it works, you know, like, and by doing the small pilot project, so it will create confidence, trust within the region and finally the region will be ready to politically to embark on these larger projects. I think that is one of the key recommendation of the report of the East West Institute, you know, rather than talking big things but taking small action, you know, like big words, small action, that is very important thing of the, deliverable of this report, thank you. Good morning, I'm Dr. Brannick, I'm recently retired, so I've been in and out of Afghanistan since 05 and I agree with Mr. Wasi, we've got enough plans out there, it says implementation, the problem I see with the implementation is the capacity, you know, we have a dearth of capacity in Afghanistan, I'm the only Americans ever taught at Kabul University, so I know the quality of the students there and their potential but we don't have the capacity building mechanisms in place, we give lip service to capacity, there's very little bit of money, the only thing that really wins over in Afghanistan is those big ticket items, you know, and we need to start concentrating, we've been in there for 13 years, we need to start building the capacity, human capacity to be able to implement these things, otherwise they're sitting on the books, you know, and that needs, you know, US has great policies, I spent a lot of time with the Canadian Northern NATO Alliance to try to help them work on their plans and everybody's talking about big ticket items, but yet the population is starving, so we're not spending any time trying to build, you know, assistance living with them, so we gotta start tearing down some of our plans and our lofty goals and get down, you know, this gentleman over here talked about hydroplanes, plants, you know, to bring electricity to the communities, I mean, I could go on and on, but I've been in that country since 2005, in and out, you know, and so I really understand the dynamics and our plans are all, you know, every one of the countries, every business plan we wanna go talks about the government getting involved in big ticket items, sorry. Hi everyone, my name is Tabish, it's very short, my name is Tabish, I'm a fellow at NED, National Endowment for Democracy, actually I'm an election officer from Afghanistan. I was feeling very happy while Ambassador Shafakat was making comments on Afghanistan, apparently we, the Afghans and Pakistanians are seemed to be very friendly when we are out of the country, but I was asking a question that's looking to the extensively connected networks that you have back, with the diplomatic establishment there at home, how really the security centric view in the diplomatic establishment has been changed. Looking to the past decade of diplomacy, still the policy of the Jihad and to France, as Deleperro mentioned in his book is out of the table or not. Actually, I'm sure of the capabilities of doing diplomacy and sharing the interests with our Pakistani friends, and we need to find a way to live together, but the comments made by Excellency Ambassador was seems to me, it was too good to too, but hopefully I wanna hear from you that, is it a shift from security view politics to a more civil policy toward Afghanistan? Thank you. Thank you very much. My name is Abdul Hamid Qazi, I'm a civil structural engineer. I worked two years as a chief engineer for reconstruction of Afghanistan in 2005 and four. My question is to Mr. Visey, he mentioned about the thousand page of strategic plan, economic plan, whatever it is, but it was not in practice. We know that the last 12 years was different issues in Afghanistan, but now the recent government, whether they are using the same resources, the same data that our money politician come to force and starts from scratches. That's the one question. The second question is the population of Kabul city. Once Mr. Karzai announced that it was a garden of the city in that region. In 2002, when we were there in a society of Afghan engineers, we organized a conference. But in 2008, the United nation announced as a dirtiest city in the world. So that effect the population of the city when there is no job, immigration is going to the big cities and especially the Kabul city. Okay, thank you. Thank you. Let me start from the last question. Basically, what Joseph you mentioned, it's, you know, the new government has its own right to really utilize the old versions of strategic policies developed already and they are coming up with good recommendations or they do start from scratch. But I don't believe on starting from scratch because both Dr. Ashraf Ghani and Dr. Abdullah Abdullah, they were member of the cabinet of the past government and they were so much involved in developing off the national priority programs, the national development strategy of Afghanistan, the millennium development goals for example, Dr. Abdullah was involved. So this is something which they are very familiar with the nature and conditions of the overall development activities and planning procedure. And I think what I understood that it's more for implementation, monitoring and evaluation rather developing of the new activities. This is what I understand from Dr. Ashraf Ghani so far. This is something which is really required and he's doing by himself, the monitoring and evaluation. This is, this should be part of the big process and that was a big gap in the past. So the accountability, the corruption issue, the transparency, they were all the key elements of some negative improvements. So on the purpose of, the purpose of Heart of Asia actually as a building trust, Mr. Shinwari was talking about that we start small, then we make a role model for the future activities. I think, do we have time to really start small that's a big question. But the region, I think yet need to know its quality and it is potential. This is something which region really, our region really need to understand those countries who are really doing well, they have been able to utilize all their capacities for better development cooperation. This is something which we really need to do. I just want to add that as I have been focusing on that economic transition is really underway and we have to take a lot of steps which is, to enable the Afghanistan's small and medium enterprises to be more capable to take the global challenges and enable them with more efficiency. Thank you. Yes, there was a question about whether there was a change in Pakistan's security centered approach in its relations with Afghanistan. Well, of course, security is important and Pakistan has had serious concerns. Mullah Fazlullah, for instance, has been in Afghanistan for a long time and continues to remain there. Similarly, Afghanistan has concerns. But as far as the Pakistanis are concerned, the efficient level, they told me their position has been evolving and they have no favorites now. The operation that has been started by the Pakistan Army in June in Waziristan covers everybody. There are no favorites. There are no, it's a comprehensive thing. It's a part of a national consensus on fighting terrorism and people who believe in terrorist sort of means to achieve their objectives. So we have this assurance and I hope that the two countries can work together. We have a joint commission. We have a number of processes and that should help. The other thing, I think Bill Bird mentioned which I wanted to answer about water. Pakistan has absolutely no reservation and in fact is very keen to work with Afghanistan on completing the Indus Water Treaty because Indus Water Treaty did not deal with the Kabul River which is a very important tributary of the Indus and the lands that my family owns are actually irrigated by the Kabul River and the Kabul River replenishes the Indus or water flows by as much as 25% when it enters the area. We have absolutely no reservation either at the government level nor at the non-governmental level and we look forward to entering into consultations with Afghanistan on how to develop the resources of the Kabul River before the Kabul River enters Pakistan. If we have allowed India to have hydropower projects on the three eastern or western rivers before they come into Pakistan, why would we question that to Afghanistan? I mean, so there's absolutely no reservation political, technical or any other on the cooperation for harnessing the resources of water. By the way, Afghanistan has immense water resources much better than India, Pakistan or any of the South Asian countries. It only has to deal with all the four basins that it shares with the neighboring countries and there is tremendous potential for that. The other thing is that sometimes it's often ignored how much Pakistan has done for Afghanistan. We continue to have about two million Afghan refugees, 20,000 Afghan students are undergoing college education in colleges and universities in Pakistan, half of them on scholarships. And we also have four or five projects connecting improving the roads, connectivity and also educational and health facilities in Afghanistan. Thank you. So, Bill, have they turned you into an optimist? Well, thank you and I'm actually very encouraged by your remarks and I would suggest I think something was missing from this was to large extent water and maybe EWI could take it. It's very, take it forward a little bit in a very sensitive manner. There are enormous issues. I mean, I'm really happy to hear that but right now Afghanistan uses 90% of the Kabul water river. Is there a realistic chance that that goes to 70, 30 or something? This is huge and it affects intrapakistan dynamics because Sindh versus the other provinces is also a water issues within Pakistan. So I'm really glad to hear that it's possible to open dialogue. I don't think the status quo now where 90% of Afghanistan of the Kabul river water goes to Pakistan is acceptable to Afghanistan. So there needs to be give and take and I think there are win-win projects including hydro power projects in the Kabul basin that can also provide electricity. And again, if there's a level of trust then water conservancy in Afghanistan can actually help some of these problems like floods in Sindh so I would be, you know but I would sort of urge EWI to see what you can do and Central Asia just say, I mean, it was Pakistan, Tajikistan, Kyrgyzstan issues on water. They have their own issues then there's Afghanistan where almost none of the Amudaria water coming from Afghanistan is utilized within Afghanistan. Big issues there and then similarly Iran, Helmand river. There they actually is an agreement. It's the only one where there is an international agreement between Iran and Pakistan but they're dissatisfaction on both sides about it. So I would urge this in a very sensitive and maybe low-key manner to start taking forward this issue. That was given rise by your very encouraging remarks. There are two questions which weren't answered so I'll try to address them very quickly. On the lack of capacity, I think we shouldn't overstate that too much. Maybe I'm a bit naive and maybe I worked mostly too much with the Ministry of Finance but there certainly is capacity there. In 2002, the Treasury Department of the Ministry of Finance was dominated by foreigners. Now there are not many foreigners there, very few. So my point would be I think the issue you raised is quite genuine but it's also an issue of prioritization. You try to do too much and you don't get anything done. It's clear where the Afghan government had the incentive because they needed to build that capacity in order to get revenues from aid into the budget. They actually could do it and I think the issue is prioritizing and sort of building but there's an awful lot of latent capacity particularly among the younger generation which I think let's say the Afghan government has not fully utilized. Kabul urban was another question, huge issue and it's very interesting why in Afghanistan development projects in rural areas have often, especially the national programs have often worked better than the urban projects. I think it's very interesting because logistically you'd think it would be different. I think during the Soviet occupation period the urban projects worked, the rural ones couldn't work because of obvious security reasons. Why in the current or in the last 10 years the rural projects have often worked better? That relates to governance, institutions, how the municipalities function. I think this is a whole issue and of course the urban pollution and environmental issues are extremely important. Thanks. Okay, thank you. Thank all of you for staying past the hour. Before concluding I also wanted to thank my colleagues at the East West Institute for sharing this event with us and asking us to host it. I think that it became very clear from both panels that there is an agenda for action and there has been an immense amount of the thinking work which is done and there are some possible wins up ahead as Fatima in particular pointed out. And then finally thanks to this panel for taking your time and sharing your thoughts. So a big round of applause for everybody.


All right. Hey, everybody. I'm going to use the remainder of my voice to tell you about Houdini. So if I go full adolescent, cranky voice on you, I apologize in advance. But I've done a lot of talking in the last few days. But I'm very excited that a lot of people came here to listen to me talking about Houdini, which I want to talk to you about. So this is about Houdini. And the subtitle that you can read here is the title of an article, The Smashing Magazine published, which says, it may be the most exciting development in CSS. And actually, this article was written by a colleague of mine in DevRel. And the subtitle goes even longer saying, maybe the most exciting development in CSS that you've never heard about. Because so far, the entire Houdini effort has been kind of flying another radar. So Philip Walton, who wrote this article, joined forces with Shane Stevens and Ian Kilpatrick, who are Chrome engineers who are leading the effort in Chrome to work on Houdini. So this article is not only really good, it is also really in depth. So if you want to have more reading after this talk, I encourage you to go there and read that. It's just a good article. So before I start getting into the whole gory techy details of how Houdini works, I just want to make sure that all of you know what Houdini is and where it is trying to go. Houdini is the effort of exposing the internals of the CSS engine to you as a developer. And that sounds a little bit ominous, so I'm going to explain that a little more. And afterwards, I'm going to talk a little bit more about the individual parts of Houdini, where they are at right now, where we're going, and all these kind of things. So actually, I wrote a blog post too, even before Smashing Magazine. So I wrote about Houdini before it was cool. And I did that because when I started on the Houdini project, which was back in January of 2016, there really was no publicly available and easily consumable information about Houdini. There was a website which was a glorified wiki, really. And it just linked to the specs. And the specs were empty, or they were like, you know, specs just very hard to read and consume and to understand what the motivation was. And so I had the privilege to just go to my Google colleagues, the actual engineers working on this, and have them explain to me why this exists. And so I wrote the blog post, and I did the whole thing. I put it up on the Twitter's and the internet's. And I had a lot of feedback, and it was really interesting because loads of people were just mind blown by what Houdini was trying to do. And one person was Dan Tukini, who is the inventor of GSS, the Grid Style Sheets, a constraint-based layout system for the web, and is now the CEO of the Grid. So he said, Houdini sounds like the best thing since sliced bread. And of course, you would say that because both of his projects are really deeply invested into CSS and the more powerful CSS gets, the better his projects become. But he was not the only one. So effectively, he was mind blown, and I was asking myself, is it really that mind blowing? Why does it feel that way? Because to me, certainly it did. I was blown away when I heard first about it. And what it comes down to, I think, is that you are getting access to browser internals. You now have things at your disposal once Houdini lands that weren't at your disposal before. It feels very raw and fragile and actually kind of secret because usually it's reserved for browser engineers and not the web developers. So you now have the tools of the gods at your disposals. And that makes things really, really interesting. And the thing is, this has actually happened before. There were two technologies that were pretty much the same level of mind blowing. And Polymer made heavy use of it, and it made Polymer so good, but people were crediting Polymer instead of the web platform. And the things I'm actually talking about are shadow DOM and custom elements. These are web platform standards that supposedly are supposed to end up being implemented by every browser. And Polymer sits on top of that and they're giving you access to a browser internals. For example, shadow DOM. Look at the markup right here, the video element. If you think about it, where do these elements come from? Nobody in the markup do I ever specify the play button or the progress bar. They just appear. And the subsequent question is, how do I style these magically appearing elements if I never put them in the markup? And since shadow DOM, we actually have an answer to this question, because now we can actually, in the inspector, we can open up the video element and see that the play button is just an input type button. And we can maybe even style it. And this has always been this way. Browsers have always used their own elements internally. If you want to have these kind of hidden control elements, but you were never able to do that yourself, because shadow DOM wasn't a thing, and now you can. But again, people thought this is just Polymer emulating something that looks like a browser internal, but that's not the case. It's a platform feature. This is actually how the browsers work. So again, both shadow DOM and custom elements are specs that's supposed to expose something to you that the browser already had internally and now it is at your disposal. And it enables you to recreate behavior that was already there before, but you wouldn't have been able to do this, like these magically appearing elements. You wouldn't be able to do this before. And this kind of mind-blowingness has a name. It's the Extensible Web Manifesto. And the key quote for me from that manifesto is, the web platform should expose low-level capabilities that explain existing features and allow authors, so you, to understand and replicate them. And again, think about how fitting this is for custom elements and shadow DOM, exposing things that were there before, but weren't at your disposal. And of course, it goes further. It not only allows you to understand things or to replicate things, but you combine all these low-level capabilities into something potentially new and mind-blowing. And when you set this as your goal, that you want to expose all these low-level capabilities that looked like black boxes before, and you look at the current state of the web, you find a lot of things where you say, this could be exposed, and this could be exposed. And one of these glaring shortcomings is CSS. And that's why Houdini exists. Custom elements for the DOM tackle the DOM, turn the black box DOM into something more open. Houdini is trying to do the same thing with CSS. And people keep asking, why does it call Houdini? And nobody knows. I actually asked them last week, the task force. And they had two stories, and none of them knew which one is true. So I'm going to tell both of you. The first story is that CSS is magic.  It's really magic. Where does it say what display flex even does? You just change from display block to display flex, and suddenly everything rearranges. How does it happen? Where is it said how border style dashed is supposed to be drawn exactly? Houdini is trying to demystify that. The other story is that CSS is a straight jacket, and we want to escape that straight jacket. And the goal is whatever the origin of the name is, the goal is the same. We want to expose all this to you, so you can actually use these low-level features to build more and greater experiences on the web. So we need to expose all these low-level APIs of the CSS engine. And let me read this off. This is not a Chrome brainchild. This is actually, and I want to read this because I don't want to forget anyone, Microsoft Edge, Mozilla Firefox, Apple's Weapon Safari, Opera, HP, IBM, Intel, Adobe, and LG are all participating together in this workforce to make this thing happen. So it's not like one browser supports and nobody else does, but this is a web platform feature of the future. Everybody else is working on this together to be on the same page and work towards the same goal. So let's talk tech. The first off, Houdini is not a single API. It is a collection of APIs. And I made this graphic, and this is not even complete. I skipped over a few of the smaller specs or the more basic specs that the other specs work on top of because they were kind of boring to explain by themselves. But these are the ones I'm going to focus on. And the grouping of these specs is my personal emphasis. I grouped them kind of by synergy because these specs that are close together work very well together, but there's no limitation on how you should use them. What you should keep in mind, though, is that a lot of these specs are still empty or just mere placeholders for an idea. They need to be fleshed out and specced out and implemented and triaged. So for this talk, I'm going to focus mostly on the least immature ones, which are arguably these four. Some of the other ones are not even drafted or just an idea. I'm going to explain all of these on the slides at least roughly, but the four highlighted ones are the ones I want to take a closer look at. So let's take a look at the very first cluster. These two APIs have the goal of introducing typing into the JavaScript APIs for CSS. Currently, typing is in a really weird spot for CSS, which I think I can explain best by an example because currently, when you want to manipulate styles from JavaScript, things start to hurt a little bit. So you probably have all written something like this before. You just have your variables, and you want to turn them into styles. So you do a lot of string concatenation, and you append units. And only thing you want to do is just move something by changing its transform. And this is not only unreadable. It's actually kind of ridiculous when you think about it because we have numbers, and we turn them into strings to pass them to the CSS engine so that CSS engine, in turn, can destruct that string again, turn it into numbers, and do its thing under the hood. So we are really wasteful here with computational styles. ES2015 made things a little bit better in terms of readability because we have template strings now, but it's still strings. So the wastefulness is still there, and it's just not a good idea. Things get actually even more ridiculous when you think about it when you try to read back styles from the CSS engine and use them. So you have to strip off the pixel suffix yourself, or if you want to work with timing functions or CSS matrices, good luck. And this is where the type object model comes into play. It exposes a typed API for CSS. I say typed, it's still JavaScript, but at least now we have units and values separated. And what I mean by that is something like this. The new API is mostly contained in a style map on DOM nodes. And with that object, you can set styles and you can query starts. When you set styles, you give it the property you want to set, and you use one of the new types that they have introduced for number values, keyword values, or length values, which can be pixels, or EMs, or VHs, all these things that you have in CSS. Obviously, you can also query something. So when you set something, you get something back. And the mind-blowing part here is now you have a dictionary which has a value and a type, so you don't have to do the string parsing yourself. Great accomplishment. This thing goes also further because it also handles calc values. So if I set a calc value, I will get a dictionary back that has an entry in a dictionary for each of the units that are in that calculation. So I don't have to do arithmetic parsing myself, which is really good. And then they're realized, hey, if we have a dictionary, why don't we also allow setting the value with a dictionary? So it's actually much easier to assemble styles programmatically. And with that, arithmetic becomes a lot more comfortable to do when you write JavaScript. And then they thought about, well, it is easy to do arithmetic. Why don't we support arithmetic as a first-class citizen? So I added a basic arithmetic method as well. And they would turn simple lengths into calc links automatically from the engine if the units don't match up. So this is really nice if you have something like Paul Lewis's flip where you have to take calculations and mix and match certain types together. It makes JavaScript much easier to write the CSS. The spec actually has a table that maps from property name to the types that that property can take. But as you can see, some of the types are not actually linked. That means they don't exist in the spec just yet. They just haven't been specced out. And for these, the API will currently fall back to the string representation.  But that will get around to one of the future iterations of the Houdini-typed OM spec. And I think one of the most interesting parts of this is that we had a hack to implement it, or a premature implementation of the type to M in a custom build for Chrome, and did some performance testing on very high-animation websites. And it had an impact of up to 90% faster code, which I think is amazing, or just shows you how much time is being lost in converting back and forth between strings and numbers when you do animations. There is a polyfill that is being worked on. It is not complete yet, and it's not very easy to use at this point, apart from the fact that you should never use this polyfill in production because you add another layer of converting strings to numbers because the API doesn't exist. So we do it in the library for you. It's just a huge performance hole. But I still encourage you to use it and play around with it because it is very nice to just play, to see how this API feels. And we need your feedback for that. Because as of now, we have the chance to still change all of these APIs. They're just in the drafting phase, so nothing is really stable. So you have the chance to get involved.  That is so good. And if you want to get involved, do it. You have the chance. You would never want to go back, but for now, sadly, you have to. So that's typed OM. The next thing I want to look at is properties and value, which ties in very, very closely to the typed OM spec. And if you think about properties and values and think custom properties, you'd be right because it's very much related to that. At the current stage, custom properties have been a thing for a while now. However, they work on the basis of strings. And why wouldn't they? Because before Houdini, CSS was purely string based, at least the part that is exposed to you as a developer. And therefore, the usage of custom properties worked with single string replacement, which doesn't seem too bad. But let me give you an example. Let's say you wanted to implement a site menu, a site nav that is almost hidden away. And when you click it, it expands. Very common thing. And you realize that with the extent of expansion of that site nav is used in multiple places, not only on the transform of the site nav element as well, but maybe on the transform of the body or maybe as a padding somewhere, you're using that value in multiple places. So it seems kind of like a good idea to put it in a custom property because you're using that value all over the place. And then you don't want to just snap out the site nav. You want to animate it. So the idea would be to just animate the custom property instead of all the properties that use this custom property. So you write that. And as it turns out, custom properties are strings. And strings are not really animatable because you can't transition between two values of a string. What is 30% between string A and string B? The engine doesn't know that. So what will happen instead is it will just flip over from the start value to the end value at 50% of the time. And that's not smooth.  So that really doesn't work. And actually, things get even weirder with the current state of custom properties because when you do a weird misassignment by accident, for example, assigning a color to a width, it will just silently fail. And you will have no idea why it is not working. So debugging becomes really hard. Enter properties and values. Properties and values, the API, the new, is actually really small. It's just one call, really, and allows you to define more details about your custom properties. So what you can now do is you can say what kind of syntax the custom property has, which basically means what type that custom properties has. You can have control over if it inherits down the CSS tree or not. And what is really big in terms of custom elements is that you can give it an initial value. Custom elements use custom properties a lot to define their looks on the things they have in their shadow DOM or something they want to give special access to. And at the current stage, you have to define every custom property they define. And now you can have an initial value, which will be used if the value hasn't been overwritten. So that is really handy. So now we are able to write JavaScript that interacts really, really well with styles. And now we come to the spec that personally, I think, is the most exciting, because we have our basis of having been able to write JavaScript that works really well with CSS. And composite scrolling animation makes heavy use of that. Just to be clear, the spec is called Composited Scrolling in Animation while its main feature is called Compositor Worklit. And people tend to use these two terms interchangeably. But the question really is, what problem does it solve? Let's say you wanted to mimic an effect of a popular social networking app. You can see we are scrolling down, and the avatar changes position according to scope position, and it scales, and also the header bar fades in. And this would be kind of possible on the web right now, actually. You would hook up to the scroll event. You would start a request animation frame. And in that request animation frame, you would pull in the scroll top and do your math and change the transform. And if you've ever listened to Paul Lewis, you would know you would have to change WillChange to have it on its own layer, because otherwise you would have repaints. So it is really hard to get this right without ripping a huge gaping performance hole into your current app. So before I start talking about the Compositor Worklit, what are layers? I'm assuming maybe not everyone knows this. Layers are more of a logical concept that manifest as a separate buffer on the graphics card. Whenever a DOM element has their own layer, it means that on the graphics card, they will have their own buffer onto which they can paint themselves. And that means that changing the transform, like opacity, or translation, scaling, or rotation, will be a pure GPU operation instead of forcing repaints all over the place.  And this is really important because GPUs are really, really good at that. And we want to be as close as possible to 60 frames per second to make the app actually feel good. So as I said, this is kind of possible with the current approach when you really know what you're doing. And even then, we are still at risk of having an animation that lags behind. So this is a normal DOM, a normal diff box on a website where I'm scrolling just up and down. Looks normal, as we all know. But if I add another box that is statically positioned and try to use JavaScript to do the same thing, basically, you're re-implementing scrolling myself, it will most likely look like this. To be fair, this video is slowed down to make the effect more obvious. But even in real time, it is very, very noticeable and makes scrolling effects usually seem very laggy on the web. And this, exactly, is the problem that the compositor workload is supposed to address. It allows you to write a piece of JavaScript that runs in sync with the rendering pipeline instead of being async, because the problem we had previous is that we are consuming async data and are getting data that is mostly out of date, more often than not. So now we have a piece of code that runs in sync with the frame rate. And you get access to all the layers. And you can manipulate the transforms of these layers and do the kind of magic in there to implement what we just saw. And this is easy now, because we have type 2 M. So writing JavaScript to change transforms should be a piece of cake, eventually. But what exactly is a workload? I kind of jumped over that. So workloads are actually one of the additional specs that I left out in the original image. A workload is kind of like a JavaScript worker, but much more lightweight. They have been stripped down of certain access and have certain restrictions that I'm not going to get into too much. But they still run in a different thread. And that's the important bit, because whatever you run in a workload will not interfere with your main thread. So they do run in a different thread, but that also means they don't have access to the DOM. So we do have to find another way of doing that. Inside the ComposerWorklet, we can now define multiple animator objects, each animation to separate the code for different animations that you might have on your website. And as I said, we have no access to the DOM, so we need to find another way of doing that. And that's why the ComposerWorklet spec defines proxies. These proxies give the animator access to certain properties of certain DOM elements so that you have, although a very restricted, but a very precise access to the DOM in the ComposerWorklet without us having the risk of you modifying everything there. So it is very well defined what you're going to change. But let's look at some actual code. So let's say we wanted to implement the thing that I showed you a video of, the Twitter-like header bar. The first thing that we're going to do is we're going to import a JavaScript file into our ComposerWorklet with this statement. The script will be evaluated inside the ComposerWorklet, and it's just a normal JavaScript file with its own scope. But as I said, no access to the DOM. And inside this work, we can define a class and can register that class as an animator class with a name. We need that name to get a reference to it in the main thread later on. And inside the class, we mostly have two important functions. The first is onMessage, which allows us to have post-message-style communication with the main thread. And the second is the tick function that will run every single frame in sync. So it is blocking. So that means, also, it's not necessarily true. It does not necessarily run every single frame. But it's a good assumption to work with because it very well can happen. But it means that the code in the tick function needs to be efficient, like really efficient. So the tick function would basically contain what we had in our request animation frame before. We would get the scroll top. We would do the math around the transform and set it on the avatar. Back to the main thread. After we have called import, we get back a promise that resolves once the Composer work that has evaluated the entire JavaScript file. And now we can create an object that is a reference to this animator class that we just registered on the other thread. On that animator object, we can call post-message to basically create composite proxies that are proxies for the elements that I'm calling there. So for the window, because we want to have access to the scroll top, and to the avatar and the bar, because those are the elements that we want to change to transform our opacity on. This is kind of important because this allows the engine to optimize when our code actually really needs to run. If scroll top didn't change, we don't need to do anything. But if we are scrolling, we are actually changing scroll top every single frame. So our code will run every single frame. So the performance assumptions about this code still need to hold up. And that's actually kind of it.  But this is now something that would run in sync with the compositor engine and should look really nice. So I recorded this video, which is recorded with a custom build of Chromium, where we have kind of a hacked implementation of the compositor workload. And you will just have to believe me when I tell you that the difference is really notable in terms of how reactive the scrolling is. Chrome engineer Robert Flag actually wrote a polyfill for this as well. So again, this is without any performance benefits, because these kind of things are by definition not polyfillable. But again, it gives you a feel for the actual API itself. So the polyfill uses the approach I mentioned earlier on, request animation frame, and hooking up to the scroll event, and these kind of things. And in the repo, there's actually also the code for the demo I just showed and two more demos. And each of the demos follows have a link to a video where I record these demos in a Houdini enabled browser so we can actually see the difference to how your browser behaves and how Houdini browser would behave. The future will tell how this works out. Lastly, I want to talk about the Paint API, also called Paint Worklit. The API allows you to define your own Paint routine for elements, basically enabling you to define your own background patterns or border styles or even your own shadows. They're still working on where to draw the line. But effectively, it is somewhat like a canvas. You might be asking, why not a canvas? Well, mostly because a canvas is really, really heavy weight. It's a very memory heavy and processor heavy element. And also, it has a separate resolution that doesn't scale with the element itself. So you get these weird stretching effects if a canvas gets rescaled. And you don't have good control over when a canvas needs to repaint itself. But how do you use the Paint Worklit? Basically, it works as a background image where instead of an actual image, you now use a function to your own paint implementation. So the spec is pretty fresh, so I'm not going to do too much wall things, but I'm going to take this example, which is straight from the spec. And the goal of this example is to show a temporary image as long as the actual image that we're linking to has not been loaded yet. So we're going to register a custom property that takes the actual image. And we're going to use our Paint function to draw the temporary image as long as the actual image has not been loaded. So that's exactly what we're going to do. We're going to register a custom property with a syntax image. So that means that the browser can tell us when we're actually assigning a length to this value. And we actually need this to have deeper access on the JavaScript side. And then we're going to work, again, with a Paint Worklit attribute and just import a JavaScript file into that Worklit. Inside that Worklit, we will now register a class. And the first important thing is, again, that we tell the engine which properties we actually depend on. Again, this allows the browser to kind of optimize when we get to repaint ourselves. We are saying we only depend on the image because when the image changes, we need to repaint the new image. But we don't care, for example, about margin left. If margin left changes, we don't need to repaint. Everything is the same. And then we're going to look at the actual Paint function. The Paint function gets a context, which is very much a Canvas context, just stripped down of any kind of read back. Because for security reasons, you should not be able to just inspect what the element looks like just because you're a Paint Worklit. We get the geometry of the element. So this is one of the advantages of our standard Canvas, that we know the size of our element after layout, because painting happens after layout. And we get a dictionary with all the properties that we defined we need access to. So what we're doing then is that we are requesting access to our image property, custom property, and switching over the state of that image. Because we have type 2n, we know it is an image, and that image has a state attribute that tells us if the image has been loaded or not. So if it is pending, meaning it's still being loaded, we draw mountains in this example. If it is invalid, meaning the loading has failed for whatever reason, we draw a sad face. And if the image has been successfully loaded, we draw the image itself. That's with the least immature specs of Houdini right now. And now I just want to quickly cover the ones I left out so far from the image. And as I said, most of these are kind of empty or just symbolize a future idea that needs to be fleshed out. But they're still really exciting. And one of the things that is really exciting is the layout work of it. The spec is pretty empty, is what I would have said last week. But we had a meeting of the Houdini work for Slack week. And actually, Ian Kilpatrick proposed a complete, I had a proposal for the API. And it's pretty hard to grog. But still, it would allow you to write your own layout for CSS. So something that would be possible in the very near future, for example, would be to have an actual implementation of masonry layouts, something that the web doesn't have right now. And it would be implemented with the very same tools and native browser engineer would have at their disposal because this is a very same API. So once this lands, this would allow great polyfillability for the future of the web. Because any layout ideas that come up can just be implemented in the very same way. A browser engineer would can be tested. And if they actually prove to be useful, browser engineers can port the JavaScript implementation to C++ or whatever the browser uses and become an actual native implementation. Another great use case would be grid style sheets, which is, as I mentioned earlier, a constraint-based layout system, which is really interesting, but right now runs in the main thread and makes your site really behave really weird at times, especially when layout is being triggered. So I guess they would benefit a lot from having a native or almost native implementation using the same APIs. The font metrics API is exactly what it sounds like. It will allow you to finally know the answer to the question, how big is text X in font Y with font size Z going to be? Because right now, this is surprisingly hard. Keep in mind that this calculation actually gets really, really complex. Because most of the time, text wraps. And you might need to have access to not only the entire bounding box, but the individual lines of the rep text. And text often changes the font without you noticing. Think about emojis. Emojis are different fonts than the font you're actually using. So you have different metrics. And that it's just very complicated. It can't be polyfilled. We need browser-level support for this. So one example would be auto-sizing text, some text that adapts to the width of the window. How do you do that right now? This is an implementation by Paul Lewis, where he does a canvas and an iterative loop. And he uses black magic. And it's just bizarrely difficult to achieve this at the coincide. And this is something that should become easy eventually with this spec. The parser spec is arguably the most ominous of them all. Because there's nothing in there. I just talked to some engineer who had the idea. And he was like, yeah, this somehow works with a string. And then you can modify it. So I tried to ask a little more. And he gave me a rough explanation. So you give him some string. You get back abstract syntax tree-like object you can easily modify and turn into actual CSS directives, feed that to the CSS engine, and turn it into styles. You would have hooks for add directives and for properties and functions. But that's all I know really. The future will tell. They're still working on it. So this is something to keep an eye out. But now for the interesting part. Due to, let's call it unfortunate timing, you can't use any of this. However, a subset of these APIs, these three APIs are actually in trunk of Chromium. And that means that we're pretty soonish going to have them behind the flag in Canary. And once this lands, I will tweet it out every day and make people use it because we need your feedback. We want you to use these and see if it solves problems for you and if you are able to understand and use them.  I wrote a blog post on web updates, which I basically reiterates this talk. And my goal is to keep this blog post up to date with the most recent progress and developments in the current state of the APIs of Houdini. So go there, keep an eye out for any updates on when it actually lands. And once it has landed, I would encourage you to play around with it and give us feedback. So go there and leave something in the comment section or use Twitter. If you have a problem with the API or if you think you have a suggestion that it's worth considering, if something turns out to be good, we still have the chance to actually incorporate it into the spec that are still all evolving and are all drafts. So Ian Kilpatrick, who I mentioned earlier, is the Chrome engineer on Houdini lead on the entire project from Google's site. And he said that he's really eager to hear all of your opinions and wants to hear your feedback. So go annoy him on Twitter or go annoy me on Twitter. We really want to hear what you're doing with this entire thing. And as that, we have still a chance to change how things shape up in the future. So I hope that this kind of makes you understand what the extensible map manifesto is all about when they say they want to expose low level features to you. This really gives you the power to over the future of the web because we are exposing the building blocks so you can build everything on the web. Also it makes it much easier in general to keep up the pace at which the web has been developing in the past because you all know that there's all these plans for great new features on the web and then it takes two years for everyone to adapt. If we expose these low level APIs, we can do polyfills that actually work and you can do work as if the browser already had implemented themselves. This will basically is one more step in future proofing the web against all the ideas designers will come up with eventually. So I get it, we're kind of in this painful spot right now between we have a solution for all the polyfillability but it's not implemented yet. But I think the prospect is exciting enough to just power through the section and just try to get to the end as fast as possible. If you have any questions about this, I'll be around and I'll be happy to talk to you all. Thank you for your attention.


economic and market conditions and consider what our sales will be then in the future based on that. And then C says prediction of unit sales. Again, that's what we're doing. Kind of we need to predict the units that are gonna be sailed as part of our, you know, kind of our sales production or top line on the income statement timing account. D says the capital expenditures budget. Now that's something that we do later on. So typically we need to know what our sales are before we do the capital expenditures budget, not really know the capital expenditures budget to do the sales, right? We do the sales before the capital expense. So I would think that might be the one. And then E says advertising expenses. So advertising expenses is a little bit tricky because that's gonna be a type of expense, but notice of course the advertising is gonna be related to what we think our sales are gonna be. So when we project what sales and how many units we're gonna sell in the future, we might have to consider advertising in that projection because the advertising could affect that our sales amount. So of those I would think that D would be our final answer. Final answer, which is not usually considered in preparing a sales budget, D, the capital expenditures budget. Next question, which is not considered when preparing the cash budget? A, cash receipts from customers. B, cash payments for merchandise. D, depreciation expense. D, cash receipts from loan. E, cash payments from capital expenditures. Let's go through this again using the process of elimination, which is not considered when preparing the cash budget. Now notice, I mean just looking at all these, we can see that one word is the same and it happens to be the starting word of each of these, cash receipts, cash payments. Cash receipts, cash payments. That's what a cash budget does. We have cash receipts and cash. So many times cash is being received or paid. I mean it could say cash received dot, dot, dot, cash paid dot, dot, dot and it would probably have to be on the cash budget because cash is involved. The one that doesn't have cash, depreciation expense, does reduce the income statement but it's not a cash related item and therefore it won't be on a cash basis. It will reduce the income statement. It will reduce net income. It will not reduce the cash budget. See then final answer, which is not considered when preparing the cash budget. See depreciation expense.


The sustainable production of chemicals and fuels from waste carbon sources holds significant promise for reducing our dependence on fossil resources. Here, the authors demonstrate renewable-formate production from biomass wastes and CO2 powered by solar energy. This article was authored by Yu Yangpan, Hu Yanzhong, Bo Yanzhong, and others.


I'm Mildu from Sri Lanka, and I'm a contributor of Skolab, which is a popular organization among Google Summer of Code So I'm a contributor in Skolab, which is a popular organization among the Google Summer of Code students and Google Core Incidents and also a contributor in Label Lab, which is a very young organization like few months old for now. And at Label Lab, we have been working on several projects like small tools, which will be help the people who are basically working on dev and off-site. So this tool, which I am going to share with you today is something we started few months back actually. So before going into the tool, I'll tell the problem that we are trying to solve. So most of you have used at least one task on a tool in your life, right? Maybe grunt, maybe gulp, maybe ant, maybe make files. So I'll take grunt as an example. With grunt, you can run any kind of JavaScript-based task, but the problem is when it comes to binaries, we have problems, right? So either we have to install these binaries on our machines, like sometimes they are not very straightforward and once the project is done, maybe we are not we are not needing these tools again. So but we sometimes forget to uninstall this stuff or maybe because we did a lot of stuff to install this stuff, we sometimes find it hard to find a way to uninstall this stuff totally. So when the next problem is, when I share my code with someone else, what happens is they have to do the same thing again, right? They have to go through all the problems again and the thing is when it comes to continuous indication, like building your tools on Jenkins, I have to install all these tools, all these binaries on Jenkins instance also, which I don't like because like on my machine, I can like simply format my machine and remove stuff, but on Jenkins, it's very hard. So my approach for this is what I usually do is I use dockers for this one and docker really does a really nice job with this. So I usually have several strips to run docker containers as my binary tools. These are like very simplified striped out versions of my actual code. So you can see I'm actually using a Bava container to do Bava install and then Composer to do a Composer install and then PHP container to do RTC and key generate. This is like initializing the project and when you come to the deployment, you can see like there are a lot of environment variables we had passed and a lot of like maybe we need to pass amount, a lot of volumes there. So the things also get bit complicated with strips also. So what we thought actually can't we have a small tool which will do all this stuff and we only have to define all this stuff in a one small YAML file, YAML configuration. That is what actually Dana do. Right. So this is a simple Dana configuration file. You can see I have defined two tasks here. One is big and one is deployed and in my build task I have three steps. One is to Bava install. The next step is to Composer install and the third one is to PHP RTC and key generate. And you can see in my build task, I'm using three separate containers, three separate images, docker images. And you can see in my second task, I'm using AWS CLI to deploy my application into elastic beanstalk and I am passing environment variables very easily. And what I have to do is at the end, say Dana do build to run the build task here or say Dana do deploy to run the deployment task. And this is a bit of a complex example. So you can see here, I have removed the Composer install to separate task which I can say Dana do Compose because I need to run Compose install several times when I add a new dependency to Composer. So I removed it into a separate task. And you can see in the build step, I have said in the second step named at Compose which means every task in Compose task, every step in Compose task will be imported to that task there. So when I say Dana do build, it will first bother install and then Composer install and then the PHP RTC. And let's come to the Compose one. You can see here, I am mounting my volumes, right? So you can mount any number of volumes to your task like this with general arrays. And when it comes to deploy, you can see I am passing environment variables here. And if you look at the environment variables, you can see the last one, AWS default region is a simple one. I am simply telling the US East one. But the first two, access key, I am not hard coding my actual access key on my Dana configuration because I am going to put this stuff into my GitHub account. So I don't want to these secret keys to be in my source code, right? So what actually happens is, I am telling Dana to get this AWS key from actual host machines and modern variables. So the good thing is you can have .tnv files. You can define these AWS keys and AWS secret on your .tnv file. And Dana will pick this from .tnv. Or if it's not there, it will pick from the host environment. And here, you can see, like, I am passing parameter, I am saying Dana do deploy production. And in the deploy task, you can see actually, the last ring is the one. What happens is actually, when I say production, when I say do deploy production, elastic beanstalk, update application, dash dash application name, the next one will be production. So with this, this way, we can pass parameters to our command. So we can customize things in our command with the runtime argument passing. And here you can see, I am mounting several, several folders to my container. And the second one, you can see I'm saying WR, which means it is a read write mount. So for folders like logs, you have to have a way to get your logs into your host machine. So I'm mounting my logs as a writable folder. And the second one, I'm just mounting as a read folder. So no one can, in your container, change your SSH keys. The default is read only. So you don't have to worry about putting R, just R, if you want it to be just read only. And this cool thing is like with build, you saw we have three separate containers using write. So the thing is like, usually what we do is we pull one container and run the task and pull the second container and run the second task. But with async, what we do is we first go through all the steps and get all the images pulled from Docker Hub or whatever repository you have. And this will happen parallel. So which means that if you have 10 containers in one task, all the containers will be pulled from Docker Hub at once, which saves a lot of time. And then we will start running our steps one by one sequentially. And the good thing is we, today morning, released the version one. Actually, this is a very young project up today. Like, we have only worked on this three months and just few several developers. So if you are interested in DANA, using DANA, you can install it with snap install DANA, which will give you a working binary of DANA tool. And actually, we are planning to have APT get kind of APT get with private PPAs. But actually, we were working on that, but we couldn't get it done with the time. So hopefully, before the conference ends, we'll be having APT support also, and also Briv. Briv is also on the way. So anyone using Mac, you will be able to use DANA on your Mac machines. Yes. So this is why actually we are here. Actually, this DANA tool is a very new tool. So we need feedback from you people, because you are open source contributors, and we need a lot of people contributing to us, and we need a lot of feedback from you people. And your expertise, maybe you have better ideas for us, you have better suggestions, or maybe you know some similar tools to do the same thing, or maybe you know the better ones. So come to us, you can talk to us, you can give us feedback, how you can define how we should be going forward with our development. So feel free to go to this URL and give us some feedback. So we know like what should be the features that we should be implementing in the future. And also, DANA is just a code name. It's not an actual name. So we need your ideas on a cool name for this DANA. DANA just mean Docker runner. So come to this our GitHub issue so you can contribute, you can start contributing from there. So you can give us suggestions, and we can have discussions over there. So maybe once we are finalized with names, we can have logos, and maybe we can ship you some specs, maybe you can send stickers with DANA, whatever the name we come finalized with. So please help us with this small project, which is very young at the moment. So I hope you will be like, you will try this one and give us some feedback today. And that's it, actually. So you can go to DANA repository, it's on GitHub, DANA. So go there, and if you like, you can contribute to us. If you are expecting to participate in GSOC, we actually are under Scolab. So Scolab will be having slots for DANA also. So if you are expecting to participate in GSOC this year, maybe you can come contribute to DANA. Maybe you will get a slot there. And you can find me at Agent Milindu. So maybe in GitHub, maybe in Twitter. And we have time, right? So one small thing, this is also kind of a pet project. So install it too. Like we do, like curl, get.com says bash. So this is a small ship which installed DANA on your machine. In the same way, we are planning to have DANA on Installer 2. So you can curl Installer 2 slash DANA pipe to bash. It will install DANA on your machine, whether it's APT, whether it's brew, whether it's young, whatever. We will have a small ship uploaded there. This is a kind of a pet project of Leopard's Lab. If you have in your tools, if you want to publish your tools with us, you can come to Installer 2 in our Leopard's Lab. You can create a PR for small ships.  So just that from me. Yeah, I'm that. Questions? I think that's where we are. Wow. You have covered the subject so completely that there is nothing left to ask. Seriously not? Nope. Going once, going twice. A few times. All right. In that case, thank you very much.


Commander Navy Installations Command Vice Admiral Dixon Smith declared April Child Abuse Prevention Month. This year's campaign, Children Thrive When Supervised, Safe and Sound, will focus on active parenting practices and precautions to keep children safe. Commander Submarine Group 7 conducted talks with the Republic of Korea Navy and Guam. The theme of the talks was the strong relationship between the two countries to advance the capabilities of both submarine forces. The Navy Exchange Service Command celebrated 70 years of service to the Navy family on April 1st. The Navy Exchange Service Command provides oversight for more than 300 stores, 39 Navy lodges and 134 ship stores. You can read more about what's happening around your Navy at navy.mall.


There's a lot of a lot of meta-news that came out today, so to start us off, the company announced it is adding its broadcast channels feature to the first rolled out to Instagram and WhatsApp users to both Facebook and Facebook Messenger. Broadcast channels lets creators and public figures share one to many messages to directly engage with their followers. There could be some potential potential issues with the especially with the one to many broadcasting that could really get some information to people who may not necessarily want it. Something like Facebook Messenger, which is something that I use more often, but again, it's that, you know, it always feels like a very private chat type of thing. I wouldn't want what I would consider spam in my Messenger. I also wouldn't want to to do something broadcasty that would be considered spam. And that's always a fine line that you walk on any platform, really.