Good morning. Welcome to morning prayer. If you're here in the prayer room with us, would you stand up and join us? And you're on the front row and I was just talking to you when we went to broadcast, you stand up as well. This morning, it's good to be in the house of the Lord. It's good to be in the presence of the Lord. The Bible tells us that in His presence is the fullness of joy. We're grateful for the joy of the Lord, the nearness of His kingdom, and the nearness of His presence when we draw near to Him. This morning when I woke up and I was doing my devotions this morning, Psalm 77 just came alive in my heart. And Psalm 77 says, I cry aloud to the Lord, aloud to God, and He will hear me. In the day of my trouble, I seek the Lord. In the night, my hand is stretched out without weary. My soul refuses to be comforted. When I remember God, I moan and when I meditate, my spirit faints.  I consider the days of old, the years long ago, when I said, let me remember my song in the night. Let me meditate in my heart and let my spirit make a diligent search. Then I love this in verse 10, it says, then I said, I will appeal to this, to the years of the right hand of the most high. I love this statement because it's the psalmist talking about the goodness of God even in the most difficult seasons of our life that are like nighttime to us where it's difficult for us. We're going through difficult seasons. We're going through valleys. There's a tendency in our heart to say, God, where are you? Where are you? Will you draw on these psalmuses? In the middle of that, I remind my heart that the steadfast love of the Lord never ceases. He says, I remind my heart that even when I'm going through difficulty, God is still good. When I'm going through the dark night of the soul, God is still near. And as he says in verse number eight, he says, his promises, they never have an end. And when he says, I appeal to this, to the years of the right hand of the most high, the right hand speaks of the favor of God. He says, when I'm going through hard times, going near to the comfort of the Lord, I remind my heart of the good times. I remind my heart of the times when the right hand of God's favor has been demonstrated and has been heavy upon my life and obvious. Because it's when we remind our hearts of the times where God has brought us through that faith rises up in our hearts to get through the battle and the difficult. Promises this, fullness of the Lord in times past, isn't just a fleeting moment where God showed up.  So as we draw near to him in praise and we cry aloud to God, we can have confidence that even in the day of trouble, he hears us today. If you're going through a hard time, you've got challenges, you feel overwhelmed, you might feel alone, remind your heart of the times God has shown himself faithful and let faith rise in your heart again as you worship, as you pray. He sees you. So Father, today we do draw near to you. We draw near to you even in the seasons where sleep comes difficult. We draw near to you in the times where all that's on our plate is the bread of anxiety. But we choose not to feast there. We choose to feast on your faithfulness to remind our hearts of the years of the favor of the Lord. The times where you came through when there was no way, the moments where your goodness overwhelmed us when your presence was so obvious to us.  Here I am, I'm the wayman, I'm your father, your provider.  Great is your faithfulness, O God. Well, let's just say that right now. Even as your heart may be overwhelmed, we just say, great are your mercies. They're new every morning, Lord.  Pour out new mercies today. Remind our hearts of your faithfulness today. Rain down grace and mercy upon our hearts as we reach our hearts out to you. We join with that. Jesus, you are. Lord, that is who you are. Just begin to tell him and express to him wherever you're at today, whether you're in this room or you're online. Maybe you're at home, maybe you're in your car, maybe you're in your office and you have your buds in. Wherever you are at right now, just begin to confess to him that you want and that you need more of him. You need more from the vine. You need more from the fountain, him today. If it's just you saying I need more of you, Jesus, just say it.  My flesh and my heart may fail, but God is the strength of my heart and my portion for our desire.  You, Lord, our portion, situations in all circumstance, in all ups and all downs, in all relationships, in all jobs, in every aspect of our life, Lord, what we want. You, Lord, are whom we desire. You, Lord, are our strength. You, Lord, are our portion. If we want more of you, Lord, we need more of you. So, Lord, we ask you today to give us today our daily bread. Give us our daily bread today, Lord, become majesty in your holiness. Ask you for daily bread. Daily, our daily bread, Lord, you are our desire. You are our desire, Lord. As you said, I am the bread of life. You are the bread of life and we come to you. Ask you for daily bread. Would you fill us, Lord? Would you fill us, Lord? Would you fill us, Lord, with who you are? Would you fill us with yourself this morning, Lord? Would you fill us? This morning, as I was driving in, I was overwhelmed by the mercy of God. Don't know why, but just as I was driving down some back roads, the mercy of God was overwhelming me. So I feel led to pray for mercy this morning. In Lamentations chapter three, starting verse 22, says the steadfast love of the Lord never ceases. His mercies never come to an end. They are new every morning. Great is your faithfulness. The Lord is my portion, says my soul. Therefore I will hope in Him. The Lord is good to those who wait for Him, to the soul who seeks Him.  Praising you, Lord. Lord, we thank you for your mercy. We thank you for the mercy you have given us and lavished upon us. We are so undeserving of your mercy that you have poured it out on us, Lord God. You poured it out. And Lord, I thank you for new mercies today. New mercies every morning. Then when I wake up, new mercy is waiting for me. New mercy is waiting for us, Lord. So Lord, I pray today we would receive it. We would receive your mercy, Lord God, in all of the ways that it manifests itself in our lives, Lord. I pray that we would receive your mercy. Receive your mercy, Lord. I think of that song, Lord. Mercy is falling. It's falling, it's falling. Mercy is falling, it's falling over me. Lord, when mercy rained down on us today, washes us clean. New mercy that wipes our eyes of the tears that we have been shedding. New mercies of strength. New mercy of vitality, health and restoration. New mercy of joy and peace, Lord God. We ask you for new mercy, which sees on us, Lord, in Jesus' name. Mercies that are new every morning. May your mercy, may the revelation of your mercy cause us to repent. Lead us to daily repentance, Lord, through your daily new mercies every morning. You know, in many ways we started this morning by going upward as we should. And then we've gone inward and now I feel like the Lord is saying, now go outward, go outward. And so I wanna direct our prayer focus to very intentional intercession, interceiving for people. Interceiving for people we know and don't know. In Luke 1, verse 78, it says, because of the tender mercy of our God, whereby the sunrise shall visit us from on high to give light to those who sit in darkness and in the shadow of death, to guide our feet into the way of peace. Lord, I come to you and I ask that mercy would break upon us. And specifically, Lord, that mercy would break out onto our streets, Lord God. Onto our streets, Lord. And onto the blocks that we live, into the complexes where we reside, into the homes and the neighbors that we have, Lord God. I pray that tender mercy, that your tender mercy would rise upon the lost this morning. That it would rise upon our streets, Lord God.  They would call them to you, Lord God.  Those of death that are darkening the alleyways of our streets, Lord God. The alleyways, Lord God, that are struck with darkness, Lord God. May your tender mercy break up the shadow of death this morning, Lord God. In Kalamazoo, in Richland, in Portage, Lord. Lord God in Nazego, in Plainwell, in Augusta, Lord God. With your tender mercy break forth, Lord God and shine upon the darkness when it casts out the shadow of death, Lord God. I pray for radiant mercy in Jesus' name, radiant mercy. Your mercy would be revealed to the prodigals and to our prodigal brothers and sisters, to our prodigal sons and daughters, to our prodigal aunts and uncles, to our prodigal friends, Lord. Lord, I pray there would be a revelation of your mercy that rises like the sun today in their lives. Would you overwhelm them, Lord, with radiant mercy, with the radiant rays of mercy, Lord God, would it open their eyes to your bountiful mercy, to your wonderful mercy, to your compassionate mercy, to your loving mercy, Lord. Lord, I pray that as the sun rises, that your mercy would rise in the lives of prodigals and that they would come home, Lord. Dear mercy God, the team says, but you will speak that over our lives. We speak that over our family. We speak that over this city, Lord.  You are abounding in steadfast love. Lord, we love you and we thank you for that. You are merciful and that you are gracious in steadfast love. Faithfulness torred us and to us and bore us, Lord. Lord, would you remind us of this truth every single moment of this day, Lord? And Lord, just as we just sang, you delight in showing mercy, Lord. I pray that we would show mercy, that we would show mercy to those who need mercy, that we would truly show mercy, God. You delight in showing mercy, God.  So we take it. We take it. We receive it in Jesus' name. We love you. We thank you for this day that you have made. We go out and rejoice in Jesus' name. Amen. Thank you for joining us this morning as we draw near to God, as we pray, as we intercede, and as we worship King Jesus. Right now, we are gonna transition to a devotional time in this room. So if you're here, we wanna invite you to go down to Machette and have a cup of coffee. If you wanna have a conversation or talk to someone. But right now in the room, we're gonna have a devotional set where we're just gonna keep seeking the Lord in prayer and praise.


Here we go, semi-final number two in Wroclaw, and Smarslik off the inside gate has made a good one. Look at Woffenden here. Woffenden's gone high and wide into the dirt. Now he's going to try and put pressure on Smarslik. He really is going deep here. Smarslik tries to go wide. Woffenden will chop up the inside. What a ride from Ty Woffenden. Now Smarslik's going to come back for more. Good speedway here as Chugginhoff loses it, and Laguta comes through in the back. And now this battle up top is Smarslik and Woffenden going head-to-head, Cal. They are indeed. They really are having a go out in front. Smarslik is determined to get the better of the three-time world champion. Now Woffenden hits the front. Smarslik replace the compliment. What a race we've got going on out in front. Woffenden coming back for more. He's going to squeeze him up as they go over the start finish line. Smarslik just about hanging on. Woffenden off the inside now. He will not be denied. Now pulls away down the back straight. What a semi-final this is. Yeah, that was good going into turn three. He's gone on the inside. He's closed the door. And Woffenden hangs on under severe pressure from Bartos Smarslik. A magnificent, magnificent speedway race. Well, autumn Laguta misses out. Gate three did not work. And found himself relegated to the back for a long period of time there. What a race it was out in front. Woffenden and Smarslik.


Okay, so we're going to talk about a formal layer two standards working group which has been formed as an EEA community project managed by OASIS and we'll explain what that means. But first I am Tosh Dienish. I work at the Ethereum Foundation on ecosystem support focusing on the enterprise ecosystem. So I work with the Enterprise Ethereum Alliance, chair of the Mainnet Interest Group, co-chair of the EEA community project, project governing board. And this is Dan Shaw. I'm Dan. I've got a decade of kind of bringing together innovators and the enterprise, helped bring Node.js into the foundation, been a founder, done a lot of open source stuff, and I am the co-chair of this. And Dr. Andreas Foreind is my co-chair and with a storied background, he's the spec lead on the baseline protocol and as well as my co-chairs. Okay, so last talk really teed up why standards are useful to have a space and a clearing house for discussions and a neutral space, right? There's so much innovation that's happening that we need to come together and our perspective is in part the needs of the enterprise. And in order to sort of continue the adoption that we're seeing, Layer 2 is essential. So putting into place those standards and specification to enable Layer 2 to thrive. So why are we doing this as an EEA community project managed by Oasis and what does that mean? So Oasis is a non-profit technical standards body that was formed in 1993. They've done things like XGML and XML and a lot of sort of technical software standards sort of along the lines of IEEE or W3C, RETF. So the Ethereum community project was formed three years ago as an Oasis open project. So under the Oasis standards bodies umbrella, what happened to my slides? By EF consensus and the EEA. So Ethereum community projects is an Oasis open project meaning it's open source, open standards development and so we chose Oasis because it's pretty low bureaucracy and it's a flexible standards process unlike some of the other ones like the W3C and IETF that a lot more bureaucratic and cumbersome. Oasis is kind of more ethereum friendly in that it's lower bureaucracy and flexible. So some of the folks that are involved, of course Tashna and Andreas from the EF, we have Accenture, Boba, Matter Labs, Metis, Off Chain Labs, Optimism and Polygon and we'd love to have you so please come and join us. Tashna? So what have we been working on? There are lots of ideas for standards development topics in the Layer 2 ecosystem. The two that have gotten the most work done so far first is a canonical token list format. So the issue is that most Layer 2 projects have a list of tokens that exist on their Layer 2s and a wave that they map to in many cases a Layer 1 token or a token on another Layer 2 and these lists are not maintained in any common standard format so standardizing the way that these token lists are stored it would be beneficial for interoperability. Another project is address aliasing. So the goal here is to be able to deterministically derive addresses of a digital asset or an externally owned account on an EVM execution framework when it moves across chains. So if you know the origin chain of an asset you should be able to deterministically derive the address of it on another chain. We have many ideas for potential future topics to work on. Layer 2 transaction fee structures, Layer 2 transaction interface standards. One idea that's gotten some discussion is about cross chain bridging of digital assets with residuals. So the issue there is that if you have a token like an NFT representing a bond or something that gets royalties over time something that gets payments over time and you move that to another chain it breaks the connection between the payments and the asset. So that's not a completely solved problem there's been some discussion about that we would love to have more ideas on that. And if you have other ideas for topics we would love to hear them we would love to have your involvement please get in touch. So thanks a lot we meet bi-weekly you can hit us up on our emails the Github is github.com. EA slash Oasis L2 and a big thank you and shout out to L2 Beat at DevConnect we got in this initiative off the ground but thanks to L2 Beat's event at DevConnect we were really able to get a lot of the initiatives that you just saw set up and really move forward. So we'd love to have you join us thanks. Thank you so much guys you did it the two of you were the fastest ones.


What's up everybody, Jason here for JaspiersCaseBrace.com. We just sold out another March Madness promo break, guys. 2021 Panini Limited Football 7 box half case break packaging is number two. Remember, all cards shipped. And here we go. So if you have a character sign at the end of your name, that means you won a spot in that filler. So congrats, guys. And again, all these boxes are for the second half. They're all labeled number two. So here we go, guys. Was my camera messing up right now? So I'll make sure I hold on. No, okay, it's okay. We have Tommy Trembl and Bill Bates, Limited Ink, Kalbus, 28. Number to 10, Miles Gaskin, Hal Pitts Relic, out of 75. And Miles Gaskin's out of 10 as well. Here we go, next one, TB12. Kenneth Gainwell from Iowa Eagles to 299. There's box one. Next one. I think you got a book in here. Yup, we got a book. We got a book. AJ Brown to 149 and Najee Harris Relic. It's number 55 out of 75. Cornell Poelle, three color patch and autograph to 75. Kansas City going to Cayenne. All right, we have a book, guys, good luck. Second Barclay. Wow, Devonta Smith, nine out of 49. And look at that, beautiful. One, two, three, four color patch and autograph. Fly goes fly, going to Chris. Next one. So far, I think the only thing that the Dolphins have got so far was a Miles Gaskin out of 10. That was just the second box, so. We still have five boxes left. Out of 15, Zeke. Whoa, Kyle Trask, 1099. TB going to Carl. Josh Palmer, little RPA tonight again. Tried to do that one, going to Fred. That's a Ruggie, Terris Marshall Jr. and Elijah, or Eli Mitchell, sorry. I guess it's still Elijah, but 63 out of 75. Lamar Jackson, we got Kyle. Little full back there for the 49ers, 1099. So I went and cooked to 149 and a little Dramar Chase, nice three color patch. 43 out of 50. Semi Fajoco to 199. Cowboys, EA. Stafford to 149 and Schwartz for the Browns. Ropan Smith, Kenneth Murray, two out of 99. Chages, fretted with that one. Trevor Lawrence, and it's Jersey number 16 out of 75. There you go, little eBay one of one. Very nice hit there for the Jacksonville Jaguars and Chris. Two more boxes. That contenders filler guys is now down to 11 left. If anybody is interested in that, 11 left. Matt Ryan to 49 and Des Fitzpatrick for the Tennessee Titans. Steven with that one. Zach Wilson, look at that. Unlimited potential, 22 out of 35. Nice three color patch. For the Jets Jets Jets, which is going to Chris as well. And last one here is redemption, which we got. Ruggy patch autograph variations, part number 179, Ramon Dre Stevenson for the Pats. Patriots going to Mike. All right, down to the last box guys. Bucks, Mojo, Rogers, Carlos Boogie Bashham to 10. Bills with that one, that's Chris. Rashad Bateman, RP-8 is 75. Bills are sorry, Raven's going to Jeffrey. Last one here, to 149. Trey Sermon to 99, Derek Carlos to 149. All right, and there you go guys. That was the break. Not a bad break at all. So we got the nice Zach Wilson. Trevor Lawrence was a RP-8, it's Jersey number 16 out of 75. We got the Devante Smith book. Not bad, not bad. Now guys, let's switch scenes and see who wins that spot on the March Madness promo. So let's copy and paste the customer names that bought in, either you won in or bought in, paste it, roll it, four to one, five times. One, two, three, four, and five. Do you know where there might be another case of leaf vibrance? I don't know, I don't know. Oh, it would all be in there, it should be in there. It's got a look on top of the lockers. Four to one, five times. Just missing, I was marred at two, unfortunately down to 32. Well, congrats to Brian who won that team from a pack filler, there you go. So Brian Wofford, congratulations man, you are in. Put you guys right there. This was limited number two. Well, four more filler breaks left guys, but you have to do at least two. If you guys want to sell out the promo, the next one that's pretty close guys, it looks like it's down to 10 left, is prominence filler that sells out contenders, pick a sheet number nine. Appreciate it guys, jaspyscasebreaks.com.


Hello. Welcome to Cooper Hewitt's National Design Week, celebrating the 20th anniversary of the National Design Awards. My name is Vasu Genopoulos, Manager of Cooper Hewitt's National Design Awards Program, as well as our transformation programs here. I have the great privilege of working with our award winners all year, and today I am delighted to have this talk with Kate Orff of SCAPE, our winner of the National Design Award for Landscape Architecture. The talk will focus on the designer as a responsible citizen, so let's get started. As a contemporary landscape architect, you've taken on a role as an environmental activist and socially engaged designer. Was there a specific event or series of events when you realized, as a designer, you had a platform to not only discuss issues of the environment and social justice, but also the power to enact change? Well, first of all, I'm so excited for SCAPE to win this award. Our firm is growing and really dynamic, so it comes at a great time for us, so I'm just so thrilled and happy to be here. I would not like to go back and rewrite history and say that there was some lightning bolt that went off that triggered this change. Just to sort of unpack my own history a little bit, or the history of the office, I came to Landscape Architecture. I had a fairly typical suburban type of upbringing. I don't think unless you're at least at the time in the 70s or the 80s, unless you were really a member of the moneyed class that you even knew that Landscape Architecture existed really as a field. I felt like I discovered Landscape Architecture by feeling my way through the dark and landing at University of Virginia as an undergrad, where I was very politically engaged and was in a program called political and social thought. I was really interested in history and activism and weaving these strains together. At the same time, I was taking these courses in the architecture school and doing large-scale sculpture and also in the environmental sciences. It was a very gradual, I will not say the lightning bolt, but I would say there was a gradual churning that began to connect all the dots between those three big things. That led me to realizing that the kinds of things that I was studying in American history, namely we had many sessions on Central Park as this signature space, or democratic space, one of the most renowned spaces of democracy in the world, and then kind of linking that back over to, okay, well, there was a designer and a design team and an agency behind the space. It didn't appear as if by magic. It was created by the hand of people. So I kind of pulled those things together like, okay, I can do that thing. And then that all sort of got wrapped together within this change mindset or sort of manifesto mindset that sort of carried us through. So that gradual change, I would say, helped, you know, I worked in firms and was at Harvard for a while. And then when I landed in New York after I was helped to open the New York office of OMA, the Rem Kool House firm, and then I was kind of thinking like, all right, well, I'm going to start a research agenda. And I started to not look at built, you know, landscapes by landscape architects, but I started to look at the broader landscape around New York City and the wetlands and the marshlands and the New Jersey highlands and the whole ecosystem. That was really the New York ecosystem, and that was way back in 2002. And then really began to focus on Jamaica Bay as a water body and as a place and as a system. And then through this kind of process realized that, okay, as a landscape architect, I need in order to make a change in this, to save this landscape because it's been threatened by excess nitrogen. Anyone been to Jamaica Bay or you know Jamaica Bay? Okay, good. Sometimes I describe it as like, you know, that place that you fly over into JFK airport, but that's really not the best way. But that sort of orients you to, it's this amazing marshland on the edge of town. And so I just realized by writing about it, by mapping out it to the Six Senses Mapping Project, and I just realized that as a way to influence this space, it's a completely different skill set than the traditional landscape architecture. It's a position of politics. It's a position of influencing. It's a position of activism. It's a position of like listening to the activists who are trying to, you know, help preserve, you know, change water quality, etc. So I would just say that for me was this very, very early lesson in a huge mindset shift, which is not in order to be an effective practitioner. I need to do X, Y, and Z, which is typical landscape. I need to have completely different skill set, which are skill sets of convening, of listening, of kind of being in an agency mix and so on. And then that set into motion this oyster-texture project that was here at one of your sister institutions, Museum of Modern Art. So I really got a big megaphone because I was able to, you know, speak and help define ideas set agendas that I think helped the trajectory of the firm and put us on the trajectory we're on today. Definitely. And with so many of your projects, you worked to engage the local community, the 103rd Street Community Garden here was built almost entirely by volunteers. Can you talk a little bit about your process of engaging the local community and navigating any challenges you may encounter? Yeah. I mean, I see designing community engagement processes as one of the kind of absolutely key skill sets for designers in the next decades. Absolutely key. Because we are living in this robust democracy. At the same time, we need to make some very significant changes relative to decarbonizing our economy, changing our physical built landscape so that it is less consumptive of petrochemicals and, you know, replenish, vanishing wetlands, you know, restore biodiversity or at least habitat where we can. So I mean, I would say engaging the community is a key part of that because we also need to do all of these things while remaining wholly and completely focused on, you know, equity and on these kind of core issues of making sure that people whose voices haven't been heard in the past are heard now. So that being said, this kind of concept of, so in the book toward an urban ecology, there's an entire chapter called Engaged. And so we really try to put that listening process at the core of our work. And I think that Scape's work is deeply informed by listening and engagement. And that has helped carry us through to this point. There are many, many different scales of engagement and kinds of engagement. For example, 103rd Street was as simple as listening to everybody on the block, hearing what people needed and kind of sketching a framework which enabled everybody else to just organize themselves and around the building of that thing. At the same time, Scape is doing a master plan or a large scale plan for the Chattahoochee River called the Riverlands and outside of Atlanta, Georgia.  Literally if you look at our engagement plan, it kind of boggles the mind in terms of the amount and the creativity that's needed to engage that. So although the scales differ, I would say that we approach the community engagement process with the same positive optimism and, you know, enthusiasm and genuine interest that we engage every other aspect of the firm's work, whether it's, you know, the detail that's being installed on the ground or broad scale mapping projects. So that engagement process is something that is totally worthy in and of itself of design thinking and care, I would say. Could you talk a little bit about your Living Breakwaters project and engagement with the local community and others? Well, so that's the Living Breakwaters project is a project that came out of the Superstorm Sandy after math, you know, this tragedy slash, you know, opportunity to rebuild and rethink our landscape after Superstorm Sandy hit. And so we developed the Living Breakwaters project and, you know, sort of pulling forward threads from Oyster Texture and from that Jamaica Bay research. And so it is a roughly one and a half mile long string of breakwaters that are seated with oysters through the Billion Oyster Project that reduce wave, reduce erosion, help to protect the south shore of Staten Island and rebuild this kind of structural habitat for fin fish and, of course, shellfish. So what I think is unique and innovative about Living Breakwaters are one of the things. I mean, first of all, I feel like we're trying to design relationships between things rather than just think about this physical infrastructure, social infrastructure ecosystems over here. It's a project that's trying to think of all of these aspects at the same time. But another, because I kind of geek out because Scape is also very applied in the real world. So we are at meetings with regulators. We are talking to the Army Corps. We are talking to the state. You know, there's an incredible amount of detail that needs to go into these nuanced conversations. So it's just an exciting project because not just the physical part of that project was funded. We were able to push aspects of the funding toward the ecological restoration and towards the social life on shore. And one of the kind of key principles that we take on in terms of, if you're talking about social outreach, is really to work on and expand existing networks. In this case it was the New York City Public School System and working with the Billion Oyster Project, they have developed a curriculum which is a New York State certified science curriculum. So literally students will be able to kind of participate, seed, monitor this physical infrastructure over time. So that kind of coalition of fishermen and kayakers and school teachers really made this project so much richer and I think so exciting. And I think a big lesson learned from Living Breakwaters is not just that there's the project that exists over here in this space and you're just kind of looking for community members to kind of okay it or approve it. It's that there's this great reciprocity between the power of landscape architecture, the power of the physical project to actually engender coalitions and vice versa. So there's a real sort of back and forth that we I think deeply learned through the development of that project that social life can be sort of fostered and gathered by the envisioning of new and exciting transformative projects and vice versa that projects can sort of be benefit from existing coalitions and so on. So they work together. That's great. It's truly hands-on learning for students and creating the future. So based on your own experiences in the field and with teaching, how should young designers be thinking of approaching a design problem today to address the climate change crisis? Well, so there's a huge question and so I teach at the director of the Columbia Urban Design Program and have really changed the entire curriculum of the Urban Design Program in our very brief three semesters to give students tools to communicate, collaborate, work together, tell stories, map and essentially describe change processes relative to dealing with climate adaptation and mitigation. So in the case of, I'll just give you one example. So in the past five years I've been teaching the studio around just water and global cities. Literally I think you could kind of trace the climate crisis through the lens of water. It hits so many topics. It's so personal. There are trans-border conflicts. I mean, if you look at any water body around the world, you can immediately trace trans-border international conflicts that sort of move around that issue. So I've just gone with a singular focus and brought students around the world to cities as diverse as Rio de Janeiro or in Brazil, to Quenta, Vietnam, to Varanasi, India, to Madurai, India, just all around the world and just kind of have them work together with the faculty to just look very deeply at the sort of local ecosystems, to look very deeply at water issues and propose essentially sort of urban design projects and just answering a pre-defined question that are kind of unpacking those future challenges relative to water, social life, and politics. And as much as I don't feel like any designer would ever say, I've figured out how to solve the climate crisis because it's so much about changing a mindset. It's so much about seeing the world differently and I feel like as much as possible these studios have at least done that sort of paradigm shift or taught in a new way that can at least prepare students to confront, I can't even imagine, the kinds of challenges that we will see in terms of just migration, water quality, collapse of ecosystems that the sort of planners and designers of the future will need to grapple with if we cannot do that now or grapple with it effectively now. Definitely, and I think what you're doing with the Living Breakwaters Project and engaging young students at an early age to start thinking about some of these issues certainly helps pave the way. So along with that, a question from one of our Instagram followers, Libra Ceramics, how does an emerging or beginner artist catch your attention? Ooh, good question. Well, I'll give you an example of someone in the escape office who caught our attention. Her name is Sophie. So she, for example, was a student at Carnegie Mellon University and she sort of, as part of her thesis project, so an earlier book is called Petrochemical America. I hope that you all are familiar with that book. It was with Richard Misrack, the photographer, and it was sort of tracing the impacts of petrochemical extraction on the American landscape at multiple scales. But so Sophie saw that book while a student at Carnegie Mellon and in her region around Pittsburgh there was a new shell cracker, ethylene plant that was going online. Just that is about to manufacture millions of new tons of plastic. And so she kind of self-organized her own exhibit using some of the work from Petrochemical. She went out and kind of protested. She participated in workshops and then she kind of got in contact with our office through that project and through this kind of process sort of like, well, that is somebody who catches my eye because she is sort of a sort of, you know, has a purpose, a sense of purpose. And I think that is what the escape office attracts is, you know, we may not, you know, we think of course we have beautiful work in our portfolio, but I would say equally important to the ability to draw and think is to have that sense of purpose and drive. And so someone like Sophie will definitely kind of be someone who rises to the top in terms of the pile of resumes that's always getting bigger. Could you talk a little more about the makeup of the escape team in terms of backgrounds? Yeah, so we're, we have diverse backgrounds. In fact, we have six principles now and we've organized ourselves. And, you know, I think this is one of these funny things that you don't learn this in design school, which is like, oh, am I a business person now? But, you know, we have very different kind of roles where there's a design role, there's a technical roles, and then there's administrative and managerial roles. So I think that's one of the things that the hard lessons learned in the last, say, 10 years is that design in order to be effective and impactful and in order to create the infrastructure within the office to, you know, be able to deliver on these very large and significant projects, it is much a look in the mirror kind of a process in terms of designing the office in a way where people's strengths are magnified and, you know, that there's this kind of collaborative process. So some offices are structured where there's like 10 different principles and 10 different kind of streams of work, but we're all sort of working on facets of the business. So I think that's fun and it requires communication and it requires collaboration, but it means that we can kind of get to a scale where we can be impactful and deliver these really significant projects. So everything is designed. Well, I think that brings us to the end of our 20-minute conversation. Thank you so much, Kate, for joining us today, and we're again so honored to have Scape as our winner of Landscape Architecture this year. Thank you all for coming, and I hope you enjoy the rest of the evening. Thank you.


So, my name is Alex, I'm with Red Hat for the last 18 years or something. I work in the desktop group, so I normally work on GNOME stuff, but the last three years or something I've been working on is a project called Flatpak. And I'm going to talk today about the core implementation of Flatpak and how it works and why it works that way. But first, maybe I need a short description of what Flatpak is. How many people use Flatpak? And how many people heard about it for? Not everyone, but most, okay. So it's apps for the Linux desktops. And obviously we had applications for the Linux desktop forever. So apps mean something else, it's like Apple phone apps style or Android apps. You can expect to easily install them and fearlessly do so without having them messing up the system in some way or affecting other apps or your system updating, affecting the apps. Like you want the apps to be an isolated thing from the core operating system. So there's several parts to this. There is a distribution of your app. We have a repository format that you can add this remote and you can install stuff from it. And we have A, this is Flathub, which is one source of Flatpaks, there can be many. You can configure many yourself, like a jump repository or a Debian repository, there can be many and they're independent. This is the website for Flathub, but the data is all there, so you can use it from the command line, you can use it from GNOME software, KDE Discover, or just click on install on this website. And they all use the same data, the same screenshot descriptions and whatnot. And then, and this is kind of the core, you can run the same app, the same build on any distro. These are the distros that we have on descriptions of how to install Flatpak on, but fundamentally it should run on anything that has, like, not even recent kernels, but, like, pretty ancient kernels still can run this thing. And not only can you run on any distro, you can also, like, distro hop while having the same apps installed, you can upgrade your distro and it will not affect the thing. And you can run a newer version on an older distro and all that kind of stuff, right? So the common example is to use a really stable, REL or Debian stable base, but still want to run the latest GIMP or some specific app. You can also build it anywhere, because building itself, I mean, there are many ways to build stuff, but the default way we build Flatpaks builds in a sandbox, too, so you can have two people sharing a development environment, even though they're on completely different systems, and they will produce essentially the same binaries. There might be some timestamps and whatnot, but the rest is shared, right? And it also runs in a sandbox. We're talking about desktop apps here, so sandboxing is complicated. There are very many integration points between the desktop app and the desktop, or even other apps. So sandbox is available, and the default sandbox is very secure, but you can't really do a lot of stuff in it, so you can also opt out and, like, the user gets asked, you want to grant these permissions, and you can, like, give your app file system access and whatnot. But we're also working on the other side with things like Wayland, PipeWire, Portals, to make it possible to have sandboxed apps that are actually useful, but that's partially in the future, but right now you can use it for any app, but it's just not as secure. So you might ask yourself how is this different from containers, because all of these things I've talked about before, you can also do with Docker, right? A Docker image can run on anywhere, you can build it and build out or Docker build or something and ship it somewhere else. So there are two main differences. First of all, the target user of Flatpak is fundamentally non-privileged. It might be, like, a data entry clerk who has an IT, like, IT gives him a laptop, he doesn't have sysamming on it or anything, right? He is not root, he doesn't have the root password, so we can't have any tools like Docker that requires you to be root or that implicitly grants you root rights, like, if you have access to the Docker socket, that is giving you root, and we can't have that. And as an add-on to that, none of the techniques we use in Flatpak itself can fundamentally rely on root-only features. That means certain things just cannot be used. We can't do device mapper, we can't use butterfist snapshots, or we can't do firewall set up for port forwarding, because all these are fundamentally, like, sysadmin level operations that are not allowed for any kind of unprovided use. The second thing is that the goal is to run desktop apps. So we automatically integrate with the desktop in all the ways that matter. Like you install the app, it's a single click, and when it's installed, like, there's a nice graphical progress thing, and when it's installed, it appears in your desktop, it has an icon, it has a description. It can install MIME type files or DBA service files. It has, like, access to X or Wayland, pulse audio for sound, or it can talk to DBAs in a safe way, it has the right GPU drivers in there. If you use free desktop specs to find your stuff, you can easily find your stuff. We have interactive permissions, like the portals I talked about, it's basically a way to have low permissions, but then at run time, safely grant extra permissions, like access to a particular file or web camera or something. So to build Flatpak, there's two major parts beneath it that kind of has to be explained in detail before we can explain Flatpak. And actually, once we have these, like a working knowledge of Austria and bubblewrap, the rest of Flatpak is mostly trivial, just using these in the right way. And Austria is like the short quote, it's like it for operating systems. And by saying it's like it, I mean that all the things you'd expect from Git are there. There's a remote repository, there's a local repository, you configure the remote, you pull from the remote, you pull refs from the remote, you can commit the ref, you can check out a ref, a ref points to a commit object, which is a checksum, and like it contents address the rest of the files in the commit, it's essentially a reimplementation of Git. But where Git is made for source code, and if you ever try to commit like a large binary, it just isn't meant to handle that, whereas Austria is all about having a on-disk file format that is useful for trees of binaries. It was originally made for committing your entire operating system into Git, basically. So we are going to look at the repository layout, which is the way that Austria differs from Git. So we have here, kind of hard to see, but yeah, an app, it's just a directory with some files. But in the end, that's what all apps are, right? It's just directory with files plus some metadata. So there's a bunch of normal files here, and I color them so you can kind of follow where they appear when we commit them.  And you can look at it, and it looks like it's a commit. That's basically what Git would give you, right? It generates this repository here that if you ever looked into a .git directory, it's very, very similar, right? So there's a refs directory that contains the refs, and ref is like a more generic thing than branches, but think of it as branch. And they have a bunch of objects, and if you look at this ref file for master, it's just a, actually, I cut down all this, they're actually very much longer, but I cut them down all to ten characters so you can read them.  And that's just also an ID, which is to check some of this. So the red thing is the root directory, so it has a pointer to this, which is also a small metadata file that basically says, this is a directory, and it has a file named bin with this commit ID, or a directory, and a file called readme with this commit. And then you can recursively look into everything, and if you eventually reach a regular .file, which is just a normal file, if you look at that file inside the repository, it's just represented as itself with a different name, and the name is a checksum of the content of the file plus some subset of the metadata, like the user that owns it, the permissions and extended attributes, and a couple of things that are part of the identity of the file, because if you store two files in the same repository that have the same content but different permissions or whatever, they will be two objects in the object store. And then we can modify this. So we change the readme file here, and we commit again, so we get a new commit. I don't think you can see it, but it's like a brighter version of the color when it's changed. So what happens then is that we add, we changed the master here to point to the new root commit object, which now points to the previous one, plus the new root directory, and the new version of this file here. All the other ones are left alone because they weren't modified, right? So we modified the app and the readme, and you can find both the objects at both versions in there. So an interesting thing here is that committing a new three is a purely additive operation, plus an atomic switch of this file at the end, basically. So operations are very safe in that they're not destructive or changing anything. And if you were to check this out, this is just the same repository. If you check this out with a check, that is to a directory new. You get a directory new, which looks like the original thing, except if you look really, really careful, this file has a hard link count of two, which they shouldn't have normally. And if you look in detail, you see that actually they're the same inode as the repository objects, because checkouts are fundamentally hard link farms back into the repository. So they're very efficient to create. And if you have multiple checkouts of the same or slightly different things, they all co-share inodes, so it's very efficient in that sense. And the way you're meant to use it is that you mount the thing read-only. Like when Ostr uses it for its in-Ostr as the whole operating system, you basically commit slash user into Ostr, and then you mount it to read-only. So it's safe for these hard links to point back into the repository, because you're never able to modify it. And there's also a version that isn't meant for local store. If you put the thing on a web server, it's a similar format. The main difference is that they are. The files are compressed, and the metadata of the file are in the file. Plus there's a file called summary that has all the refs in a single file because you can't naturally enumerate all the refs on a web server, right? So you can read a single file, and it will tell you the name of all the refs and their current commit, so then you can recursively find anything you want. And if you have a local version of a ref, and the new one, or the upstream one, is different, you can very efficiently calculate which objects you need to download to make your local copy the latest one. There's also GPG signatures in this commit meta file. This is basically, you can add metadata to it, including a commit, or a signature of the commit, and you can sign the summary, so we can protect against men in the middle kind of stuff, or downgrades, or something. It's also, it's not listed here, but there's also an optional static deltas directory where we store basically binary diffs between specific versions. So if you're going from maybe the next to last to the current version, there might be a specific delta file you can download, and that will give you even better download performance, right? If a file changed, but it's just one byte that changed, you can just get a really small delta. If you don't have the delta for the particular download you want it to do, you can fall back to the regular OSTRI pull. So, the reasons we use this is the automatic deduplication is very nice, because fundamentally, containerization and sandboxing and everything is about bundling. So we want to try to minimize the cost of bundling. So anything that accidentally gets shared, because it's the same file, just automatically gets shared. So if two completely different builds happens to have the same icon, so what not, they will automatically be shared. And if you have reproducible builds, it's likely that most things will be shared. And they're also shared both on disk and in the page cache, because page cache is per inode, and the inode is the same, because they're all hard links. We also get very efficient updates due to the deltas and the quick way to get what's changed in a version. And updates are atomic. The way you use OSTRI is that you check out... In Git, a check out is almost always tied to a particular Git local Git repository, but in OSTRI you normally have one shared repository and multiple checkouts on the side. So it's very safe to do an update of the repository and then a new checkout that doesn't affect a running instance of a previous checkout. And they can atomically switch over. And also, this needs nothing in from the kernel. It works on Unix version 7 or wherever hard links were introduced. Just isn't anything complicated or privileged here. So the other tool is Mubblewrap, and it's an unprivileged chute on steroids.  They're probably stored on a device somewhere, or maybe they're tempfs. And in the kernel, there's a mount table that is basically a sequence of, take this here and put it here, that builds up the virtual file system. And nothing super exciting about this. One might notice that, I don't know if you can see it here, but there's C is mounted twice here, so this file foo is available here and over here somewhere. In the kernel, it's just another mount, but most people know them as bind mounts because the way you create it is if you go to the first mount and then you take the existing thing here and bind-mount it here, but in the kernel, it's just a list of mounts. And at some point, someone added this root, it's just called because maybe it would be cool to virtualize what apps see. So instead of the root directory being a global thing, it became a per-process thing. So basically, a global variable was made like a member of the struct process thing. And that this way, apps can see different things in terms of the file system. And also, a lot later, namespaces were added, which basically makes the entire mountable to be a thing that can be different in each process. So mounts can be completely different in namespaces. And in fact, some of these physical things might be visible in some, but completely invisible and not even mounted in other namespaces. So root is really cool. And so most people like it and use it. But for me, it's not very useful because you have to be root to run it. And why is that? So Unix, the kernel, is a very simple thing. And to create a user-space operating system on top of it, it relies on certain things like Set UID to increase privileges. A simple example is sudo. sudo is an app that is Set UID. So anyone, whoever runs it, turns into root, which is not good. So the first thing sudo does is look at etsy-sudoers and see, are you allowed to do this? But this relies on the fact that etsy-sudoers is actually the admin's file. If you're in control of the file system, you can point it to something else that says, yes, I am allowed to become root. And suddenly, you broke the system. So this implicit trust in things like privilege-raising operations, there are many of them. Set UID, Set Caps, or other, I guess I haven't thought that many, but there are a couple of them. So with the introduction of Privileged Username Spaces, and I think actually the username spaces themselves aren't vastly interesting, but this process control switch was added that you have to enable to make unprivileged username spaces work. And it basically means this process and all its children can ever, ever raise privileges using all these security-like operations. And that means a root operation is safe because just like the sudo or whatever inside your sandbox can never actually become root. There's also like mappings of UIDs and whatnot, which is kind of nice, but not necessarily important for me at least. So I wrote this tool called Babarap. It was initially part of Flatpak, but it was an interest from many people made us extract it to a separate thing. But it's basically a shell wrapper that just uses all these kernel features because while they are just kernel syscalls, you have to be very careful when you set them up and it's really messy and hard. So it's just a simple tool where you can create your own namespace. And it's slightly different in how it works from this root. In this root you kind of from the outside build up the entire thing and then you jump into it. Whereas Babarap starts with a completely empty system with only root being a tempFS. And then you can like from the inside but via commands from the outside, build the thing up, right? So this example starts with nothing and then we create the directory in temp and then we make a read-only bind of the host user on the user in the sandbox and then a sim link from lib64 to user lib64 and then we run user bin ls in the sandbox. And this is all it sees. Obviously this only works if you have a lib64 style host, but on a Fedora that will run in a super minimal sandbox that only has read-only access to user and nothing else. And other than the primary way of setting up the file system, we have a bunch of other features that enable basically all the things you can do unprivileged on the current Linux kernels. So you can unshare more namespaces. If you unshare the net one, you only end up with a loopback and nothing else. And you can unshare all of these and you can mount certain kinds of file system. Well, dev isn't actually a file system, but if you say mount dev here, it will create one that has bind mounts of the host slash dev nodes because we can't create device nodes as a user, but we can link to pre-existing ones. And if you unshare the pit file system, we have a handler for pit one so you can read children and not get zombies and whatnot. And secomp, that's a way to pass a binary of secomp rules into a bubble wrap that will get applied after everything is set up. We apply the secomp rules at the end so you can, like, the secomp rules doesn't have to include everything to set up the environment. There's also a set UID version of bubble wrap. The regular one works fine on Fedora and Ubuntu, but a bunch of other distros disable unprivileged username space or put them behind some kind of kernel flag or boot flag or something. And the reason is in an unprivileged username space, you are root in some sense. You root against that username space, but there is a, I don't think anyone thinks that the general things that username spaces expose are unsafe. It's just that there might be other part of the kernels. There's this enormous syscall API and not all of it is correctly namespaced. So something might process this UID zero as meaning it has access to something where it actually is just UID zero in this namespace. So we have a, well, it's the same basically. If you take the bubble wrap binary and make it set UID, it will switch to using a set UID model of operation where it's normally mount stuff. It does all the same thing. So it should theoretically not be any less unsafe than the unprivileged one. And in fact, one could argue that it's more safe because it doesn't expose the full, it's just called ABI to this fake use, fake root mode. So yeah, that's useful thing to make flatback work on all distros. So I think we have now everything we need to take a very, very high level view of how flatback work. Every installation has an Austria repository, a local one. And there are actually two main installations. There's a per user one in Varlib flatpack, and there's a per user one in each home directory. Every app and something called runtimes are committed to this Austria repository in branches that looks like this or these are refs. So this is an app ref and this is a runtime ref. And like this is obviously the name of the app or the runtime and the architecture and there's like a version thing. So those are in the repository and we pull them from a remote and then we check them out next to the repository. This is called deploying them in Austria. And then we run them with bubble wrap where we put the files from the app, from the app in slash app and the runtime in slash user. And these are all read-only mounts so we can't affect them. And obviously there's a bunch of more here to set up like we have a temp and we have a proc and we have a dev and various other standard stuff. You can also request access to like regular file system paths like if you want home directory, we'll add like a bind mount of the home directory to the end. But this is the basics of how we run an app. And if you look at an app that's deployed, Invalid Flatpak does a directory called repo which has the repository, but they're also like a name which is the entire ref. And in that we have the actual thing checked out under its own commit ID and a simulink called active that points to it. And if you look in that active directory, this is the checkout, it has some metadata, the name of the thing, what binary to run, environment variables to set and files is like the regular file, it's like a prefix. Basically someone built into a prefix and made it into the app. So it's got bin, lib share and whatever else you might have there. There's a subject you call export that contains special kinds of files that we want exported to the file system or to the host file system. It's currently allows icons, desktop files, mime type, debus, service files and I think an own shell search providers. And also after checking out Flatpak itself, creates this deploy file and this ref file which are not actually part of the upstream thing. The deploy file just says this checkout came from this remote. And the ref file is actually just a file but whenever we mount this read only, we also have the pit one of the sandbox take a non-exclusive ref, non-exclusive lock on this file. So at any point we can look at a certain checkout and see if it's locked. And if so, something is using it and we have to keep it around. So the typical Flatpak install command, you just give the name. So we have to figure out the entire ref but we know it's probably for the current architecture and then you specify a remote here and the remote has the default branch name so we can figure out what you actually want to install. So we pull the entire ref to the lock of repository. We figure out what commit we actually ended up with and we check this out and create these files and then we sync everything up until this point we only created new files, nothing affected anything running in the system or that you could run. But then we do an atomic set of this active sim link and at this point, Flatpak run will find the new version. So we will say later in an update there might be multiple commit here but there's only one that is the active one switching between them is an atomic operation and then at the end, we also look at all these exports and copy them into shared directory. Well, it's not a pure copy. We look at the files and rewrite some stuff and make sure it's safe and whatnot but basically we copy them and an update is the same except when we're done all the old commits are moved to this global directory called dot removed and then for everything in that directory we take an exclusive lock on this ref thing and if we can't do that, then it's still in use and we leave it be there. Moving the directory somewhere else doesn't affect the running instances. So if your Firefox is running it will not notice anything changing until the last instance of it exits then the lock gets unlocked and we can take an exclusive lock on it then it's fine to delete because at that point nothing could ever refer to this old thing because it's in this sub directory and the sim links are changed and whatnot. Obviously if something was running and we updated it we will not delete this thing so it would be left around possibly forever but generally we run update again and it will traverse all the removed files and eventually it would become garbage collected. On top of that we have a top-of-the-line sandbox or something.  User namespaces is optional because it's not always available. In the set UID version of Flaphack we might not be able to support a username space in case it was completely disabled in the kernel but if it is we enable it. Obviously we use the file system namespace but we have to, that's how we make sure we run something else. We also use the pin namespace because if you can see proc basically all the other apps that are running on your system are at least all of your apps are visible in proc and you can kind of use those proc fd and whatnot to look into what those other apps are doing. So we isolate that by using a pin namespace but it also kind of neatly gives us a pit one that controls the lifetime of the entire container. So we know we can kill that to kill all of it but we also know that when it exits the last process in the sandbox died. Optionally we do network and IPC namespaces. We do seccomp. It's very hard to generically do seccomp for everything. I mean, we're supposed to run arbitrary desktop apps, right? What can we forbid? Well, there's some really weird stuff like who uses X25 or whatever. There's weird socket ties we can disable some really weird syscall. The key ring is not, the kernel key ring is not a namespace aware. I think it's somewhat, but yeah, we would disable that. These things, ptrace, perf, multiarch are useful for development. So we have modes where you can request them and if we're building stuff, we enable them by default but in a regular app, you would really not need ptrace. So we disable it by default. We also disable recursive namespaces. If you actually have real unprivileged news and namespaces, those can stack but we wanna avoid having the app control the way, like the layout of the file system for similar reasons to the sudo incident before we wanna be able to trust that we set up the sandbox in a specific way and it keeps being that way. Obviously every app has its own temp because it's just part of the root tempfs. And we can't generally add cgroups so we don't use cgroups, except if you have systemd user running, we create a scope for the thing on the user systemd instance. This doesn't currently give us a lot though. Like we can't apply any policy on the group because that's not doable as a user but hopefully eventually cgroupv2 will save us all and whatnot and then we can do cgroup limitations and whatnot as a user. We also have something called the deepus proxy. So every app has access to the bus, the session bus that is and have certain privileges on it but everything goes via this proxy that filters calls so you can basically only be called into plus do some very, very open system wide calls like talk to the bus itself and own your own name and a couple of other things. In case you're not requesting any specific permissions, this directory is created for you and various environment variables points to it and it will be the only writable persistent directory where you can store data. Obviously, if you grant your app home direct access, you can write wherever you want but the idea is that in the long run, when everything is sandboxed, we will have a directory where every app has its configure files, its cached files, its whatever. So when you uninstall it, you can also easily take away all the per user data that the app installed. Here's a couple of links to various projects and ways to reach me and the project and if anyone has any questions, yeah. Do we have a microphone? Thanks. I have my home folder still on a rotational drive for me OS3 is really slow to the point that the flatback update of the GNOME platform can take up to seven minutes to complete. It's R8.1, it's encrypted, ButterFS or copy and write. It's kind of a worst case scenario but are there any plans to add another backend? For instance, we see a sync in place of OS3 or are there any performance improvements that can be made? See, I think it's more about having the download be efficient. I don't know if it actually stores in a deep, duplicated way that we can use directly. It does? Well, fundamentally though, should that, if it has the same layout where you explode every file as a file and then F sync and make it atomic and all that, if you do all that, isn't it still as slow though? Because that's the problem, right? You write all these files all over the place and then you sync it and you end up in a journal or whatnot. Well, if you're ButterFS, you're not doing that. The similar issues on the XA4, right?  But I don't quite see how CS sync would not have the same issues in the end. It's just if you atomically want to ensure this large tree of miners is on this, it's gonna take a while. I don't see really any way out of that. Yeah, over the years we've been developing Flatpak and it's been talking about a file browser so that you wouldn't have to give full access to the home directory and you could basically have the file browser sort of inject files into the app. Has that moved up forward at all? Yeah, yeah, so that's the file system portal, file chooser portal. It's basically a combination of a FUSI file system where every app, every Flatpak app that runs has a bind modded in it a subset of this FUSI file system that is called the document portal and you can register a file and create a document for it and then it's visible in the document portal mount. Plus there's a subdirectory per app and that subdirectory gets mounted into the sandbox so you can dynamically add the files to target a specific app. So what happens is you do a debus call to the portal and outside of the sandbox. We have full access to everything so we do a file chooser and at the end we create a document for this file which makes it appear in the sandbox of the running app and then we pass back the document identifier and then we can access the file via that file system. It, what doesn't work is exposing an entire subtree of your file system. So it's mostly for like, I can open a PDF in events in sandbox mode but it doesn't work for Emacs or an IDE or something like that. But I could run a Firefox or a E-bench or something like that. Yeah, that works. In the beginning you mentioned Apple apps. They seem to be much, much simpler basically just directories on the Mac or zip files on iOS that were part of the simplicity stems from the fact that everything is either part of the operating system or part of the application. Why does it have to be so much more complicated in the Linux world? Well, there are two things. First of all, the sign of SAP HAC is meant to work on current apps. And current apps in Linux hard code the prefix and the binary. And over time people have tried to make things relocatable and some like snaps for instance, relies on relocatability with like as loads of environment variables and things. But still there are things that aren't relocatable. Get text is just a hard coded prefix. It just isn't possible to use a system that is relocatable on the current Linux apps basically. The second is that Apple has a single ABI that they maintain that you can use and given my history of like 20 years trying to keep ABI in Fedora and whatnot. It just isn't doable. It's not even doable in Fedora to keep a single ABI for between versions and sometimes not even in single version. And doing it between distribution is just, I don't think it's realistic at all. For that question here, doesn't that mean there will be a proliferation of run times? For example, if I have application version one requesting runtime version one, is this same application still able to use runtime version two when it comes out or will it still require runtime version one? Well, it would still use one until you switch it. Like until upstream decides that it's time for me to switch to the new one and like do all the QI to verify that it's now possible. And I think, yes, there is a risk for a proliferation of run times. We try to make them, for instance, we have a shared free desktop runtime and the GNOME and the kitty run times all use that. We try to keep it down to a small amount of stuff. But fundamentally, I don't think we are gonna end up in a situation where we have apps depending on like really old run times because apps wants the newest thing too. That's part of the reason why we can't keep ABI because apps wants to use the new stuff. So I think it's in their interest as well as the users to move to the newer version. So eventually we'll be able to purge old versions of stuff. But in the broader ecosystem, they'll still be around.  Doesn't mean everyone uses them. Within a flat pack, where do we look to see how bubble wrap is used if we wanna like learn more about it, just verify how it's wrapping the environment.  I think it will print all the bubble wrap command lines. Runs about you. So one often stated advantage of classical package management over application images is if I have a commonly used library that's used shared by many, many applications and that library has a security flaw and that flaw is fixed upstream by the library. Then I only depend on one new package update from that library. If we use application images, I would have a zoo of versions of that library spread in my system. How do I get it safe and secure? So one of the partial responses to that is that we have the runtime system where we can rev the runtime independently of the app. So even if the app is not maintained, we can rev open SSL or libpng or, and in fact, when we're designing the runtimes, the aspect of the runtime that there is security sensitive, we ensure that all those libraries are in the runtime. So we can also, but it's still true that some app could bundle a specific directory or a specific library. Maybe they need an old lib SSL or maybe just like some random library they need. That could have security issues. Sandboxing partially mitigates that, but not completely and it's a well-known issue with this kind of solution, but I think it's worth it because fundamentally the current app ecosystem for Linux just doesn't work. As an upstream author of apps, I cannot get my code into user's hand. It's a much for me as a developer of things I think are cool and that my user thinks are cool and they want to use, they can't use them because just the system is broken. And if they use them, they use an ancient version and reports bugs I fixed two years ago. It's ridiculous. And yes, there are risks with it, but it doesn't mean we can keep doing something forever that doesn't work. Okay, thanks. Has anybody looked at developing tools to be able to scan through your flat access? We have a very simple CVE tracker that looks for CVEs, like looks at the versions in the run times mainly, but we want to deploy it against all of the flat hub manifests also. But it's very simple. It's like looks at, you use this module, this tarball, that has this version that's reported CVE against that. We file a bug against your GitHub repo and I mean we're not actively looking for new bugs. Has anybody done any basic Chrome apps or Android apps for Linux in Flatpak? How do you mean? Well, I've heard, I know it's been talked about. Basically, can I package up an Android app and put it into a Flatpak? Now Android apps, there is this Anbox thing, like lets you run an Android apps. I don't think it's doable to run that as Flatpak because it has kernel side features. Like there are kernel specific, or Android specific kernel APIs, like the binder and whatnot that you might have to use. But for instance, Chrome apps, I think should work. I mean, we have a base application for electron apps that makes it really easy to package electron apps. Those are basically like Chrome apps, aren't they? You mentioned the exports directory to integrate stuff with the system. Is there a multiple versions? Story to that, what happens if I have Libre Office and say five different versions on the system? So this is the concept of which one is current and only the current one wins and you can switch which one is current. So I can't say, for example, open this file always with this version of the app and that other file with the other version. You can manually start any version on the command line by using Flatpak Run, but there's only ever gonna be one desktop file which is the current active one and you can switch which one that is, but it's only one at the time. Do you think this current model of text files for MIME types and icons and so forth is really scaling or wouldn't we need something like launch services on Mac where you have a database that really can do more flexible on demand stuff? I mean, my name is on half of those specs, so, but that was 15 years ago. So could they be better? Quite possibly. Will they? I doubt it. I think we're out of time or out of questions.


Okay. Welcome everybody to today's meeting of the Jones Library Building Committee. I'll just ask you to indicate your presence vocally, Sharon. Here. Alex. Here. Jennifer. Here. Christine. Here. And Austin is here. Okay. Prove of the minutes of September 27th. There's the emotion to approve the minutes. I'll make a motion to pass the minutes. Thank you. Is there a second? Second. Thank you. Okay. Any corrections to the minutes? Okay. So, on the motion to approve the minutes, Alex, how do you vote? Yes. Thank you. Jennifer, how do you vote? Yes. Christine, how do you vote? Yes. Thank you, Sharon. Yes. And Austin votes yes. Okay. Town manager report. There's no town manager present. So I think we will skip the town manager's report. Number four, finance update. Jennifer, I don't have anything to update, but I have the bills ready to be approved when we're ready. We could do that now whenever you want to present them. That would be great. Okay. I don't have the ability to share screen. I don't know what I need to do for that. That's okay. There you go. Sharon's going to make magic happen. Oh, perfect. Okay. So can everybody see this? Not yet. There it is. There it is. Okay. So there's three bills to be approved. The first one is the OPM bill. And I'm just going to scroll down a little bit so you can see. So total due for this bill, 7,984. And just remind us, Jennifer, this is an invoice for what period? This is an invoice for through September 30th. Okay. Thank you. Okay. The second one is for FAA. This looks like the revisions. First, and this was at September 30th also. And I'm just going to, if you need me to stop anywhere, just let me know. Yeah, it would be good to see what the total is that we're being asked to approve. So the total for this one is 18,177.25. Okay. And the last one is the standard. I don't know if it's standard, but it, this is a monthly one for the month of September. And for FAA as well. And this looks like schematic design, design. Development. Oh, wait a minute. What are we? I'm sorry. I'm trying to read this is, this is for construction documents. This part. That's more than a month. But this is at 70%. So the other other these two are already at 100. So it's a portion of this. Yeah, it looks like. It looks like that this is for a portion of the construct of that 70% construction documents. So basically they're saying they're up to 70%. But I was just trying to look up the last bill to see what. What percentage they were up to. Okay. So, and this is the total for this invoice 136 to 50. So there's three invoices one from Collier's to from FAA. Correct. Okay. The FAA invoice is 136 to 50. Tim again, can you clarify what. What the 136 to 50 is covering. That's for the construction documents portion. That's not any of the ad services. That's. You know, they have a contract for $681,250. Construction documents. And it looks like they're. They submitted a bill. On. At the end of August and then at the end of July. The August bill was the same amount. 136 to 50. The. The bill at the end of July was for 204 375. And this one is dated 930. Is that correct? Yes. Yes. So. Yeah, they have. So this is the third bill for their construction documents. I'm sorry to be confused, Tim. The fee says for construction documents, the fee says 681 to 50. Is that correct? Yes, that's correct. Earned. What does the earn mean? Basically how much they, they're billing against that 681 to 50. So they're saying that they're, they're billing 70% of that 681 to 50. Okay. So they're saying, you know, this is how much we've earned a date. This is what we've been paid to date. So the differences are current bill, which is this 136 to 50. The difference between 681 and 176 is 136 to 50. Well, the difference between what they've, what they've earned. All total and, and previously billed. So they're saying that they. They've their fee of earned today is, is 1.3 or 1.348. But they've billed 1.212. So what they haven't billed, which is this bill is the 136 to 50. I see the 136 to 50 is the difference between the total fee and the previous fee billing. Thank you. That's very. I just also, I just want to apologize. I don't know why my camera keeps on turning off on me. So I just noticed that it is, it's coming and going. So if that happens. So we have three invoices of someone would move the approval and then we get a second, then we talk about them. Someone move the approval. So moved. Okay. Are there any questions about these three invoices? Okay. Voting to approve Sharon. Yes. Alex. Yes. Jennifer. Yes. Christine. Yes. And Austin votes. Yes. Thank you. Thank you very much. Jennifer. Do you have anything else for us? Jennifer. I do not at this time. All right. Thanks so much. If you take down the screen share that would be very helpful. That's fabulous. Okay. Number five on the agenda. Colliers. Okay. We just talked about a little bit about what we've been what's been happening on the project. Great. We are out for 75% estimate with with for the two estimators. And we'll, we've been dealing back and forth asking for. Making sure they're covering certain things that we're required to do. You know, for some of the grants that we're hoping to get so backing, making sure that we're having an estimate based on. Whether we have to use Davis bacon wage rates or whether we have to buy America, build America buy America program. Well, one of those coming in, we have an estimate reconciliation meeting next week. Yes. That is next Thursday, Thursday, and we're hoping to get the estimates this Friday, or maybe given through the weekend, we'll get the Monday. Great. And we've gone through a couple of meetings with the historic commission in town. The first one was really based on site. The second meeting more interior exterior of the building. A lot of focus on. You know, the landscape, the book drop and different things like that. But that was approved. So that's a milestone that we can check off, which is great. Planning is still in the works. So submission has been submitted. And a meeting is scheduled for the 15th of November. With the planning board. We met with the fire department to review the drainage that's going to be going through their, their lot. Just make sure that they understand the scope and durations timelines. That sort of thing. Also just looking at any of the other impacts we may have on street parking or the bus stop out in front of the library. Just all of those types of issues and trying to either meet with neighbors to talk about the project is let them know what's going to be happening. And anything that may have to change to make sure that we have a temporary plan in place for that type of thing. There's also some investigation going on on this inflation reduction act and what potential grants that might be possible to be achieved based on federal monies that we could get. And then we had, we've been going back and forth about bringing on a hazardous material consultant to do some additional testing. So there's some testing done 2016. But now that we have more comprehensive design bringing them on to really look to see how where we're going to be impacting the existing building making sure we're covering all the bases of what our scope would be for that. So they'll be also be doing the design specifications. They'll be working with either them or a different party during construction just to monitor the actual asbestos contractor or abatement contractor. But a lot of different activities going on. I don't know well if there's something major that I missed. But those are kind of a sprinkling of some of the activities we've been doing. Wrapping up the, well, the FA is wrapping up the actual documents and collars on our and we're getting ready for the next phase, which will be bidding which majority of that will happen. End of this year, beginning of 2024. Okay. Questions for collars. So I have a question, Tim. As our owner's project manager, could you talk to us a little bit about in your view the performance of FAA. Sure. I think, you know, FAA is is doing doing well and they got some things that may have typically been in their scope that we were broken out and we're having them do and so it may appear that some of the stuff is, is being done at the last minute but it was really just that it's kind of about a sequence maybe a little bit, that things are being added to the project that maybe they might not typically do or sometimes they would typically do but for whatever reason it was broken out earlier on but I think overall they're doing good we were passed our seem to be passing our requirements for the tally and energy measurements. They were very helpful and instrumental in getting the all the information needed to all the different boards and committees and Amherst is a little bit different than other communities. They ask for a little bit more information than maybe would be typical. That's been provided. You know what really will be the biggest judge of how good their documents are as once we get bitters on board or bitters up to bed and see what kind of questions we get from the actual trades. Again those two estimators are not just looking at what the cost of the project is going to be. They're looking at the scope of the project so how detailed are those documents, so that they may not agree that a brick, you know, a square foot of brick cost this or, you know, the other one may say cost something else but if they're looking at the square footage or the interpretation of the thickness of the slabs or the amount of steel. So you want to make sure that there's a consistent view by two independent parties of what is included in this project. And that hopefully translate into bitters all looking at it the same as well so you don't get a wide range of numbers. Right so I'm going to repeat back to what I've understood you, you worked with a lot of architects on a lot of projects, and so far as you're able to say collars collars FAA is doing a good job on this project. Yes, I think so. Right. Any other questions for collars. We appreciate the work that you're doing with FAA to get us, you know, keyed up for the various boards and committees. That we have to that we have to deal with in the in the town. That's an important part of the work, not only just to make sure that we satisfy the various requirements, but also it's an important part of what I would call the public education part of the project where we are educating various boards and committees but also the public participants in those those events. Okay. So no other question for collars then subcommittees design. Christine, I have nothing to report. Thank you, Alex outreach. I don't have anything specific per se to report but just wanted to let the committee know that the library has a justice equity diversity and inclusion committee and they recently released a survey to the community looking sort of a broad scope about how welcoming the library is, but we're looking forward to them expanding on that survey and possibly informing when it comes time to put everything back in the building that we're doing it in a way that is welcoming to our entire community and I just want to put that on people's radar is something to be thinking about when we get to that phase that we want to be getting information back from that committee that we use as part of our decision making process around art, where things go in the library, etc. Great. Thank you. Okay, any question for Alex. Thanks. Next item is correspondence. So the board, the committee has received correspondence from Robert Pam dated October 11 2023. Mr Pam asked will the board room or the Woodbury room have facilities to record entrenchment meetings and performances. It might make it easy for us to hold publicly accessible meetings of our committees and if we host lectures debate shows etc. Might be good to be able to share them simultaneously or subsequently I don't know whether we can hook into the town. Sharon, do you want to answer that question? Yeah, so my initial response was it really the wiring will all be in place but ultimately it will come down to the funding that we have will determine what kind of equipment we can, we can purchase. I didn't know if, you know, Tim or well if you wanted to expound on that. So we will have data drops in the room will have wireless access points. But whether we have mounted cameras in the room or something to facilitate a public meetings. Any kind of a mixing board that you would use to put together some sort of broadcast, if you will, I don't know that we would have that we're working to bring on and get that design finished up for get estimates for the estimated cost of equipment. So we don't have that just yet, but the building will have the basics and then equipment may need to be brought in. If we can't fit it within our budget. It's something that can be purchased at a later time to make it a permanent installation. Other facilities to record and transmit meetings built into our budget at this point. I would say, no, we have, we're talking about some smaller meeting rooms where we were having a setup to have a new zoom meetings and that sort of thing, but in the larger main meeting room downstairs. We don't have that equipment built into the budget. Okay, so if we're going to have that equipment, it's going to have to come from funds, not part of the building budget have to come from some other source. Either some other source or we do really well at bid day and things come in well. Hopefully. Yeah, Alex. I just want to clarify that what Sharon had commented that we would much, much like the cafe where we are going to be wired and plumbed for something in the future. That is the same. So it would be a matter of purchasing equipment, not a matter of having to go into and rewire things. I just want to clarify that's that's the case. Great. Good. So hopefully a grant or a good bid. Okay, thanks. The second question is at the ground floor garden level it appears that the Civil War tablets room in the Special Collections room across from the Burnett Gallery are part of the original building and therefore are three steps higher than the hall they connect to I don't see any stairs in the drawings am I missing something Sharon. Yeah, I don't know how to describe this but there are stairs there. Yeah, all the rooms are handicapped accessible stairs are there. Okay. All right, Alex, did you want to say something your hand is up. Oh, sorry. Yeah, no, I think but in the meeting packet I think you included. So in the meeting packet, there's actually where the stairs are I think you circled it so pointing that out. Yeah, I just want members of the public to hear what the responses are if that's okay. No, no, no, yeah, I'm just making sure members of the public knew if they looked in the packet and they could see it. She was able to describe the spot. Okay. Anything else topics not anticipated 48 hours in advance. Nothing to me public comment we have eight members of the public. Anybody wanting to make comment if they'd raise their virtual hands bring you into the the zoom. Bob him. Two points. So one is that at your last meeting you had deferred until this meeting, my comments from September 20. I would like to add those back in. The second is with respect to the second question that that you've responded to. The stairs that you refer to lead not to those two rooms but rather to other rooms in there in the back, the only doors into the Civil War and the room for the special collection. There's only once entrance to each of those, and it is not connected to any stairway. You also behind it. There is a hallway which leads from an exterior door behind all of those rooms to the rest of the original building in the special collections. And that unfortunately also is a connection between a high floor and a low floor, and I don't see any connection between those two. So there's three different entry ways, which as far as I can tell, involve a foot or more of raising or jumping up jumping down. And I don't think that the answer of there being one, you know, 100 feet down the hall is in fact useful at all for these questions. Thank you. On the new question. Bob, if you just hold on that one, Tim, do you want to say anything about what Bob just observed. Well, I'd have to take a look at the drawings and pull them up, but certainly all the rooms will be accessible. So, if there are different levels, there might be a different elevator stop or ramp, but I'd have to pull up the drawings. So let's get an answer to this question. Okay. Yeah, so this is access to the special collections area and what was the other room. The ground floor garden level. It appears that the Civil War tablets room and the special collections room, of course, from the Burnett gallery are part of the original building in there for a three steps higher than the hall they connect to. I don't see any stairs in the drawing. Am I missing something? I then supplemented that with the question about the hallway behind it. Tim, are you looking at the drawings? Yeah, I'm trying to hold them up. It just takes a while. Okay. Yeah, let me go back to the first question that I had asked in September. And there the first question I had asked was that, although in all other areas, the budget constraints have been very tight and increases in any one area have been limited for the landscaping which was added to the site plan. That added almost 40% to the costs. And given that it is now been reviewed by the historical commission and everybody else. My guess is that you are now committed to the design and the cost that's associated with the landscaping. But I was just curious why that one had not been subject to the same kinds of cost limitations as everything else in this project. Everything has been subject to the same kind of cost limitations. We've looked at everything from the perspective of what its costs were and how it fit within the budget. Landscaping was not exempted from it. We didn't do the same kind of value engineering exercise that you were describing. If I'm not saying what you were describing, but everything in the project has been subject to the same scrutiny in terms of where it fits in the budget. Then let me ask the question differently. Up until this most recent budget estimate in June, the amount that was set aside for site work was $2.1 million. The amount that was set in June was $2.9 million. That is an $800,000 difference. And that is a lot more than anything else that you have done. I will not go further with this. I just pointed out because that seemed to me to be inconsistent. The other question that I had asked was about FF&E, which had not been subject to any of the cost estimators giving any inflator value to that. And so it has been carried at basically the same number for a long time. And I suggested that it's probably not accurate to assume that there has been no cost changes for any of the FF&E. And based upon what the other things have been marked up, it looked like that would have to go up by something around $400,000. Okay. Do you have anything else you want to say, Bob? Those are the two points that I had raised on that. There were two other points that I had asked, which had to do with rainfall and therefore the capacity of the drain pipes and of the swale. And the fourth point, I guess we have addressed at the last meeting, which had to do with the stonework. The third point was also addressed at the last meeting about the drain pipes. Okay. Thank you, Bob. Okay. Any other member of the public wish to speak? Okay. Nobody else wishing to speak. Okay. I think we are all set. Sharon, just remind us when is our next building committee meeting? November 15th? Yes. At 4.30. Yes. Okay. All right, everybody. Meetings adjourned. Stay well. Thank you very much. Thank you.